IAM 統一存取政策總覽

您可以建立 Identity and Access Management (IAM) 統一存取政策 (UAP),協助安全控管代理主體與目的地資源之間的通訊,例如目的地代理、MCP 伺服器和端點。這些政策會繫結至含有 Agent Gateway 執行個體的專案。

Agent Gateway 會使用 Identity-Aware Proxy (IAP) 評估及強制執行 UAP。

IAP 也與情境感知存取權整合,提供端對端代理程式身分驗證和授權。

如要為 Agent Gateway 設定 UAP,請參閱「設定 IAM UAP」。

您也可以在代理程式身分上建立主體存取邊界 (PAB)。Agent Gateway 可使用 IAP 強制執行主體存取邊界政策。

啟用 Agent Gateway

如要使用代理功能通訊政策,請務必設定 Agent Gateway。

建議您在預備環境中,以試執行模式 (DRY_RUN) 設定 Agent Gateway,確認政策是否正常運作。

確認政策運作正常後,即可更新 Agent Gateway 設定,將強制執行模式設為 ENFORCE。在這個模式下,系統會禁止違反政策的代理通訊,並封鎖與資源的通訊。

UAP 總覽

UAP 可控管一或多個代理主體是否能存取一或多個目的地資源。UAP 支援單一政策中的多項規則,可擴充 IAM 政策模型。與 IAM 允許和拒絕政策不同,UAP 中的每項規則都可以同時具有允許和拒絕效果。進一步瞭解 IAM 政策類型。

規則也包含以一般運算語言 (CEL) 表示的條件。條件是控管閘道後資源存取權的主要機制。透過 Agent Gateway 和 IAP 強制執行 UAP,可嚴格控管企業部署的代理行為。您可以在單一政策中,表示現實世界中精細的代理程式控管用途。

一般政策至少包含兩項不同的規則:

  • 允許規則:允許規則具有允許效果,可讓代理主體存取特定安全作業,例如對工具執行讀取作業,以擷取追蹤資料或查看登錄項目。
  • 拒絕規則:拒絕規則具有拒絕效果,可禁止代理執行非預期動作,例如對重要資源執行未經指令的刪除或更新作業。

舉例來說,假設自動化客戶服務專員需要與內部工具互動,而這些工具具有客戶資料庫的特殊存取權。管理員會透過 IAP 設定 Agent Gateway,強制執行 IAM UAP。管理員可以設定 UAP,其中包含授權代理主體讀取支援單的允許規則,以及禁止代理主體刪除或更新資料庫記錄的拒絕規則。

如果 UAP 同時包含允許和拒絕規則,機構就能直接在基礎雲端基礎架構上部署單一企業法規遵循政策,限制代理程式行為。

最佳做法

設定代理程式輸出政策時,請遵循下列最佳做法:

  • 使用模擬測試模式:先在模擬測試模式下部署新政策或修改後的政策,確保政策運作正常,不會封鎖作用中代理程式的流量。
  • 落實最小權限原則:只授予必要的權限。在 CEL 條件中使用特定工具名稱或路徑,而非萬用字元。
  • 使用拒絕規則做為安全防護措施:使用明確的拒絕規則,實作重要的安全防護措施,例如封鎖生產端點上的破壞性工具。使用拒絕規則做為防護措施非常有效,因為拒絕規則會覆寫允許規則。
  • 定期執行稽核:定期檢查 Cloud 稽核記錄 記錄和政策設定,確認這些項目符合貴機構的安全政策。

UAP 元件

UAP 包含一或多個規則。規則包含下列元件:

代理主體

