IAM 政策總覽

您可以建立 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 允許政策中設定條件,進一步限制代理可存取的內容。在Google Cloud 控制台中,您可以使用「Condition builder」(條件建構工具),透過選取 UI 元素來建立條件。或者,您也可以使用「Condition editor」(條件編輯器),以一般運算語言 (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) == true
    request.auth.type 表示通訊協定的列舉 (例如「MCP」)。

建立政策

在 Google Cloud 控制台的「Policies」(政策) 頁面,建立 IAM 允許政策和拒絕政策,讓 Agent Gateway 用於管理代理通訊。

在 gcloud CLI 中,您可以設定 IAM 允許和 IAM 拒絕政策,讓 Agent Gateway 用於控管代理通訊。

Google Cloud 控制台中的政策

如要使用 Google Cloud 控制台建立 IAM 政策,請參閱「設定 IAM 政策」。

gcloud CLI 中的政策

如要使用 gcloud CLI 建立 IAM 政策,請參閱「設定 IAM 政策」。

端對端驗證與授權

IAP 和情境感知存取權會使用下列通訊協定,提供預設的端對端代理身分驗證和授權:

  • 雙向傳輸層安全標準 (mTLS)
  • Demonstrating Proof of Possession (DPoP)

代理身分會透過 X.509 憑證和憑證繫結權杖佈建。IAP 會強制要求代理身分使用相互傳輸層安全性 (mTLS),向 Agent Gateway 進行驗證。當閘道允許代理程式輸出及存取 Google Cloud API、MCP 伺服器、其他代理程式和端點時,代理程式會嘗試存取 mTLS 邊界以外的資源。為保護通訊安全,情境感知存取權會強制執行 Google 管理的情境感知存取權政策。這項政策規定會要求 DPoP 驗證與 Agent Identity 繫結的憑證繫結權杖。如要進一步瞭解情境感知存取權如何提供端對端 mTLS 和 DPoP 安全性,請參閱「情境感知存取權代理程式安全性」。

後續步驟

程式碼實驗室

如要瞭解如何保護代理應用程式,請參閱「保護跨雲端代理式 AI 應用程式」程式碼實驗室。

總覽

概略瞭解 Agent Gateway。

指南

瞭解 Google Agent Platform 的安全控管機制。