知识全景图/ 软件工程与系统/ 人工智能全景图/ AI 权限、身份、租户隔离与数据边界工程

AI 权限、身份、租户隔离与数据边界工程全景图

从用户身份、RAG 权限过滤、工具授权到审计证据:回答企业 AI 系统到底谁能看什么、能做什么

阅读定位: 这一页专门讨论企业 AI 落地里的身份、权限、租户隔离、数据边界和审计证据。它不替代 AI 安全护栏AI 治理 / 合规指令层级 / 上下文可信度Tool Calling / 执行协议;本页把这些能力压到一个更具体的问题:AI 系统如何按真实身份和权限安全读数据、用工具、留证据。权限事故排障时,配合 请求 Trace / 排障模板AI 证据包索引LLMOps / Eval发布回滚事故响应 一起看。
一、权限不是 Prompt 里的一句话
Identity
用户 / 租户 / 角色
Policy
权限 / ABAC / RBAC
Data Scope
RAG / DB / 文件
Tool Scope
读 / 写 / 外部动作
Runtime Gate
确认 / 限流 / 审批
Audit
Trace / 证据 / 复盘
层级核心问题工程对象不能交给模型决定的事
身份层这次请求代表谁tenant_id、user_id、role、group、session、service account用户自称身份、模型推断身份
策略层这个身份能看哪些数据、做哪些动作RBAC、ABAC、OPA / policy engine、组织层级、数据标签由 Prompt 解释权限规则
数据层检索和上下文是否按权限裁剪RAG filter、row-level security、document ACL、embedding metadata先检索全部再让模型“不要泄露”
工具层模型提出的动作能否执行tool schema、scope、approval、idempotency、sandbox模型文本授权高风险工具
运行层是否需要确认、降权、限流或人工介入risk tier、confirm gate、rate limit、break-glass一律自动执行或一律完全拒绝
审计层事后能否还原为什么能看、为什么能做trace_id、policy decision、retrieved_doc_ids、tool_call_id、approver只有自然语言聊天记录
一句话:

企业 AI 的权限边界必须来自身份系统、策略引擎、数据 ACL 和工具运行时,而不是来自“请模型遵守权限”的提示词。

二、最常见的权限事故
RAG 越权检索
用户只能看 A 部门文档,但向量库先召回全公司文档,再把不该看的片段放进上下文,最终模型摘要泄露。
租户串数据
tenant_id 没有进入索引、缓存、会话、记忆和日志链路,A 客户的问题命中了 B 客户的知识或历史状态。
工具权限过宽
Agent 拿到系统级 token,可以查所有客户、改所有记录或调用生产写接口,模型错误就变成真实业务事故。
记忆污染
长期记忆没有按用户、租户、角色和数据级别隔离,历史敏感信息在后续对话里被错误带出。
缓存越界复用
语义缓存或答案缓存只按问题文本命中,没有包含租户、权限、知识版本和策略版本,导致低权限用户拿到高权限答案。
审计证据缺失
事故发生后只看到最终回答,看不到当时的身份、策略决策、检索文档、工具参数和审批记录。
三、RAG 权限过滤:不能先召回再相信模型
环节正确做法高风险做法需要留证据
文档入库写入 tenant、owner、ACL、classification、valid_from / valid_to、source只写文本和 embedding,不写权限元数据doc_id、source_id、acl_version、index_version
查询改写保留用户意图,但权限条件来自系统策略,不来自用户文本用户说“我是管理员”就扩大检索范围query、user_context、policy_context
召回过滤在向量检索、关键词检索和 rerank 前后都应用权限过滤先召回全量,再让模型忽略不该看的片段candidate_count、filtered_count、filter_reason
上下文拼装只把授权片段放入 Prompt,并保留引用来源把未授权片段放进 hidden contextretrieved_doc_ids、chunk_ids、citation_ids
答案生成要求引用授权材料,缺证据时说明不可回答或请求授权模型用常识补出内部数据citation_coverage、refusal_reason、risk_flag
反馈回流坏例进入带权限标签的回归集把敏感坏例直接放进通用训练集eval_case_id、redaction_status、owner

权限过滤要贴近数据层