在 IAM UAP 中,您可以定義一或多個代理主體。代理主體是您授予存取權的成員。您可以依據代理身分指定代理,也就是啟動與資源通訊的代理身分。如要進一步瞭解不同類型的代理程式如何接收身分,請參閱「代理程式身分」。代理身分由主體 ID代表,其中包含代理的 SPIFFE 格式身分 (例如 principal://agents.global.org-...)。

您可以指定個別代理程式身分陣列或主體集陣列。

系統會在各項服務 (例如 Agent Runtime (推論引擎)、Gemini Enterprise (Discovery Engine) 和設定代理程式身分的 Cloud Run 服務) 中,佈建內建代理程式身分。 Cloud de Confiance 這些代理主體的形式為 principal://TRUST_DOMAIN/AGENT_UNIQUE_IDENTIFIER,其中 ID 代表代理主體在代管服務上的資源路徑。您也可以使用 Workload Identity 聯盟主體 ID 指定代理程式。

規則效用

規則作用會定義規則是否允許代理主體存取資源。

目的地資源

IAM UAP 可管理代理主體對目的地資源的存取權。目的地資源是指代理程式主體嘗試存取的資源。目的地資源是在規則條件中指定。目的地資源可以是已註冊的資源,也可以是未註冊的資源。

已註冊的資源

已註冊的資源是指在 Agent Registry 登錄中註冊的資源。

已註冊的資源包括:

  • 登錄:專案中的整個代理程式登錄。
  • MCP 伺服器:在代理程式登錄中註冊的 MCP 伺服器。
  • 代理:在代理註冊表中註冊的代理。您可以透過代理程式 ID 個別指定代理程式。主體組合 ID 可指定一組代理。
  • 端點:在代理程式登錄檔中註冊的端點。

您可以在 Agent Registry 註冊個別服務。如果您將代理程式登錄項目區域化,且規則會管理已登錄資源的存取權,則 UAP 只會套用至登錄項目區域中的資源。

未註冊的資源

未註冊的資源是指未在代理程式登錄中註冊的資源。如要允許或拒絕存取 UAP 規則中未註冊的資源,您必須使用包含未註冊主機和路徑屬性的一般運算語言 (CEL) 運算式,在規則條件中指定未註冊的資源。

條件

在 UAP 規則中,您可以使用 conditions 區塊中的一般運算語言 (CEL) 運算式,定義目標資源範圍和精細存取條件:

  • 目標資源範圍:識別規則控管哪些目的地資源。在 JSON 格式的政策檔案中,您可以指定目的地屬性,例如 destination.agent_registry.mcp_server.name 或 destination.unregistered.host。在 Cloud de Confiance 控制台中,選取「目標資源」下方的目的地,系統會自動將這些資源條件新增至規則的條件運算式。

  • 存取條件:使用布林運算式判斷規則效果的適用時間和限制條件。舉例來說,您可以使用 UAP CEL 屬性,根據工具名稱、唯讀狀態、HTTP 方法或路徑前置字串限制存取權。只有在整個 CEL 運算式評估結果為 true 時,規則效果 (允許或拒絕) 才會生效。

在 gcloud CLI 和 REST API 中,您可以在規則定義的 conditions 欄位中指定這些 CEL 運算式。

在 Cloud de Confiance 控制台中,您可以使用條件建構工具設定標準規則,或直接在條件編輯器中編寫自訂 CEL 運算式。

權限

在採用 IAM UAP 的 IAP V2 中,系統一律會對目的地資源授予 iap.googleapis.com/resources.egressViaIAP 權限。在 gcloud CLI 和 REST API 中,您可以在政策檔案的 operation.permissions 欄位中指定權限。

建立政策的選項

您可以在 Cloud de Confiance 控制台的「政策」頁面中建立 IAM UAP。建議您只建立使用者存取權政策 (IAM v3 政策)。

在 gcloud CLI 和 REST API 中,您都可以先建立 JSON 格式的檔案,然後設定 IAM UAP。建議您只建立 UAP。

端對端驗證和授權

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

  • 相互傳輸層安全標準 (mTLS)
  • 示範擁有權證明 (DPoP)

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

UAP CEL 屬性

您可以在 UAP 中使用條件運算式定義條件。運算式可以包含多個子運算式。您在每個關係子條件中使用的目的地資源類型,會決定可使用的屬性。

舉例來說,在下列條件中,子運算式 destination.unregistered.path.startsWith('/v1/statements') 的資源類型是未註冊的目的地,屬性是 destination.unregistered.path,而 startsWith() 是 CEL 函式。

destination.unregistered.host == 'finance.example.com' &&
destination.unregistered.path.startsWith('/v1/statements')

下表列出各資源類型可用的屬性:

目的地資源類型 屬性 詳細資料

Agent Registry

destination.is_registered
值類型 布林值
支援的值 true、false
支援的作業 ==、!=
destination.agent_registry.resource_type
值類型 字串
支援的值 'AGENT'、'ENDPOINT'、 'MCP_SERVER'、'SKILL'
支援的作業 ==、!=、in
destination.agent_registry.location
值類型 字串
支援的值 Google Cloud 位置 ID (例如 'global'、'us-central1')
支援的作業 ==、!=、in
destination.agent_registry.project_id
值類型 字串
支援的值 Google Cloud 專案 ID
支援的作業 ==、!=、in

代理

destination.agent_registry.agent.name
值類型 字串
支援的值 代理資源名稱 (projects/PROJECT_ID/locations/LOCATION/agents/AGENT_NAME)
支援的作業 ==、!=、in

MCP 伺服器

destination.agent_registry.mcp_server.name
值類型 字串
支援的值 MCP 伺服器資源名稱 (projects/PROJECT_ID/locations/LOCATION/mcpServers/MCP_SERVER_NAME)
支援的作業 ==、!=、in
destination.agent_registry.mcp_server.method
值類型 字串
支援的值 MCP 方法名稱 (例如 'tools'、'prompts'、'resources')
支援的作業 ==、!=、in
destination.agent_registry.mcp_server.tool.name
值類型 字串
支援的值 工具名稱 (例如 'search_code'、'execute')
支援的作業 ==、!=、in
destination.agent_registry.mcp_server.tool.annotations.read_only_hint
值類型 布林值
支援的值 true、false
支援的作業 ==、!=
destination.agent_registry.mcp_server.tool.annotations.destructive_hint
值類型 布林值
支援的值 true、false
支援的作業 ==、!=
destination.agent_registry.mcp_server.tool.annotations.idempotent_hint
值類型 布林值
支援的值 true、false
支援的作業 ==、!=
destination.agent_registry.mcp_server.tool.annotations.open_world_hint
值類型 布林值
支援的值 true、false
支援的作業 ==、!=
destination.agent_registry.mcp_server.prompt.name
值類型 字串
支援的值 提示名稱
支援的作業 ==、!=、in
destination.agent_registry.mcp_server.resource.name
值類型 字串
支援的值 資源名稱
支援的作業 ==、!=、in

端點

destination.agent_registry.endpoint.name
值類型 字串
支援的值 端點資源名稱 (projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_NAME)
支援的作業 ==、!=、in

未註冊目的地

destination.unregistered.host
值類型 字串
支援的值 主機名稱 (例如 'google.com'、'example.com')
支援的作業 ==、!=、in、 .startsWith()、.endsWith()、 .contains()
destination.unregistered.path
值類型 字串
支援的值 要求路徑 (例如 '/admin'、'/api/v1')
支援的作業 ==、!=、in、 .startsWith()、.endsWith()、 .contains()
destination.unregistered.method
值類型 字串
支援的值 HTTP 方法 (例如 'get'、'post'、'put'、'delete')
支援的作業 ==、!=、in

後續步驟

程式碼研究室

請參閱「Securing Cross-Cloud Agentic AI Applications」程式碼研究室,瞭解如何保護代理式應用程式。

總覽

概略瞭解 Agent Gateway。

指南

瞭解 Google Agent Platform 的安全控管措施。