智能体身份概览

代理身份基于 SPIFFE 标准,为每个代理提供经过强认证的加密身份。借助代理身份,您的代理可以安全地向 MCP 服务器、云资源、端点和其他代理进行身份验证,既可以代表自己,也可以代表最终用户。代理身份使用代理自己的凭据代理身份验证管理器。您可以使用身份验证管理器创建和管理 身份验证提供方,这些提供方是用于获取、管理和保护 API 密钥、OAuth 客户端 ID、OAuth 客户端密钥和委托的最终用户 OAuth 令牌的特定配置。

与服务账号不同,代理身份默认情况下不与多个工作负载共享,无法被模拟,也不允许开发者生成长期有效的服务帐号密钥。为 Google Cloud 生成的访问令牌以加密方式绑定到代理的唯一 X.509 证书,以防止 令牌被盗。

当代理身份与代理网关和 Gemini Enterprise 搭配使用时,最终用户凭据(例如 Gemini Enterprise 连接器提供的凭据)由身份验证管理器加密,并在网关处解密,确保代理永远无法访问原始凭据。

以下服务支持代理身份:

身份验证模型

为了使用各种工具和服务进行身份验证,代理身份支持多种身份验证模型。代理使用的模型取决于目标资源提供的身份验证方法,以及代理是代表自己还是代表最终用户执行操作。