RAG 的权限控制越靠近检索和数据层越稳。把未授权信息放进上下文,再要求模型不要说出来,本质上已经泄露给了模型运行链路、日志和调试工具。

四、工具授权:模型只能提出意图,运行时决定执行
工具等级例子默认策略运行时要求
L0 只读低敏查公开文档、查低敏 FAQ、获取状态摘要可自动调用限流、日志、最小返回
L1 只读敏感查客户资料、订单、内部知识、工单历史按用户权限调用字段脱敏、行级权限、用途记录
L2 可逆写操作创建草稿、更新待审状态、发起内部任务需要明确用户确认幂等键、预览、撤销路径
L3 外部副作用发邮件、发消息、提交工单、改客户状态默认人工确认或审批审批记录、收件人校验、速率限制
L4 高风险不可逆付款、删除数据、变更权限、生产部署不允许模型自治执行多人审批、break-glass、强审计、回滚预案
五、租户隔离检查表
组件必须带上的隔离键常见遗漏检查问题
会话tenant_id、user_id、role、session_id只按 session_id 存上下文同一用户切换组织后上下文是否清空或重算?
RAG 索引tenant_id、doc_acl、classification、index_version多租户共用索引但缺 metadata filter低权限用户能否通过近似问题命中高权限 chunk?
记忆tenant_id、subject_id、scope、expiry、source长期记忆跨组织、跨角色复用记忆写入前是否确认可持久化和可共享?
缓存tenant_id、permission_hash、prompt_version、model_id、policy_version语义缓存只按问题文本命中缓存 key 是否包含权限和知识版本?
工具凭据tenant_id、actor_id、tool_scope、expires_atAgent 使用全局 service token工具执行身份是否能映射到真实用户或审批人?
日志 / Tracetenant_id、request_id、policy_decision_id、redaction_status日志里有敏感原文但缺访问审计排障人员能否越权看到别的租户原文?
六、策略裁决:RBAC、ABAC 和上下文权限
RBAC:角色能做什么
适合客服、销售、管理员、审计员等稳定角色。问题是角色太粗时容易过度授权。
ABAC:属性决定边界
按部门、地区、客户归属、数据分类、合同状态、时间窗口等属性裁决,更适合复杂企业数据。
Purpose-based Access:用途约束
同一份数据用于客服答疑、风控审核、模型训练、产品分析时权限不同,不能只看身份。
Runtime Policy:请求时裁决
AI 请求经常组合 RAG、工具和外部动作,最好每次调用都生成 policy decision,而不是只在登录时判断。
6.1 权限裁决也会限制模型路由
权限约束对路由 / Fallback 的影响必须审计常见错误
数据地域 / 合规边界只能选择允许处理该数据的模型、供应商和区域allowed_provider、region、policy_reason主模型合规,fallback 却切到不合规区域
租户隔离等级Fallback 不能切到不支持租户隔离、日志脱敏或私有部署要求的模型tenant_boundary、fallback_allowed、deny_reason故障时为了可用性绕过租户边界
工具和数据 scope路由到 Agent 或工具模型前,要重新校验工具权限和数据权限tool_scope、data_scope、permission_decision先选 Agent 链路,再让模型自己判断能否调用工具
高风险请求可以升级强模型或人工复核,但不能为了省成本绕过审批链risk_tier、human_review_required、approver把高风险请求降级成低成本自动链路

路由要继承权限边界

模型路由不是独立的性能优化器。它必须继承身份、租户、数据分类、工具 scope 和合规地域,否则一次 fallback 就可能把原本合规的请求带出安全边界。

