RAG 安全缺口

Retrieval-Augmented Generation(RAG)已快速成為企業 AI Agent 運用私有企業知識的基礎架構。透過將大型語言模型(LLM)與高密度向量資料庫及知識圖譜配對,組織得以讓 Agent 回答複雜查詢、分析財務記錄,並利用即時營運上下文自動化客戶支援工作流程。

然而,當 Agentic 工作流程從原型 sidecar 轉向核心基礎設施時,將非結構化企業資料暴露於向量搜尋管線便會帶來嚴重且未受監控的安全面。

當 LLM 從向量儲存中檢索文件區塊時,傳統身份管理框架便會失效。在舊有 SQL 資料庫或雲端儲存桶中配置的 Role-Based Access Control(RBAC)無法原生轉譯至向量嵌入空間。

若向量儲存攝取文件時未保留細粒度的文件層級 Access Control List(ACL)或加密資料血緣,自主 Agent 便會在過度授權的上下文中運作。

未受治理的 RAG 架構會帶來嚴重後果:

  • 透過上下文注入的權限提升:擁有基本讀取權限的員工向 Agent 提出高階查詢。Agent 的向量搜尋會檢索未經查詢時授權過濾的區塊化財務預測或高階主管電子郵件,導致機密資料在產生的回應中外洩。

  • 間接提示注入:惡意行為者在公開或共享企業文件(例如 PDF 發票中的隱藏白字)中嵌入隱藏指令酬載。當 RAG 引擎攝取並檢索此區塊時,LLM 會執行注入的命令,劫持 Agent 的執行迴圈。

  • 過時上下文與幻覺迴圈:向量資料庫會無限期保留過時的文件嵌入,除非與有狀態生命週期政策綁定。Agent 根據過時營運程序做出的決策可能產生幻覺或不符合法規的輸出。

若要在企業規模部署 Agentic 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(屬性式存取控制)

為消除過度授權的檢索,存取控制必須在查詢時於向量搜尋查詢內部評估——絕不能作為向量擷取至記憶體後的後處理步驟。

當 Agent 代表使用者發起檢索請求時,上下文 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 治理的三大不可協商規則

執行檢索時存取控制清單(ACL)

後檢索過濾(擷取 20 個區塊並手動移除未授權者)會在暫時性故障期間暴露內部記憶體導致資料外洩。存取規則必須直接在向量儲存的索引遍歷邏輯中執行。

維護基於圖形的資料血緣

平台團隊必須維護集中式資料血緣圖,映射原始來源記錄 → 解析器版本 → 區塊邊界 → 向量 ID → LLM 提示實例。當來源文件因 GDPR/CCPA 合規請求而被修改或刪除時,平台系統必須立即識別並清除所有相關向量嵌入。

實作即時索引新鮮度與過時區塊清除

向量儲存必須執行 Time-To-Live(TTL)過期視窗與自動重新索引 webhook。過時營運指南或已棄用的政策手冊必須在文件更新時自動從作用中向量分割區清除。


架構師的觀點

RAG 治理本質上是將資料安全姿態管理(DSPM)問題應用於非確定性系統。

請以對待生產關聯式資料庫與 Kubernetes 密鑰儲存的相同 Zero-Trust 安全原則對待您的向量儲存。在查詢時執行嚴格的屬性過濾、加密簽署您的嵌入,並審計 Agentic 工作流程中的每一次上下文水合事件。


來源與參考


關於我

我是擁有 14 年 IT 產業經驗的企業雲端與 AI 架構師,協助組織設計並擴展企業級雲端、AI 與自動化解決方案。

我目前的工作重點在於建構企業規模 AIOps 平台、加速客戶的 AI-first 轉型之旅、推動 FinOps 採用,以及開發能產生可衡量商業影響的生產就緒生成式 AI 應用程式。我熱衷於橋接架構、平台工程與 AI 創新,以大規模解決真實世界的企業挑戰。

若您有雲端架構、AIOps、生成式 AI 或 FinOps 相關問題,歡迎在 LinkedIn 或 X(Twitter)@jitu028 與我聯繫——我的 DM 隨時開放,樂於協助。

若需個人化 1:1 導師服務、架構指導、職涯討論或企業解決方案諮詢,您也可以在 Topmate 預約與我的諮詢:

https://www.topmate.io/jitu028