本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行期執行個體的安全模型和許可
當您在執行個體運算類型上託管代理程式時,您的代理程式會在您自己 AWS 帳戶中的 Amazon EC2 執行個體上執行。相較於無伺服器 microVM 運算類型,這會變更共同責任模型:在您的帳戶和 VPC 中執行的執行個體、使用執行時間執行角色的許可執行的代理程式,以及其上的資料會保留在您的帳戶中。本主題說明執行個體的安全模型、涉及的許可,以及多租用戶部署應遵循的實務。
本主題補充 AgentCore Runtime 安全最佳實務中的全執行期指引。其中的實務 — IAM 最低權限、身分驗證、加密、網路安全和稽核 — 也適用於執行個體。如需連接至工作階段的 EBS 磁碟區如何加密,請參閱執行期執行個體的靜態加密。
安全模型
-
執行個體位於您的帳戶中 — 容量提供者啟動的 EC2 執行個體會在您的帳戶和 VPC 中作為 Amazon EC2 受管執行個體執行。您可以透過帳戶中的 CloudTrail 和 VPC 流程日誌來檢查它們、套用自己的控制項,以及稽核其活動。
-
執行個體上的代理程式不會彼此隔離 — 多個代理程式可以在同一個執行個體上執行並共用其檔案系統。代理程式在執行個體上執行,無論是在容器內,或是直接部署的代理程式,都是直接在執行個體上執行的程序,兩者皆不會在相同執行個體上的工作負載之間提供安全界限。共用執行個體的所有代理程式都必須相互信任。
-
工作階段是隔離單位 — 由容量提供者和工作階段 ID 組合識別的工作階段,對應至一個 EC2 執行個體 (1:1)。兩個不同容量提供者下的相同工作階段 ID 是指兩個不同執行個體上的兩個不同工作階段。您要彼此隔離的客服人員不應共用工作階段。
-
登入資料販賣 — AgentCore 會將執行角色登入資料提供給執行個體上執行的代理程式,並定期重新整理。在執行個體上執行的任何程式碼都可以讀取可用的登入資料。將每個執行階段的執行角色範圍限制為其代理程式所需的最低權限。如需詳細資訊,請參閱登入資料管理。
-
您的帳戶控制適用 — 由於執行個體在您的帳戶中執行,您的 AWS Organizations 服務控制政策 (SCPs)、許可界限和 VPC 控制會管理您帳戶中採取的動作。AgentCore 會透過您提供或核准的基礎設施角色採取行動;將其範圍限定為 IAM 條件 (例如特定 VPCs、子網路或執行個體類型)。例外情況是用於刪除和清除資源的 AgentCore 服務連結角色,不受 SCPs 限制,與 一般 AWS 處理服務連結角色的方式一致。
-
資料駐留 — 代理程式在您指定的 VPC、子網路、帳戶和區域中執行,工作階段資料和 EBS 磁碟區會保留在您的帳戶中。
所需的許可
在執行個體上託管代理程式除了授予代理程式程式碼其執行期許可的代理程式執行期執行角色之外,還涉及下列角色。
-
執行個體描述檔 — 連接至 EC2 執行個體。AgentCore 會使用它從執行個體收集系統日誌;它不會授予代理程式程式碼的許可 (代理程式執行時間執行角色會這麼做)。
-
基礎設施角色 — AgentCore 會擔任此角色,代表您佈建和管理帳戶中的 EC2 執行個體 - 啟動、標記和設定執行個體及其網路介面的聯網。由於此角色會授予 AgentCore 許可來管理您帳戶中的運算、將其範圍限定為工作負載所需的最低權限,並使用 IAM 條件在適當情況下將其限制為特定 VPCs、子網路或執行個體類型。
如需角色組態步驟,請參閱開始使用執行個體。
工作階段路由和多租戶隔離
AgentCore 執行期授權對代理程式執行期資源 ARN 進行呼叫,而不是對個別工作階段進行呼叫。
當您呼叫 代理程式時,您會提供 runtimeSessionId,而 AgentCore 會驗證該工作階段 ID 的格式,但不會驗證它是否屬於呼叫身分。這對於多租用戶部署有重要的後果:
重要
在單一 IAM 主體代表多個最終使用者叫用 的部署中,平台不會強制執行 sessionId屬於呼叫使用者。您有責任確保後端傳遞sessionId每位使用者的正確 。
如果多個最終使用者共用相同的 IAM 主體 (例如,呼叫所有使用者InvokeAgentRuntime的單一後端執行角色),且您的後端未將工作階段繫結給使用者,則已驗證的使用者可以提供另一個使用者的工作階段 ID,並將請求路由到該使用者的工作階段。下列實務可緩解這種情況。
在後端強制執行session-to-user繫結
在後端實作應用程式層級session-to-user繫結。維護您應用程式中每個最終使用者及其工作階段 IDs之間的映射,並確保向某個使用者發出的請求永遠無法與另一個使用者的 一起發出runtimeSessionId。將 runtimeSessionId視為衍生自已驗證最終使用者的伺服器端值 — 絕不直接從不受信任的用戶端輸入接受它。對於共用主體、多租用戶部署,後端的應用程式層級繫結是防止一個使用者將請求路由到另一個使用者的工作階段的控制項。
將不同的 IAM 主體用於高安全性的多租用戶部署
對於高安全性的多租用戶部署,請使用每個最終使用者 (或每個租用戶群組) 的不同 IAM 主體來叫用客服人員,而不是單一共用主體。當每個使用者或租用戶透過自己的主體叫用 時,IAM 本身會強制執行工作階段範圍界定:主體只能叫用其政策允許的執行期,這會移除工作階段路由風險的共用主體類別。這是最強大的控制,建議每當部署可以支援每個使用者或每個租用戶主體時。
稽核和監控
使用稽核來偵測工作階段路由偵察和異常存取:
-
關聯主體和工作階段 ID: AWS CloudTrail 會在相同
InvokeAgentRuntime事件sessionId中記錄已驗證的主體和目標。使用此項目可偵測委託人路由至由不同委託人建立的工作階段。 -
套用全執行期稽核實務 — 啟用 CloudTrail 和 VPC 流程日誌、使用請求 IDs關聯日誌,以及設定指標篩選條件和警示,如稽核和監控中所述。
最佳實務
-
依信任層級分隔工作負載 — 針對非互信的工作負載使用不同的工作階段。請勿在相同的工作階段中共同放置不受信任的代理程式。
-
將最低權限套用至每個角色 — 將代理程式執行時間執行角色和基礎設施角色範圍限定為每個角色所需的動作和資源。
-
將工作階段繫結至後端中的使用者 — 對於一個主體為多個最終使用者提供服務的任何部署,請在您的應用程式層中強制執行session-to-user繫結。
-
偏好每個使用者或每個租用戶主體 — 在可行的情況下,透過不同的 IAM 主體叫用 ,以便 IAM 強制執行工作階段範圍界定。
-
監控跨委託人路由 — 使用 CloudTrail 偵測路由異常,例如委託人路由到由不同委託人建立的工作階段。
如需也適用於執行個體的全執行期安全指引,請參閱 AgentCore 執行期的安全最佳實務。