您可以建立 IAM 允許政策和拒絕政策,供 Agent Gateway 用於安全控管代理與其他服務 (包括其他代理、MCP 伺服器和端點) 之間的代理通訊。Agent Gateway 會使用 Identity-Aware Proxy (IAP) 強制執行政策。IAP 也會強制執行端對端代理程式身分驗證和授權安全防護。
如要為 Agent Gateway 建立 IAM 政策,請參閱「建立 IAM 政策」。
您也可以在代理程式身分上建立主體存取邊界 (PAB)。Agent Gateway 可使用 IAP 強制執行主體存取邊界政策。
啟用 Agent Gateway
如要使用代理功能通訊政策,請務必設定 Agent Gateway。
建議您在預先執行模式 (DRY_RUN) 下,於暫存環境中設定 Agent Gateway,確認政策運作正常。在模擬測試模式下,IAP 會將不允許的代理通訊記錄到 Cloud 稽核記錄,但不會封鎖這些通訊。
確認政策運作正常後,即可更新 Agent Gateway 設定,將強制執行模式設為 ENFORCE。在這個模式下,系統會禁止違反政策的代理通訊,並封鎖與資源的通訊。
政策元件
政策包含下列元件:
代理:在 IAM 允許政策中,來源代理會依據代理身分 (與服務啟動通訊的代理身分) 定義。如要瞭解不同類型的代理如何接收身分,請參閱「代理身分」。代理身分由主體 ID表示,其中包含代理的 SPIFFE 格式身分,例如
principal://agents.global.org-...。請注意,URN 格式的代理程式 ID (例如urn:agent:...) 僅用於清查和目錄查詢,不會用於 IAM 政策繫結。使用 gcloud CLI 設定 IAM 政策時,代理主體是您授予存取權的成員。系統會自動為 Gemini Enterprise 代理和 Agent Runtime 執行個體指派代理身分,並在代理註冊表中註冊。
Agent Registry 資源:您要授予或拒絕存取權的 Agent Registry 服務。在 IAM 允許和拒絕政策中,Agent Registry 服務稱為「資源」。資源可以是專案中的整個登錄檔,也可以是個別服務,例如 MCP 伺服器、代理或端點。
個別服務必須先在代理程式登錄中註冊,才能在 IAM 政策中參照。系統會在繫結時驗證這項註冊 (建立或更新政策繫結時)。如果您參照未註冊的服務,政策建立作業會立即失敗,並顯示「找不到要求的實體」(
NOT_FOUND) 錯誤。使用 gcloud CLI 或 Terraform 設定政策時,目標資源會依其登錄檔建立的路徑或 ID (使用
--agent、--endpoint或--mcp-server等標記) 指定,而非邏輯 URN ID。在執行階段,安全閘道會依據確切的主機名稱比對流量目的地,而不是使用 URN。如果將代理程式登錄檔區域化,IAM 允許政策只會套用至登錄檔區域中的資源。
角色:代理通訊政策一律會授予服務資源「受 IAP 保護的輸出者 (
roles/iap.egressor)」 角色。條件:您可以視需要設定 IAM 允許政策的條件,進一步限制代理程式可存取的內容。在Cloud de Confiance 控制台中,您可以選取 UI 元素,使用條件建構工具建立條件。或者,您也可以使用條件編輯器,以一般運算語言 (CEL) 運算式輸入更複雜的條件。
下表列出可用於建構 CEL 運算式的屬性名稱。由於系統不支援直接存取欄位的方式 (例如
request.mcp.toolName),因此您必須使用api.getAttribute()函式擷取每個屬性的值。如要進一步瞭解如何設定含條件的允許政策,請參閱「設定 IAM 代理程式政策」。
屬性名稱 說明和 CEL 範例 mcp.toolName要呼叫的特定工具名稱。
例如:request.mcp.toolName == 'GetCalendarEvents'iap.googleapis.com/mcp.resourceName存取資源的名稱。
例如:api.getAttribute('iap.googleapis.com/mcp.resourceName', '') == 'my-resource'iap.googleapis.com/mcp.promptName使用的提示名稱。
例如:api.getAttribute('iap.googleapis.com/mcp.promptName', '') == 'my-prompt'mcp.method具體的 MCP 作業 (例如 tools/call、resources/read)。 iap.googleapis.com/mcp.tool.isReadOnly
iap.googleapis.com/mcp.tool.isDestructive
iap.googleapis.com/mcp.tool.isIdempotent
iap.googleapis.com/mcp.tool.isOpenWorld布林值標記,用於表示作業類型。
例如:api.getAttribute('iap.googleapis.com/mcp.tool.isReadOnly', false) == truerequest.auth.type指出通訊協定的列舉 (例如「MCP」)。
建立政策
在 Cloud de Confiance 控制台的「政策」頁面中,您可以建立 IAM 允許政策和拒絕政策,供 Agent Gateway 用來管理代理程式通訊。
在 gcloud CLI 中,您可以設定 IAM 允許和 IAM 拒絕政策,供 Agent Gateway 用來控管代理程式通訊。
Cloud de Confiance 控制台中的政策
如要使用 Cloud de Confiance 控制台建立 IAM 政策,請參閱「設定 IAM 政策」。
gcloud CLI 中的政策
如要使用 gcloud CLI 建立 IAM 政策,請參閱「設定 IAM 政策」。
端對端驗證和授權
IAP 和情境感知存取權會使用下列通訊協定,提供預設的端對端代理程式身分驗證和授權:
- 相互傳輸層安全標準 (mTLS)
- 出示擁有權證明 (DPoP)
代理身分會佈建 X.509 憑證和與憑證綁定的權杖。IAP 會強制代理身分使用相互傳輸層安全性 (mTLS) 向 Agent Gateway 進行驗證。當閘道允許代理程式輸出及存取 Cloud de Confiance API、MCP 伺服器、其他代理程式和端點時,代理程式會嘗試存取 mTLS 邊界外部的內容。為保護通訊安全,情境感知存取權會強制執行 Google 管理的情境感知存取權政策。這項政策規定 DPoP 驗證與 Agent Identity 綁定的憑證繫結權杖。如要進一步瞭解情境感知存取權如何提供端對端 mTLS 和 DPoP 安全性,請參閱「情境感知存取權代理程式安全性」。
後續步驟
程式碼研究室:確保跨雲端代理式 AI 應用程式安全
請參閱「Securing Cross-Cloud Agentic AI Applications」程式碼研究室,瞭解如何保護代理式應用程式。