新上线今天0 投票
使用私钥JWT通过Amazon Bedrock AgentCore Identity进行身份验证
Amazon Bedrock AgentCore Identity 现已支持 Private Key JWT 客户端身份验证,让您的智能体能够以更安全的方式对接下游身份提供商(IdP)的令牌端点。相比于传统的共享 OAuth 2.0 客户端密钥,Private Key JWT 使用签名的 JSON Web Token(JWT)作为客户端断言,私钥存储在 AWS KMS 中,公钥注册到 IdP,从而避免密钥泄露风险。
工作原理
当智能体需要访问受 IdP 保护的 API 时,流程如下:
- 智能体调用
GetResourceOauth2Token请求令牌。 - AgentCore Identity 从凭据提供者中读取客户端 ID、KMS 密钥 ARN 和签名算法,构造一个短期有效的 JWT 断言。
- 调用
kms:Sign使用 KMS 非对称签名密钥对断言签名(支持 RS256、PS256 或 ES256),私钥始终不离开 KMS。 - 将签名后的断言发送到 IdP 的令牌端点,携带
grant_type=client_credentials和client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer。 - IdP 使用注册的公钥验证签名,返回访问令牌。
- AgentCore Identity 将令牌返回给智能体,用于后续 API 调用。
配置步骤
- 创建 KMS 签名密钥:选择非对称密钥类型(RSA 或 ECC),启用签名功能,指定签名算法。
- 注册公钥到 IdP:从 KMS 获取公钥(可通过 AWS CLI 或控制台),在 IdP 中为客户端应用配置公钥。
- 配置凭据提供者:在 AWS 管理控制台的 Bedrock 设置中,为智能体创建或编辑凭据提供者,指定客户端 ID、KMS 密钥 ARN 和签名算法。
- 审计与监控:所有令牌请求和签名操作都会记录在 AWS CloudTrail 中,便于追踪智能体的访问行为。
适用场景
- 机器到机器(M2M)通信:智能体需要调用下游受保护 API,且不愿使用静态密钥。
- 高安全要求:私钥硬件隔离在 KMS 中,符合合规与安全最佳实践。
- 多 IdP 环境:支持与主流 IdP(如 Auth0、Okta、Azure AD 等)集成。
小结
Private Key JWT 为 Bedrock 智能体提供了一种无密钥、可审计的认证方式,结合 AWS KMS 的硬件安全模块,大幅提升身份验证的安全性。开发者只需在控制台配置凭据提供者,即可将智能体安全接入现有 OAuth 2.0 生态。