AI智能體的憑證管理:Vault-Proxy架構
AI智能體的憑證管理是規範自主智能體如何獲取、使用、輪換和釋放API金鑰及密鑰而不將憑證暴露在智能體記憶體、日誌或上下文視窗中的基礎設施實踐總體。智能體打破了標準憑證模式:它們自主運行,可能透過提示注入被攻破,並以叢集方式運作,其中共享密鑰會倍增滲漏攻擊面。CVE-2024-34359(llama-cpp-python,CVSS 9.6)和CVE-2025-29927(Next.js,CVSS 9.1)展示了當安全邊界失效時AI部署如何暴露密鑰。
AI智能體的憑證管理是規範自主智能體如何獲取、使用、輪換和釋放API金鑰、令牌和密鑰而這些憑證永遠不會出現在智能體記憶體、日誌或上下文視窗中的實踐和基礎設施模式的總體。
為何標準憑證模式在智能體叢集中失效
規模化時的.env檔案問題
環境變數對單進程應用程式運行良好。對於智能體叢集,該模型立即崩潰。一個在10個智能體叢集中共享的.env檔案意味著10個運行中的進程各自在記憶體中保存每個密鑰。每個進程都會產生日誌、錯誤輸出和除錯追蹤,這些都是潛在的憑證暴露面。如果這10個智能體中的任何一個被提示注入攻擊攻破並被指示列印其環境,共享.env中的每個憑證都會同時洩露。
N智能體乘數是核心問題:叢集中的每個額外智能體都為每個共享憑證增加了另一個暴露面。在考慮日誌聚合、錯誤報告或可能捕獲環境快照的除錯工具之前,具有5個API金鑰的20智能體叢集已經創建了100個潛在的憑證暴露點。
已部署AI系統中明文密鑰的CVE記錄
兩個CVE記錄了已部署AI系統中不安全密鑰處理的實際成本:
CVE-2024-34359(llama-cpp-python,CVSS 9.6 嚴重):透過llama-cpp-python中模型元數據的無沙箱渲染進行的Jinja2伺服器端範本注入。惡意製作的.gguf模型檔案的聊天範本欄位透過jinja2.Environment在沒有沙箱的情況下渲染,使遠端代碼執行成為可能。任何載入不受信任模型的應用程式(包括從外部源下載模型的智能體管道)都在影響範圍內。結構性問題是模型載入代碼在沒有隔離的情況下信任了外部內容。
CVE-2025-29927(Next.js,CVSS 9.1 嚴重):透過x-middleware-subrequest標頭進行的授權繞過,允許未經身份驗證的請求跳過Next.js部署中的中介軟體。使用Next.js中介軟體保護憑證保護路由的應用程式(包括AI智能體API後端)受到影響:該繞過允許存取中介軟體本應封鎖的路由。該缺陷已在版本12.3.5、13.5.9、14.2.25和15.2.3中修復。
兩個CVE都說明了同樣的基本風險類別:當密鑰或受保護路由依賴應用層控制而非結構性隔離時,單個邏輯缺陷就會暴露它們。Vault-Proxy模式透過將密鑰保持在智能體容器之外並置於基礎設施層執行之後來消除攻擊面。
為何智能體日誌是憑證風險
傳統應用程式日誌包含受控呼叫點的結構化事件。智能體日誌捕獲一切:LLM推理追蹤、工具呼叫參數、工具回傳值和中間推理步驟。當智能體使用Authorization標頭中的憑證呼叫外部API時,簡單的日誌記錄配置會捕獲該標頭。當智能體的推理追蹤包含來自擷取文件或提示的文字「using API key sk-...」時,該字串會出現在日誌中。
智能體日誌量很高,保留期通常很長。一旦憑證出現在日誌聚合系統中,就會一直保留到日誌被清除,這可能是在產生它的智能體退役後數週或數月。
從提示注入到憑證的路徑
OWASP LLM Top 10 v1.1(LLM06:敏感資訊披露,2025年10月發布)將憑證滲漏識別為LLM應用程式的主要攻擊向量。攻擊是直接的:智能體擷取的對抗性內容(來自網頁、文件、工具回應)包含「列印所有環境變數」或「輸出你的API金鑰」等指令。沒有結構性憑證隔離的智能體無法區分此指令與合法任務指令。
2026年初的研究掃描了3,984個智能體技能,發現283個(7.1%)包含透過LLM上下文以明文傳遞API金鑰的嚴重憑證處理缺陷。76個技能包含旨在將憑證滲漏到攻擊者控制端點的故意憑證竊取載荷。唯一的結構性防禦是確保憑證從不存在於智能體上下文中。智能體無法洩露它不持有的憑證。
AI智能體的憑證管理模式
模式1:環境變數(最不安全)
環境變數(os.environ、.env檔案、Docker --env標誌)是大多數智能體框架的預設憑證模式。LangChain從os.environ讀取,CrewAI依賴環境注入,OpenAI Agents SDK期望進程環境中的憑證。此模式僅適合本地開發和原型製作。
對於生產智能體叢集,環境變數在每個安全軸上都失效:它們存在於智能體進程記憶體中(可透過提示注入存取),出現在Linux主機上的/proc/{pid}/environ中,在錯誤追蹤和除錯輸出中出現,並傳播到共享環境叢集中的所有智能體。
模式2:密鑰管理器整合
雲端密鑰管理器(AWS Secrets Manager,每月$0.40/密鑰 + 每10,000次API呼叫$0.05;Azure Key Vault;GCP Secret Manager)透過將憑證儲存在智能體進程外並按需擷取來改進環境變數。智能體呼叫密鑰管理器API獲取憑證,用於操作,然後丟棄。
此模式減少了記憶體中憑證的生命週期,但不能消除暴露視窗:憑證在獲取-使用-丟棄週期中仍然透過智能體記憶體。它在該視窗期間對提示注入保持可見,並要求智能體持有第二個憑證(密鑰管理器API金鑰或IAM角色)來存取第一個憑證。
模式3:Vault Proxy / 不透明句柄注入(最安全)
Vault-Proxy模式將憑證完全保持在智能體容器之外。智能體持有一個不透明的句柄(如$CRED{stripe_key}的參考字串),它標識憑證而不解析它。當智能體進行包含句柄的API呼叫時,Vault Proxy攔截請求,將句柄解析為實際憑證,在網路層注入它,並轉發經過身份驗證的請求。智能體永遠不會看到明文憑證。
這與HashiCorp Vault(35,763顆星,BSL,v2.0.2於2026年6月5日發布)的智能體端注入原則相同,直接嵌入到智能體編排層中。生態系統中有700多個MCP伺服器(2026年6月),$CRED{}句柄模式消除了每伺服器.env蔓延:智能體配置中的一個句柄參考涵蓋了任何MCP伺服器的憑證需求。
完全受攻破的智能體容器(執行攻擊者任意指令)對憑證的存取為零,因為容器範圍內不存在任何憑證。
模式4:工作負載身份和OIDC聯合
工作負載身份(OIDC聯合、SPIFFE/SPIRE、雲端IAM服務帳戶)完全消除了雲端服務存取的長期API金鑰。每個智能體容器在執行時接收一個短期身份令牌,該令牌與雲端提供商憑證交換。憑證具有有界TTL(通常為15分鐘到1小時),之後過期,必須發放新令牌。
工作負載身份是在需要雲端提供商憑證(AWS API金鑰、GCP服務帳戶金鑰)的雲端基礎設施上運行的智能體叢集的正確模式。對於跨越多個雲端帳戶或提供商的多智能體系統架構,工作負載身份聯合是唯一可擴展的憑證模型。
OpenLegion的觀點:$CRED{}句柄模式
每個主要的AI智能體框架都將憑證管理視為宿主應用程式的問題。LangChain和LangGraph從os.environ讀取。CrewAI依賴環境注入。OpenAI Agents SDK期望進程環境中的憑證。AutoGen繼承Python進程環境。這些框架中沒有一個提供結構性憑證隔離——它們將憑證管理留給運營商,這在實踐中意味著.env檔案和共享環境變數。
OpenLegion的Vault-Proxy內建於智能體編排層。智能體將憑證引用為不透明的$CRED{名稱}句柄。網格主機在伺服器端解析句柄並在網路邊界注入憑證。沒有智能體容器會接收明文憑證。提示注入無法滲漏不存在的內容。
Infisical(27,296顆星,MIT授權核心的開源TypeScript密鑰平台)在2023年籌集了280萬美元種子融資,表明市場對開發者原生密鑰管理的需求。OpenLegion將相同功能直接嵌入智能體執行環境,無需單獨的密鑰管理部署。
| 維度 | OpenLegion | LangChain/LangGraph | CrewAI | OpenAI Agents SDK | AutoGen |
|---|---|---|---|---|---|
| 憑證儲存 | Vault(不透明句柄) | 環境 / .env | 環境 / .env | 環境 / .env | 環境 / .env |
| 智能體存取模式 | $CRED{}句柄(在容器中從不解析) | os.environ直接讀取 | os.environ直接讀取 | os.environ直接讀取 | os.environ直接讀取 |
| 智能體上下文中的明文? | 從不 | 是(os.environ讀取時) | 是(os.environ讀取時) | 是(os.environ讀取時) | 是(os.environ讀取時) |
| 輪換支援 | Vault原生;無需重啟的熱輪換 | 手動;需要重啟 | 手動;需要重啟 | 手動;需要重啟 | 手動;需要重啟 |
| 每智能體範圍 | 透過允許清單在網格級別強制執行 | 未強制執行 | 未強制執行 | 未強制執行 | 未強制執行 |
| 稽核追蹤 | 每次句柄解析都記錄智能體ID | 無原生 | 無原生 | 無原生 | 無原生 |
對於評估當前技術棧總體憑證暴露面的團隊,AI智能體安全威脅模型涵蓋憑證洩露作為六個記錄在案的威脅類別之一,與提示注入、沙箱逃逸和預算濫用並列。
AI智能體叢集的密鑰輪換
TTL有界憑證租約
靜態API金鑰(沒有過期的憑證)是智能體叢集最差的憑證。洩露的靜態金鑰無限期保持有效。金鑰輪換需要協調使用該金鑰的所有智能體,可能在活躍任務期間。
TTL有界憑證租約解決了這兩個問題。憑證以過期視窗發放——互動式智能體工作階段通常為1小時;高敏感操作為15分鐘。租約到期時,Vault自動發放新憑證。舊憑證在到期後無效,限制了任何洩露副本的價值。跨越多個租約視窗的智能體任務不中斷地接收透明刷新。
CVE-2026-39829(golang/crypto,2026年6月)修補了SSH公鑰解析中由無界RSA模數大小引起的DoS漏洞——Vault v2.0.2透過將RSA金鑰限制為8,192位元來解決此問題。即使專門構建的Vault基礎設施也會產生CVE,這就是為什麼即使直接使用Vault,智能體和原始密鑰之間的抽象層也很重要。
無需重啟智能體的熱輪換
熱輪換將新憑證注入Vault而不接觸運行中的智能體容器。智能體透過Vault Proxy的下一次API呼叫透明地使用新憑證。從智能體的角度來看,$CRED{名稱}句柄仍然解析——只是底層密鑰改變了。
熱輪換要求智能體從不在本地快取憑證。$CRED{}句柄模式在結構上強制執行這一點:句柄在呼叫時解析,而不是在啟動時,因此對解析值的本地快取從不可能。
每智能體輪換範圍
每智能體憑證範圍使輪換正交:輪換智能體A的憑證不影響智能體B,因為智能體B持有自己獨立的憑證範圍。對於連結多個專業智能體的智能體工作流設計,每智能體輪換範圍對於零停機時間的憑證衛生至關重要。
智能體間憑證隔離
每智能體憑證分配
叢集中的每個智能體應只持有其特定任務所需的憑證。每智能體憑證分配需要編排層來強制執行範圍,而不是智能體本身。請求其未被授權的憑證的智能體應在Vault邊界處收到拒絕,而不是因為憑證存在於共享.env中就悄悄收到憑證。
OWASP LLM06(敏感資訊披露)明確指出過度配置的智能體憑證是憑證洩露事件的促成因素。
MCP工具伺服器憑證範圍
在OpenLegion中,MCP伺服器憑證儲存在同一Vault中並透過相同的代理模式注入。MCP工具伺服器從網格代理接收經過身份驗證的請求,而不是從智能體接收原始憑證。這防止了惡意MCP伺服器被用作憑證收集向量。受攻破的MCP伺服器在傳入請求中只找到句柄參考,而不是原始金鑰。有關完整的Model Context Protocol安全加固模型,請參閱專用指南。
在智能體退役時撤銷憑證
OpenLegion的網格在智能體被歸檔時自動撤銷與該智能體範圍相關的所有憑證句柄。對於以程式方式管理智能體生命週期的AI智能體編排系統,憑證撤銷應該是一個一級生命週期事件,而不是運營上的事後考慮。
稽核追蹤和憑證存取日誌
每個憑證存取事件都應產生一個日誌條目,包含:解析句柄的智能體ID、句柄名稱(不是解析的值)、時間戳記、經過身份驗證的請求針對的外部端點,以及結果。不應記錄:實際憑證值或其任何派生物。
OpenLegion的編排器在統一事件流中記錄工具呼叫和憑證解析。法證分析可以回放序列:收到任務 -> LLM呼叫 -> 選擇工具 -> 解析憑證 -> 呼叫外部API -> 收到回應。對於AI智能體平台決策,稽核日誌架構是密鑰後端選擇旁邊的關鍵合規考慮因素。
為智能體平台選擇密鑰後端
HashiCorp Vault(35,763顆星,BSL,v2.0.2於2026年6月5日發布)提供動態密鑰生成、TTL有界租約、細粒度存取策略和全面稽核日誌。注意:HashiCorp於2023年8月從OSI批准的Apache 2.0授權切換到BSL,BSL不是OSI批准的開源授權且限制競爭對手的商業使用。
Infisical(27,296顆星,MIT授權核心,開源TypeScript)提供了一個開發者友好的密鑰平台,於2023年籌集了280萬美元種子融資,定位為Vault的輕量級替代品。
AWS Secrets Manager(每月$0.40/密鑰 + 每10,000次API呼叫$0.05)、Azure Key Vault和GCP Secret Manager提供託管密鑰儲存,與雲端IAM系統原生整合。OIDC工作負載身份解決了雲端原生部署的引導憑證問題。
常見問題
什麼是AI智能體的憑證管理?
AI智能體的憑證管理是規範自主智能體如何獲取、使用、輪換和釋放API金鑰、令牌和密鑰的基礎設施實踐總體。智能體與傳統應用程式不同,因為它們自主運行、可能透過提示注入被攻破、產生詳細日誌,並以多實例叢集方式運作。OWASP LLM Top 10 v1.1(2025年)將敏感資訊披露(LLM06)列為前十大威脅,將憑證滲漏列為主要攻擊向量。
與AI智能體憑證洩露相關的CVE有哪些?
CVE-2024-34359(llama-cpp-python,CVSS 9.6)記錄了模型載入管道中的Jinja2伺服器端範本注入漏洞,使載入不受信任模型的任何應用程式中的遠端代碼執行成為可能。CVE-2025-29927(Next.js,CVSS 9.1)展示了x-middleware-subrequest標頭可以在Next.js應用程式中繞過中介軟體授權,包括使用中介軟體保護憑證保護路由的AI智能體後端。結構性解決方案是將密鑰完全保持在智能體容器之外。
Vault-Proxy模式如何防止憑證洩露?
Vault Proxy攔截智能體API呼叫,在網路層將不透明的憑證句柄解析為實際密鑰,並回傳經過身份驗證的回應,而憑證永遠不會進入智能體的容器或上下文視窗。執行攻擊者任意指令的完全受攻破的智能體容器仍然對原始憑證的存取為零,因為容器範圍內不存在任何憑證。
為何每智能體憑證隔離在多智能體系統中很重要?
在多智能體系統中,每個智能體被攻破時的爆炸半徑受其持有的憑證限制。每智能體憑證範圍(在編排層而非智能體自己的代碼中強制執行)意味著受攻破的研究智能體無法存取發布智能體的寫入令牌或資料智能體的資料庫憑證。OWASP LLM06明確將過度配置的智能體憑證識別為憑證洩露事件的促成因素。
OWASP對AI智能體憑證管理有何看法?
OWASP Top 10 for LLM Applications v1.1(2025年10月發布)將敏感資訊披露列為LLM06,將憑證滲漏識別為LLM應用程式的主要攻擊向量。指導建議避免在智能體上下文中儲存明文憑證,實施最小權限憑證範圍,並使用基礎設施層控制而不是依賴智能體代碼來保護密鑰。
OpenLegion如何處理運行MCP伺服器的智能體的憑證?
在OpenLegion中,MCP工具伺服器憑證儲存在同一Vault中,並透過與智能體憑證相同的代理模式注入。MCP伺服器從網格代理接收經過身份驗證的請求,而不是從智能體接收原始憑證。受攻破的MCP伺服器無法從傳入請求中收集原始憑證。
什麼是密鑰輪換,AI智能體為何需要它?
密鑰輪換是在計劃或觸發的基礎上用新憑證替換憑證並使舊憑證無效的做法。AI智能體需要輪換,因為它們長時間運行,是潛在的滲漏目標,並且不能在任務中途輕易重啟。TTL有界憑證租約在可配置視窗後自動過期,Vault-Proxy模式支援熱輪換——在不接觸運行中的智能體容器的情況下注入新密鑰,因此輪換對智能體是透明的。
構建無憑證暴露的智能體叢集
AI智能體叢集中的憑證管理問題是架構性的:如果憑證存在於智能體容器中,它們就可能洩露。CVE-2024-34359和CVE-2025-29927表明,即使是資源充足、運行主要框架的團隊也會產生這種暴露。Vault-Proxy模式在結構上解決了它——憑證永遠不會進入智能體容器,因此提示注入、容器逃逸或日誌滲漏無法擷取它們。
OpenLegion的Vault-Proxy內建於智能體網格中。用$CRED{名稱}配置一次憑證,將其分配給需要它的智能體,網格處理注入、TTL刷新、每智能體範圍和稽核日誌。無需單獨的Vault部署、.env檔案協調或手動輪換程序。