Amazon Bedrock 付款 AgentCore 的安全性
以下最佳实践可以帮助您在使用 Amazon Bedrock AgentCore 付款时防止安全事件。预防性控制措施可在不安全的行为发生之前将其阻止。Detective 控制表面意外活动,因此你可以对其做出反应。
预防性控制机制
使用这些控件来限制您的代理可以做什么,并将敏感材料拒之门外。
使用四角色 IAM 模式强制执行最低权限
AgentCore payments 使用不同的 IAM 角色将控制平面与数据平面分开。根据与每个角色匹配的角色设置 IAM 权限。在这种模式下,任何一个角色都不能既提高预算又可以用它来支出。
| # | 角色 | 用途 |
|---|---|---|
|
1 |
|
管理服务。 |
|
2 |
|
配置会话。此角色已被明确拒绝 |
|
3 |
|
执行付款。 |
|
4 |
|
Service-assumed。 获取会话和凭证状态。 |
有关更多信息,请参阅用于 AgentCore 付款的 IAM 角色。
在 “ AgentCore 身份” 中存储凭证
切勿在代理代码或环境变量中嵌入钱包提供商凭证。
-
将 Coinbase CDP 或 Stripe(Privy)凭据存储在 Ident
PaymentCredentialProviderity 中。 AgentCore -
该服务使用
ResourceRetrievalRole在运行时检索它们。 -
按照钱包提供商的推荐时间表轮换凭证。如果凭证遭到泄露,请立即将其撤销。
有关更多信息,请参阅 AgentCore 身份。
正确设置 UserId 标题
在 IAM-configured 入站授权付款管理器上,您的后端会声明X-Amzn-Bedrock-AgentCore-Payments-User-Id标题,而 AgentCore 付款不会对其进行验证。您有责任正确设置此值。
AgentCore payments 会验证 IAM 调用方和 JWT(使用 OAuth 时),但是 API 调用UserId标头的正确性由您负责。不要让最终用户或代理直接影响此标头。
安全的多租户部署
对于为多个最终用户提供服务的多租户部署,请在付款管理器中使用 CUSTOM_JWT (OAuth) 授权类型。这为服务提供了经过验证的最终用户身份。使用 IAM-configured 支付管理器, AgentCore 付款不会验证最终用户身份。
要求最终用户明确同意和授权
资金和授权是两个独立的最终用户决定,两者都是由代理商在带外做出的:
-
资金 — 最终用户通过钱包提供商门户网站存入资金。代理没有 API 访问资金的权限,也绝不能提示或自动启动资金。
-
委托 — 最终用户通过 Coinbase 支出权限或 Privy 委托操作授予权限。不要假设委托是永久性的,因为用户可以随时撤消委托。优雅地处理已撤销的委托。
将代理与支付工具隔离开来
代理不得访问卡号、CVV 值、银行详细信息或钱包私钥。代理人的观点停留在 “允许从用户拥有的钱包中消费”。
-
钱包密钥由提供商自行保管,而不是由开发者保管。 AWS
-
切勿通过提示、工具输入或上下文窗口传递支付工具的详细信息。
在 Policy 中限制工具访问权限 AgentCore
要获得工具级授权,请通过 Amazon Bedrock AgentCore Gateway 公开付费终端节点。通过 Gateway 的每个呼叫都会被 Policy 拦截,Policy 是一个评估请求的 Cedar-based 引擎,包括代理的身份、工具名称和参数,并决定是否允许请求。 AgentCore
保单和付款会议涵盖不同的决定:
-
策略控制谁使用什么参数调用哪个工具。
-
付款会话控制可以花多少钱和持续多长时间。
它们共同为您提供正交杠杆,用于存放工具和支出金额。
-
编写以代理身份、用户组和请求参数为范围的 Cedar 策略。
-
拒绝不需要高成本工具的代理访问这些工具。
-
随着工具目录的变化,定期审查和审计政策。
有关更多信息,请参阅中的政策 AgentCore。
使用有预算限制和 TTL 的付款会话
每笔付款都是在有最大消费金额和到期时间的付款时段内进行的。基础设施层强制执行这些限制,因此即时注入和模型不确定性无法覆盖这些限制。
-
设置
maxSpendAmount为任务所需的最低值,并设置一个短 TTL。 -
从保守的预算开始,只有在代理被证明是可靠的情况下才提高预算。
-
签约失败会自动撤销预算扣除额。
有关更多信息,请参阅创建付款会话。
验证和限制 PayTo 地址
该payTo地址指定了收款人的钱包。 AgentCore payments 不强制服务器端payTo限制,因此您的应用程序必须在调用 ProcessPayment API 之前验证地址。
-
维护预先验证的卖家地址的许可名单,并拒绝未知地址。
-
切勿让模型生成 PayTo 地址。它们必须来自可信来源,例如 x402 付款申请或经过验证的注册表。
-
处理 x402 回复时,对照预期的卖家进行验证。
-
最好使用 AgentCore 网关来发现端点,因为它通过 x402 Bazaar 提供经过验证
payTo的地址。 -
应用 Cedar 政策来限制代理可以支付哪些地址。
-
不要跨会话缓存地址。请务必使用当前卖家提供的地址,并根据您的许可名单进行验证。
安全的网络接入
-
使用 VPC 终端节点防止流量进入公共互联网。
-
应用终端节点策略和 IAM 条件 (
aws:sourceVpc,aws:sourceVpce) 来限制来源。 -
AWS CloudTrail 为所有 AgentCore 付款 API 调用启用。
为付款失败和回滚而设计
-
实现等性以防止重试时重复付款。
-
使用明确的回退行为来处理付款失败。不要无限期地重试。
-
监控部分故障并实施补偿交易。
侦测性控制
使用这些控件来观察支付活动和表面异常情况,以便您可以对其做出响应。
启用可观察性和审计日志
AgentCore payments 通过 Amazon CloudWatch 提供自动可观察性:
-
Vended logs — 记录每个数据平面呼叫(谁、什么、多少、给谁)。
-
销售跨度 — 中提供了完整的付款生命周期跟踪。 AWS X-Ray
-
为异常支出模式设置警报,例如向未列出的地址付款、异常多的不同收款人或已知商家的地址突然更改。
-
根据您的合规要求保留日志。
-
不要依赖代理代码来记录自己的操作。
有关更多信息,请参阅 Amazon CloudWatch 的可观察性。
定期检查配置
-
审计预算并降低支出不足的代理的限额。
-
每季度审查 Cedar 政策和 IAM 角色。
-
监控钱包提供商仪表板,了解意外的委托或资金活动。