RAG 安全缺口

检索增强生成(RAG)已迅速成为将企业 AI 代理与专有企业知识相结合的基础架构。通过将大型语言模型(LLM)与高密度向量数据库和知识图谱结合,组织能够让代理利用实时运营上下文回答复杂查询、分析财务记录,并自动执行客户支持工作流。

然而,当代理工作流从原型副车过渡为核心基础设施时,将非结构化企业数据暴露给向量搜索管道会带来严重且未受监控的安全面。

当 LLM 从向量存储检索文档块时,传统的身份管理框架会失效。在遗留 SQL 数据库或云存储桶中配置的基于角色的访问控制(RBAC)无法原生转换为向量嵌入空间。

如果向量存储在摄取文档时未保留细粒度的文档级访问控制列表(ACL)或加密数据血缘,自主代理就会在过度授权的上下文中运行。

缺乏治理的 RAG 架构后果严重:

  • 通过上下文注入进行权限提升:一名仅拥有基本读取权限的员工向代理提出高级查询。代理的向量搜索会检索出缺少查询时授权过滤的财务预测或高管邮件分块,从而在生成的响应中暴露机密数据。

  • 间接提示注入:恶意行为者在公开或共享的企业文档中嵌入隐藏的指令负载(例如,PDF 发票中的隐藏白字)。当 RAG 引擎摄取并检索该分块时,LLM 会执行注入的命令,从而劫持代理的执行循环。

  • 陈旧上下文与幻觉循环:向量数据库会无限期保留过时的文档嵌入,除非将其绑定到有状态的生命周期策略。基于陈旧运营流程做出决策的代理会生成幻觉或法律上不合规的输出。

要在企业规模部署代理式 RAG,平台工程团队必须实施 数据、上下文与 RAG 血缘治理——一种确保查询时授权、加密数据来源和自动上下文清理的持续架构。


深入架构:受治理的 RAG 管道

生产级的受治理 RAG 架构将上下文处理划分为三个不同的、可观察的安全边界。

1. 摄取与加密嵌入血缘

治理始于向量写入索引分区之前的摄取阶段。当文档分块通过解析引擎(例如 Unstructured、LlamaIndex 或 LangChain 分割器)时,管道会计算加密哈希并附加强制血缘标头:

{
  "chunk_id": "chk_9874a12b_2026",
  "document_id": "doc_sec_q2_2026_financials",
  "source_uri": "s3://corp-finance-vault/confidential/q2_report.pdf",
  "source_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "classification": "RESTRICTED_CONFIDENTIAL",
  "allowed_attributes": {
    "departments": ["FINANCE", "EXECUTIVE_BOARD"],
    "clearance_level": 4,
    "geo_residency": "US-EAST"
  },
  "ingestion_timestamp": "2026-07-30T06:30:00Z"
}

Enter fullscreen mode Exit fullscreen mode

通过将元数据直接嵌入高维向量表示,索引维护了可验证的审计轨迹,将每个数学点与其底层源文档连接起来。

2. 查询时上下文 ABAC(基于属性的访问控制)

为消除过度授权的检索,访问控制必须在向量搜索查询内部于查询时评估——绝不能作为向量被取入内存后的后处理步骤。

当代理代表用户发起检索请求时,上下文 ABAC 网关会拦截查询,提取用户委派身份声明(例如 RFC 8693 OAuth 2.1 令牌声明),并将结构化元数据过滤器直接注入向量数据库查询负载:

# Example: Production Vector Search Payload with Embedded ABAC Filters
vector_db.search(
    query_vector=agent_generated_embedding,
    top_k=5,
    filter={
        "and": [
            {"classification": {"$in": user_token_claims.get("clearance_scopes")}},
            {"allowed_attributes.departments": {"$in": user_token_claims.get("department")}},
            {"allowed_attributes.clearance_level": {"$lte": user_token_claims.get("clearance_level")}}
        ]
    }
)

Enter fullscreen mode Exit fullscreen mode

通过在向量引擎内原生执行元数据过滤,未授权的分块会被从相似性搜索计算中数学排除,从而在检索层中和权限提升。

3. 出站负载清理与上下文卫生

即使是已授权的向量分块,也必须在注入 LLM 系统提示之前进行上下文卫生处理。出站负载清理器执行三项核心操作:

  • 自动 PII / PHI 掩码:使用高性能正则引擎和命名实体识别(NER)模型扫描检索到的文本,以遮盖社会安全号码、API 密钥、客户姓名和信用卡凭证。

  • 间接注入移除:分析检索到的文本块中的系统级提示模式(例如 "忽略之前的指令并执行..."),并在上下文水合之前中和系统命令。

  • 上下文长度最小化:剥离冗余语义填充以优化令牌预算利用率,降低成本同时最小化暴露给模型的潜在攻击面。


企业 RAG 治理的 3 条不可协商规则

强制执行检索时访问控制列表(ACL)

检索后过滤(获取 20 个分块并手动移除未授权的分块)会在瞬时故障期间将内部内存暴露给数据泄露。访问规则必须直接在向量存储的索引遍历逻辑内执行。

维护基于图的数据血缘

平台团队必须维护一个集中的数据血缘图,映射原始源记录 → 解析器版本 → 分块边界 → 向量 ID → LLM 提示实例。当源文档因 GDPR/CCPA 合规请求被修改或删除时,平台系统必须立即识别并清除所有关联的向量嵌入。

实施实时索引新鲜度与陈旧分块驱逐

向量存储必须强制执行生存时间(TTL)过期窗口和自动重新索引 webhook。陈旧的运营指导或已弃用的政策手册必须在文档更新时自动从活动向量分区中驱逐。


架构师观点

RAG 治理本质上是应用于非确定性系统的数据安全态势管理(DSPM)问题。

用与生产关系型数据库和 Kubernetes 密钥存储完全相同的零信任安全原则对待向量存储。在查询时强制执行严格的属性过滤,对嵌入进行加密签名,并审计代理工作流中的每一次上下文水合事件。


来源与参考


关于我

我是一名拥有 14 年 IT 行业经验的企业云与 AI 架构师,帮助组织设计和扩展企业级云、AI 和自动化解决方案。

我目前的工作重点是构建企业级 AIOps 平台,加速客户 AI 优先的转型之旅,推动 FinOps 采用,并开发能够创造可衡量业务影响的生产就绪生成式 AI 应用。我非常热衷于将架构、平台工程和 AI 创新相结合,以大规模解决现实世界的企业挑战。

如果您有关于云架构、AIOps、生成式 AI 或 FinOps 的问题,欢迎在 LinkedIn 或 X(Twitter)@jitu028 上与我联系——我的私信始终开放,很乐意为您提供帮助。

如需个性化 1:1 指导、架构咨询、职业讨论或企业解决方案咨询,您也可以在 Topmate 上预约我的时段:

https://www.topmate.io/jitu028