IAM 政策概览

您可以创建 IAM 允许政策和拒绝政策,供 Agent Gateway 用于安全地管控您的代理与其他服务(包括其他代理、MCP 服务器和端点)之间的代理通信。Agent Gateway 使用 Identity-Aware Proxy (IAP) 来强制执行政策。IAP 还会强制执行端到端代理身份验证和授权安全性。

如需为 Agent Gateway 创建 IAM 政策,请参阅创建 IAM 政策。

您还可以在 Agent Identity 上创建 Principal Access Boundary (PAB)。Agent Gateway 可以使用 IAP 来强制执行 Principal Access Boundary Policy。

启用 Agent Gateway

如需使用智能体通信政策,您必须设置 Agent Gateway。

我们建议您在预演环境中以试运行模式 (DRY_RUN) 配置 Agent Gateway,以验证政策是否按预期运行。在试运行模式下,IAP 会将不允许的代理通信记录到 Cloud Audit Logs 中,但不会阻止这些通信。

当您确信政策运行正常后,可以更新代理网关配置,将强制执行模式设置为 ENFORCE。在此模式下,系统会禁止违反政策的代理通信,并阻止与资源的通信。

政策组件

政策包含以下组成部分:

  • 代理:在 IAM 允许政策中,源代理由其代理身份(与服务发起通信的代理的身份)定义。如需了解不同类型的代理如何接收身份,请参阅代理身份。代理身份由包含代理的 SPIFFE 格式身份的主账号标识符表示,例如 principal://agents.global.org-...。请注意,采用 URN 格式的代理标识符(例如 urn:agent:...)仅用于清单和目录查找,不会用于 IAM 政策绑定。使用 gcloud CLI 配置 IAM 政策时,智能体主体是您授予访问权限的成员。

    Gemini Enterprise 代理和 Agent Runtime 实例会自动分配 Agent Identity 并注册到 Agent Registry 中。

  • Agent Registry 资源:您要授予或拒绝访问权限的 Agent Registry 服务。在 IAM 允许和拒绝政策中,Agent Registry 服务称为资源。资源可以是项目中的整个注册表,也可以是单个服务,例如 MCP 服务器、代理或端点。

    各个服务必须先在代理注册表中注册,然后才能在 IAM 政策中引用。此注册会在绑定时(创建或更新政策绑定时)进行验证。如果您引用的服务未注册,政策创建会立即失败,并显示“找不到所请求的实体”(NOT_FOUND) 错误。

    使用 gcloud CLI 或 Terraform 配置政策时,目标资源是通过其注册机构生成的路径或 ID(使用 --agent、--endpoint 或 --mcp-server 等标志)指定的,而不是通过其逻辑 URN 标识符指定的。在运行时,安全网关会按确切的主机名(而非使用 URN)匹配流量目的地。

    如果您将代理注册表区域化,则您的 IAM 允许政策仅适用于注册表所在区域中的资源。

  • 角色:代理通信政策始终会向服务资源授予 IAP-secured Egressor (roles/iap.egressor) 角色。

  • 条件:您可以选择在 IAM 允许政策中配置条件,以进一步限制代理可以访问的内容。在Cloud de Confiance 控制台中,您可以使用条件构建器通过选择界面元素来创建条件。或者,您也可以使用条件编辑器以通用表达式语言 (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”)的枚举。

创建政策

在 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 和情境感知访问权限使用以下协议提供默认的端到端代理身份验证和授权:

  • 双向 TLS (mTLS)
  • 演示所有权证明 (DPoP)

代理身份通过 X.509 证书和与证书绑定的令牌进行预配。IAP 会强制执行以下操作:代理身份使用双向 TLS (mTLS) 向 Agent Gateway 进行身份验证。当网关允许代理出站并访问 Cloud de Confiance API、MCP 服务器、其他代理和端点时,代理会尝试在 mTLS 边界之外进行访问。为了帮助保护通信,情境感知访问权限会强制执行由 Google 管理的情境感知访问权限政策。该政策要求 DPoP 验证与代理身份绑定的证书绑定令牌。如需详细了解情境感知访问权限如何提供端到端 mTLS 和 DPoP 安全保护,请参阅情境感知访问权限代理安全性。

后续步骤

Codelab

如需了解如何在 Securing Cross-Cloud Agentic AI Applications Codelab 中保护智能体应用,请参阅相关内容。

窗口概览

Agent Gateway 概览。

指南

了解 Google Agent Platform 的安全控制措施。