职权 身份验证方法 目标资源 用例和解决方案
用户委托的职权 OAuth 2.0(三方模式)(预览版 外部工具和服务 当代理代表特定用户执行操作时(例如, 访问用户的 Jira 任务或 GitHub 代码库)。您可以在代理身份验证管理器中配置三方模式 OAuth 身份验证提供方,以管理用户同意和令牌。如需了解详情,请参阅 使用身份验证管理器通过三方模式 OAuth 进行身份验证
代理自己的职权 基于云的身份(代理身份) Google Cloud 服务 当托管在 Google Cloud 上的代理需要使用自己的身份访问其他 Google Cloud 服务时。如需了解详情,请参阅使用代理自己的身份进行身份验证
OAuth 2.0(两方模式)(预览版 外部工具和服务 建议用于与支持 OAuth 的外部 服务进行机器对机器身份验证。您可以在代理身份验证管理器中配置两方模式 OAuth 身份验证提供方,以处理 客户端凭据和访问令牌。如需了解详情,请参阅 使用身份验证管理器通过两方模式 OAuth 进行身份验证
API 密钥(预览版 外部工具和服务 对于需要使用加密密钥或密码进行 身份验证的外部服务。您可以在 代理身份验证管理器中配置 API 密钥身份验证提供方,以帮助安全地存储和管理 密钥。如需了解详情,请参阅 使用身份验证管理器通过 API 密钥进行身份验证
HTTP 基本身份验证 外部工具和服务 使用纯文本密码。不建议 使用此方法。您可以存储与 API 密钥类似的密码。如需了解详情, 请参阅使用身份验证管理器通过 API 密钥进行身份验证

核心组件

代理身份涉及多个关键组件,这些组件共同帮助提供安全的身份验证和授权。

基于 SPIFFE 的身份

系统会根据 SPIFFE 标准为每个代理分配一个唯一的身份字符串(即 SPIFFE ID)。此身份经过强认证,与代理的生命周期相关联,并直接映射到托管代理的资源 URI。

该身份采用以下格式:

spiffe://TRUST_DOMAIN/resources/SERVICE/RESOURCE_PATH

例如:

  • spiffe://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent

当代理身份在 IAM 允许政策中使用时,主账号标识符采用以下格式:

principal://TRUST_DOMAIN/resources/SERVICE/RESOURCE_PATH

示例:

  • 代理运行时principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent
  • Gemini Enterpriseprincipal://agents.global.org-123456789012.system.id.goog/resources/discoveryengine/projects/9876543210/locations/global/collections/default_collection/engines/my-test-agent

标识符使用以下内容:

  • TRUST_DOMAIN:您组织的信任网域(例如 agents.global.org-123456789012.system.id.goog)。
  • SERVICE:服务的简称(例如 aiplatformdiscoveryengine)。 Google Cloud
  • RESOURCE_PATH:托管代理的资源的完整路径。

由于代理本身就是主账号,因此您可以直接向此标识符授予权限,以控制代理可以访问哪些资源。

代理凭据

代理凭据提供代理身份的加密证明。系统支持 X.509 证书和 Google Cloud 访问令牌。X.509 证书会自动在代理上预配和管理,以帮助支持更强大的身份验证。

默认情况下,代理身份在直接与 Google Cloud API 通信时使用带有 X.509 证书的双向 TLS (mTLS)。当代理在代理网关之间互动时,它们还会使用 Demonstrating Proof of Possession (DPoP),为端到端安全创建双重绑定的凭据。这种双重绑定意味着代理使用 mTLS 进行对网关的第一方访问进行身份验证,并使用 DPoP 进行网关之外的互动。

代理身份验证管理器

代理身份验证管理器是一个集中式凭据保险库和身份验证代理,可简化代理的出站工具身份验证。它允许代理使用 API 密钥或 OAuth 客户端 ID 和密钥进行身份验证,或者通过使用最终用户访问令牌的 OAuth 委托代表用户进行身份验证。在身份验证管理器中,您可以配置身份验证提供方,以定义特定第三方应用的身份验证类型和凭据。

对代理身份验证管理器的访问受 IAM 的控制,代理使用自己的代理 SPIFFE ID 向身份验证管理器进行身份验证。所有最终用户访问事件也归因于代理的 SPIFFE ID,从而实现轻松治理。

代理身份验证管理器会自动获取 OAuth 凭据,例如打开对话框以供用户登录和同意。它还提供最终用户访问权限的可视性,并允许撤消访问权限,从而更好地治理用户委托的权限。

如需了解详情,请参阅 代理身份验证管理器 概览

安全和治理

代理身份与 Google 的政策系统(如 IAM、主账号访问权限边界 (PAB) 和 VPC Service Controls)完全集成,从而实现增强的安全性和治理。它还与审核日志记录集成,以确保问责制,并在代理代表自己和代表最终用户执行操作时提供清晰的审核日志。

  • 情境感知访问权限: 默认情况下,Google 管理的情境感知访问权限 政策通过强制执行 mTLS 和 DPoP 令牌 绑定来帮助保护代理凭据。此方法可确保证书绑定的令牌无法在其受信任的运行时环境之外重放。
  • IAM 集成: 支持标准 IAM 允许政策和拒绝政策。
  • 主账号访问权限边界 (PAB): PAB 会限制代理可以访问的资源,无论其他权限如何。
  • VPC Service Controls: 支持在入站和出站规则中使用代理身份(预览版),以允许访问受服务边界保护的资源。

代理身份的工作原理

代理身份通过旨在帮助增强安全性的工作流对代理操作进行身份验证和授权:

  1. 身份分配:当您部署代理时, Google Cloud 会为其分配唯一的 SPIFFE 身份和 X.509 证书。每个 X.509 证书的有效期为 24 小时,并且 Google Cloud 会自动保持最新状态以确保安全。
  2. 凭据获取:代理获取 凭据的方法取决于它们尝试访问的内容。以下是一些示例:
    • 访问 Google Cloud 服务:代理请求 绑定访问令牌。此令牌以加密方式绑定到 代理的唯一 X.509 证书,以帮助防止令牌被盗。如需了解详情,请参阅 安全和治理
    • 访问外部工具:代理使用 代理身份验证管理器从身份验证提供方检索所需的 凭据(例如 API 密钥或 OAuth 令牌)。身份验证管理器同时支持 用户委托的职权代理自己的职权

代理身份的优势

与标准服务账号相比,代理身份可提高安全性。

  • 强隔离:与服务账号不同,代理身份默认情况下不与多个工作负载共享,无法被模拟,也不允许开发者生成长期有效的服务帐号密钥。
  • 凭据安全: 默认的情境感知访问权限政策使绑定的令牌 无法重放,有助于防范令牌被盗和账号盗用。 当代理身份与代理网关和 Gemini Enterprise 搭配使用时,最终用户凭据(例如 Gemini Enterprise 连接器提供的凭据)由身份验证管理器加密,并在网关处解密,确保代理永远无法访问原始凭据。
  • 最小权限方法: 提供每个代理的身份,而不是共享服务账号,以消除权限过高的代理。
  • 减少摩擦: 自动执行复杂的 OAuth 流程并管理 API 密钥,以简化工具集成。
  • 提高可观测性: 提供清晰的审核日志。当代理代表用户执行操作时,日志会显示代理和用户的身份。

限制

  • Cloud Storage 旧版存储桶角色:您无法向代理身份授予旧版存储桶角色(例如 storage.legacyBucketReader)。

后续步骤