Azure SRE Agent 在四個領域採用深度防禦安全:執行隔離、無密碼憑證、資料駐留,以及每位客戶的分區。 每一層都獨立運作,確保某一方面的妥協不會連鎖影響到其他層面。
執行隔離
代理的推理引擎與工具執行在不同的計算邊界中運行。
沙盒架構
每個特工都有自己的沙盒。 此架構為每個代理提供一個專用的運算環境,運行於微型虛擬機中,且與推理迴圈分開。
| 組件 | 執行於 | Role |
|---|---|---|
| 代理人推理 | 主要執行環境 | 處理訊息、選擇工具、建立回應 |
| 工具執行 | 沙盒(微型虛擬機) | 執行檔案操作、bash 指令、程式碼分析、MCP 工具 |
| 身分識別 sidecar | 獨立服務 | 管理憑證與令牌,與推理與執行隔離 |
| 網路代理 | 獨立服務 | 驗證並路由所有外發請求 |
代理程式僅透過結構化 API 呼叫與沙盒溝通,絕不透過直接的檔案系統或程序存取。
工具製程生命週期
每次工具調用都會在沙盒中啟動一個新的流程:
- 一個新的過程從它自己的環境開始。
- 網路代理透過 WebSocket 中繼輸入和輸出流。
- 完成後,整個程序樹終止。
系統不使用持久程序池。 環境變數和憑證是針對每個連線設定的範圍,因此一個工具呼叫無法看到另一個工具呼叫的環境。
程式碼執行
Python 和 shell 指令會在沙盒內透過程式碼直譯器執行:
- 執行過程與您的資源及代理程式的推理引擎是相互隔離的。
- 該環境包含超過 700 個預裝的 Python 套件,但不支援任意套件安裝。
- 出口代理控制網路存取,並限制其只能進入已知的服務域。
無秘密憑證管理
執行環境從不直接持有憑證。 而是由隔離的身分識別 sidecar 管理所有權杖,並視需要將權杖提供給個別工具程序。
資格認證的流程
- Agent 判斷需要進行工具呼叫。
- 要求會路由至沙箱。
- 身分識別 sidecar 會向工具程序簽發短期權杖。
- 該工具透過網路代理進行認證通話。
- 結果會回傳給代理人。 資歷從未進入推理的脈絡。
有三個特性使憑證盜用在結構上變得不可能:
- 身分識別 sidecar 隔離:由獨立服務在 Agent 執行環境外部管理所有認證。
- 每次呼叫範圍設定:權杖的範圍限定於個別工具叫用,而不會在整個沙箱中共用。
- 不繼承環境變數:只有明確宣告的變數會被轉發給工具程序。
證書壽命
| 類型 | Lifetime | 重新整理 |
|---|---|---|
| 管理身份標記 | ~1 小時(Azure 平台標準) | 自動使用 Azure SDK |
| OAuth tokens (GitHub, Azure DevOps) | 這因醫療提供者而異 | 在過期前20分鐘刷新 |
| 動作標記 (每個工具呼叫) | 一次性用途 | 每次叫用都會重新簽發 |
| Blob 儲存 SAS 代幣 | 1 小時 | 在過期前15分鐘更新 |
資料存放位置
當你的客服人員調查問題時,會查詢你的資料來源。 代理程式不會將原始查詢結果如日誌條目、指標和 API 回應寫入獨立資料庫。 當代理處理工具呼叫時,會將聊天與工具訊息(包括結果摘要)序列化到持續對話執行緒中。
以下資料 已 持久化:
| 資料 | 儲存體 | 保留 | Purpose |
|---|---|---|---|
| 討論串 | 代理人資料庫 | 直到被手動刪除 | 聊天紀錄、調查紀錄 |
| 會議見解 | 代理資料庫與 blob 儲存 | 持續性 | 綜合學習內容,如症狀、解決步驟及根本原因 |
| 記憶體檔案 | Blob 儲存體 | 跨會話持續存在 | 綜合知識、團隊情境、版本庫指令 |
| 執行緒檔案 | Blob 儲存體 | 與執行緒存留期繫結 | 使用者上傳,產生報告 |
會話洞察是綜合摘要,而非原始資料副本。 代理人會提取模式(出現哪些症狀、哪些解決方法有效、哪些要避免),並將其儲存為知識。 代理程式不會獨立保存完整的原始查詢結果。 它儲存序列化的工具訊息,可能包含結果摘錄或摘要,作為對話串歷史的一部分。
客戶個別隔離
| 層 | 隔離模型 |
|---|---|
| 計算 | 每個代理各自的專用沙盒 |
| Database | 每個代理人各自擁有獨立資料庫 |
| Blob 儲存體 | 每個代理程式各自使用獨立的 Blob 儲存體 |
| Network | 所有輸出要求適用的每個 Agent Proxy 執行個體 |
| 認證 | 每個 Agent 的受控識別,RBAC 範圍限定於客戶選取的資源群組 |
代理人員或客戶之間不會共享資料、運算或憑證。
記錄與可觀察性
您的代理會在設定時將操作遙測資料傳送到您設定的 Application Insights 實例,讓您能全面掌握代理的運作狀況。
| Telemetry | 詳細資料 |
|---|---|
| 對話痕跡 | 依追蹤 ID 和 span ID 建立關聯,以進行端對端要求追蹤 |
| 工具呼叫相依關係 | 每次外撥通話的方法、網址、時長及狀態碼 |
| 錯誤與異常 | 完整例外細節 |
| 自訂事件 | 鉤子啟動、事件處理及其他代理程式專屬操作 |
沙盒工具執行的遙測資料會流經同一條管線。
Encryption
| 層 | 保護 |
|---|---|
| 靜止 | 由 Azure 管理的加密可保護所有待用資料 |
| 傳輸中 | 所有外部通訊皆使用 HTTPS |
網路代理與政策
所有來自執行環境的外發網路存取都經過一個代理層,該層執行以下政策:
- 請求驗證:每個出站連線在抵達外部服務前都會被驗證。
- 認證插入:Proxy 會附加來自身分識別 sidecar 的限定範圍權杖;工具程式碼絕不會直接處理權杖。
- 環境範圍:只有明確宣告的環境變數會轉發給工具程序。
- 製程生命週期:工具製程於完成或逾時時終止。
代理者後援
當 Agent 的受控識別缺少某項作業的權限時,系統會後援改為代表您執行:
- 代理程式嘗試以其管理的身分進行操作。
- 權限不足,你會看到一個包含操作細節的 批准動作 提示。
- 你批准後,操作就會用你的憑證執行。
- 完成後不會快取您的認證。
執行模式控制此行為: 審查 模式需經核准寫入操作,而 自主 模式則直接使用管理身份。 欲了解更多資訊,請參閱 代理人權限。
私人網路存取
Azure SRE 代理支援針對私有網路需求的部署配置:
- 區域隔離 ——沙盒配置會遵守區域邊界(例如,東美國2沙盒會留在美國中部、美國中北部或加拿大中部)。
- VNet 整合執行:專用沙盒可設定在虛擬網路內執行。
- 無秘密憑證存取:身份服務為工具流程提供短暫的憑證,且不將憑證儲存在沙箱中。