Agent Identity 基于 SPIFFE 标准,为每个智能体提供经过强认证的加密身份。借助 Agent Identity,您的智能体可以安全地向 MCP 服务器、云资源、端点和其他智能体进行身份验证,既可以代表自己,也可以代表最终用户。Agent Identity 使用 智能体自己的凭据 和 Agent Identity Auth Manager。您可以使用 Auth Manager 创建和管理 身份验证提供方,这些提供方是用于获取、管理和保护 API 密钥、OAuth 客户端 ID、OAuth 客户端密钥和委托的最终用户 OAuth 令牌的特定配置。
与服务账号不同,智能体身份默认情况下不会由多个工作负载共享,无法被模拟,也不允许开发者生成长期有效的服务帐号密钥。为 Google Cloud 生成的访问令牌以加密方式绑定到智能体的唯一 X.509 证书,以防止 令牌被盗。
当 Agent Identity 与 Agent Gateway 和 Gemini Enterprise 搭配使用时,最终用户凭据(例如由 Gemini Enterprise 连接器预配的凭据)由 Auth Manager 加密,并在网关处解密,确保智能体永远无法访问原始凭据。
以下服务支持 Agent Identity:
身份验证模型
为了使用各种工具和服务进行身份验证,Agent Identity 支持多种身份验证模型。智能体使用的模型取决于目标资源提供的身份验证方法,以及智能体是代表自己还是代表最终用户执行操作。
| 职权 | 身份验证方法 | 目标资源 | 应用场景和解决方案 |
|---|---|---|---|
| 用户委托的职权 | OAuth 2.0(三方模式)(预览版) | 外部工具和服务 | 当智能体代表特定用户执行操作时(例如, 访问用户的 Jira 任务或 GitHub 代码库)。您可以在 Agent Identity Auth Manager 中配置三方模式 OAuth 身份验证提供方,以管理用户同意和令牌。如需了解详情,请参阅 使用 Auth Manager 通过三方模式 OAuth 进行身份验证。 |
| 智能体自己的职权 | 基于云的身份(Agent Identity) | Google Cloud 服务 | 当托管在 Google Cloud 上的智能体需要使用自己的身份访问其他 Google Cloud 服务时。如需了解详情,请参阅使用智能体自己的身份进行身份验证。 |
| OAuth 2.0(两方模式)(预览版) | 外部工具和服务 | 建议用于与支持 OAuth 的外部 服务进行机器对机器身份验证。您可以在 Agent Identity Auth Manager 中配置两方模式 OAuth 身份验证提供方,以处理 客户端凭据和访问令牌。如需了解详情,请参阅 使用 Auth Manager 通过两方模式 OAuth 进行身份验证。 | |
| API 密钥(预览版) | 外部工具和服务 | 对于需要使用加密密钥或密码进行 身份验证的外部服务。您可以在 Agent Identity Auth Manager 中配置 API 密钥身份验证提供方,以帮助安全地存储和管理 密钥。如需了解详情,请参阅 使用 Auth Manager 通过 API 密钥进行身份验证。 | |
| HTTP 基本身份验证 | 外部工具和服务 | 使用纯文本密码。不建议 使用此方法。您可以存储与 API 密钥类似的密码。如需了解详情, 请参阅使用 Auth Manager 通过 API 密钥进行身份验证。 |
核心组件
Agent Identity 涉及多个关键组件,这些组件共同帮助提供安全的身份验证和授权。
基于 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
示例:
- Vertex AI Agent Engine:
principal://agents.global.org-123456789012.system.id.goog/resources/aiplatform/projects/9876543210/locations/us-central1/reasoningEngines/my-test-agent - Gemini Enterprise:
principal://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:服务的简称(例如aiplatform或discoveryengine)。 Google CloudRESOURCE_PATH:托管智能体的资源的完整路径。
由于智能体本身就是主账号,因此您可以直接向此标识符授予权限,以控制智能体可以访问哪些资源。
智能体凭据
智能体凭据提供智能体身份的加密证明。系统支持 X.509 证书和 Google Cloud 访问令牌。X.509 证书会在智能体上自动预配和管理,以帮助支持更强的身份验证。
Agent Identity Auth Manager
Agent Identity Auth Manager 是一个集中式凭据保险库和身份验证代理,可简化智能体的出站工具身份验证。它允许智能体使用 API 密钥或 OAuth 客户端 ID 和密钥进行身份验证,或者通过使用最终用户访问令牌的 OAuth 委托代表用户进行身份验证。在 Auth Manager 中,您可以配置身份验证提供方,以定义特定第三方应用的身份验证类型和凭据。
对 Agent Identity Auth Manager 的访问受 IAM 的控制,智能体使用自己的智能体 SPIFFE ID 向 Auth Manager 进行身份验证。所有最终用户访问事件也归因于智能体的 SPIFFE ID,从而实现轻松治理。
Agent Identity Auth Manager 会自动执行 OAuth 凭据获取,例如打开对话框以供用户登录和同意。它还提供最终用户访问权限的可见性,并允许撤消访问权限,从而更好地治理用户委托的权限。
如需了解详情,请参阅 Agent Identity Auth Manager 概览。
安全和治理
Agent Identity 与 Google 的政策系统(例如 IAM、Principal Access Boundary (PAB) 和 VPC Service Controls)完全集成,从而实现增强的安全性和治理。它还与审核日志记录集成,以确保问责制,并在智能体代表自己和代表最终用户执行操作时提供清晰的审核日志。
- 情境感知访问权限: 默认情况下,Google 管理的情境感知访问权限政策有助于保护 Agent Identity 凭据。除了 Agent Gateway 之外,该政策还通过验证智能体的访问令牌来强制执行可证明的持有证明 (DPoP)。该政策还强制执行使用 mTLS 访问 Agent Gateway。这可确保绑定到证书的令牌只能从其预期的可信运行时环境中使用。
- IAM 集成: 支持标准 IAM 允许政策和拒绝政策。
- Principal Access Boundary (PAB): PAB 会限制智能体可以访问的资源,无论其他权限如何。
- VPC Service Controls: 支持在入站和出站规则中使用智能体身份(预览版),以允许访问受服务边界保护的资源。
Agent Identity 的工作原理
Agent Identity 通过旨在帮助增强安全性的工作流来验证智能体操作的身份并授权:
- 身份分配:当您部署智能体时, Google Cloud 会为其分配一个唯一的 SPIFFE 身份和一个 X.509 证书。每个 X.509 证书的有效期为 24 小时,并且 Google Cloud 会自动保持最新状态以确保安全性。
- 凭据获取:智能体获取
凭据的方法取决于它们尝试访问的内容。以下是一些示例:
- 访问 Google Cloud 服务:智能体请求 绑定访问令牌。此令牌以加密方式绑定到 智能体的唯一 X.509 证书,以帮助防止令牌被盗。如需了解详情,请参阅 安全和治理。
- 访问外部工具:智能体使用 Agent Identity Auth Manager 从身份验证提供方检索所需的 凭据(例如 API 密钥或 OAuth 令牌)。Auth Manager 同时支持 用户委托的职权 和 智能体自己的职权 。
Agent Identity 的优势
与标准服务账号相比,Agent Identity 可提高安全性。
- 强隔离:与服务账号不同,智能体身份默认情况下不会由多个工作负载共享,无法被模拟,也不允许开发者生成长期有效的服务帐号密钥。
- 凭据安全性: 默认的情境感知访问权限政策使绑定令牌 无法重放,有助于防止令牌被盗和账号盗用。 当 Agent Identity 与 Agent Gateway 和 Gemini Enterprise 搭配使用时,最终用户凭据(例如由 Gemini Enterprise 连接器预配的凭据)由 Auth Manager 加密,并在网关处解密,确保智能体永远无法访问原始凭据。
- 最小权限方法: 提供每个智能体的身份,而不是共享服务账号,以消除权限过高的智能体。
- 减少摩擦: 自动执行复杂的 OAuth 流程并管理 API 密钥,以简化工具集成。
- 提高可观测性: 提供清晰的审核日志。当智能体代表用户执行操作时,日志会显示智能体和用户的身份。
限制
- Cloud Storage 旧版存储桶角色:您无法向智能体身份授予旧版存储桶角色(例如
storage.legacyBucketReader)。
后续步骤
- 使用 Agent Identity 创建智能体
- 使用智能体自己的职权进行身份验证
- 使用 Auth Manager 通过三方模式 OAuth 进行身份验证
- 使用 Auth Manager 通过两方模式 OAuth 进行身份验证
- 使用 Auth Manager 通过 API 密钥进行身份验证
- 管理 Agent Identity 身份验证提供方
- 排查 Agent Identity Auth Manager 问题
- SPIFFE 概念