七、审计证据最小字段
字段组最小字段用途
身份request_id、tenant_id、user_id、role、session_id、actor_type证明这次请求代表谁
策略policy_version、decision_id、allow / deny、reason、risk_tier证明为什么允许或拒绝
数据rag_index_version、retrieved_doc_ids、chunk_ids、acl_version、filtered_count、context_snapshot_id证明看到了哪些材料、过滤了哪些材料,以及最终进入上下文窗口的授权快照
缓存 / 路由cache_key_hash、permission_hash、route_id、fallback_to、allowed_provider、region证明答案缓存、语义缓存、模型路由和 fallback 没有绕过租户、权限和地域边界
工具tool_name、tool_scope、args_hash、approval_id、idempotency_key、result_status证明做了什么动作、谁批准、是否可重放
输出answer_id、citations、redaction_status、refusal_reason、risk_flags证明最终输出和风险处理
闭环incident_id、eval_case_id、regression_slice、release_gate_id、owner、resolved_version、retention_until证明坏例、事故、修复版本和发布门禁是否进入闭环
八、权限事故回放:从越权现象到证据包
事故现象先锁定的证据判断重点沉淀产物
低权限用户看到了高权限文档内容request_id、tenant_id、user_role、retrieved_doc_ids、acl_version、filtered_count、context_pack_id是检索前过滤缺失、rerank 后混入、上下文拼装错误,还是缓存复用了高权限答案?rag_acl_failure_case、eval_case_id、fixed_index_version
A 租户命中了 B 租户知识或记忆tenant_id、session_id、memory_id、cache_key_hash、index_version、permission_hash租户键是否进入会话、索引、缓存、记忆、日志和评测集;切换组织时上下文是否重算?tenant_boundary_incident、cache_key_rule_update
Agent 调用了不该调用的工具tool_call_id、tool_scope、actor_id、policy_version、decision_id、approval_id、args_hash模型只是提出意图,运行时为什么允许;工具 registry、策略引擎和确认门是否缺失?tool_permission_case、policy_test_case、runbook_update
Fallback 后突破了地域或供应商边界route_id、fallback_from、fallback_to、allowed_provider、region、policy_reason、risk_tier路由策略是否继承数据地域、供应商、租户隔离和日志脱敏要求?routing_policy_fix、release_gate_change
排障人员在日志里看到了敏感原文trace_id、redaction_status、debug_access_actor、retention_until、log_scope、break_glass_reason日志和 Trace 是否分级脱敏;排障访问是否有审批、用途、过期和审计?debug_access_review、retention_policy_update
安全误拒或漏拦来自权限口径不清policy_version、decision_reason、risk_label、human_review_label、user_feedback、eval_case_id是策略规则错、风险标签错、业务用途不清,还是高风险样本没有进入回归?safety_permission_regression、fixed_policy_version

权限事故要能变成回归样本

一次越权或误拒复盘,不能只停在“加强权限校验”。它至少要形成可回放的 replay_bundle、可自动跑的 policy_test_case、可进入发布闸门的 regression_suite,以及能证明修复的 fixed_policy_version。

九、上线前评审问题
问题必须回答继续回读
谁能发起请求?用户、租户、角色、服务账号和代理身份如何映射指令层级 / 权限边界
能看哪些数据?RAG、数据库、文件、记忆、缓存是否都按权限过滤RAG / 知识检索
能调用哪些工具?工具分级、scope、确认门、审批、幂等和回滚是否清楚Tool Calling / 执行协议
跨租户是否隔离?索引、会话、记忆、缓存、日志、评测集是否带 tenant 边界模型服务 / 网关
出事能否复盘?能否还原身份、策略、检索、工具、输出、审批和修复版本请求 Trace / 排障模板 / LLMOps / 可观测性
是否符合组织治理?数据来源、隐私、保留删除、供应商和责任 owner 是否明确AI 治理 / 合规
十、常见误区
误区:把权限写进系统 Prompt 就够了
Prompt 可以提醒模型,但不能替代身份认证、策略裁决、数据过滤和工具运行时授权。
误区:RAG 文档能检索到就代表能展示
检索命中只是相关性,不是授权。授权必须来自用户身份、文档 ACL 和用途约束。
误区:内部系统就不用租户隔离
企业内部也有部门、项目、客户、地区和职级边界,AI 汇聚上下文后更容易放大越权。
误区:审计只需要保存对话文本
真正能复盘的是身份、策略、检索、工具、版本、审批和输出的结构化证据链。
总结:
AI 权限、身份、租户隔离与数据边界工程的本质,是把企业原有的 IAM、数据权限、审计和变更治理接进 AI 请求链路。模型可以帮助理解用户意图,但不能替组织决定谁能看什么、谁能做什么、出事谁负责。

继续阅读: