View a markdown version of this page

亚马逊 Bedrock 支付 AgentCore 的安全性 - 亚马逊基岩 AgentCore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 Bedrock 支付 AgentCore 的安全性

以下最佳实践可以帮助您在使用 Amazon Bedrock AgentCore 付款时防止安全事件。预防性控制措施在不安全行为发生之前将其阻止。侦探控制可发现意外活动,因此您可以对其做出响应。

预防性控制机制

使用这些控制措施来限制您的代理可以做的事情,并防止敏感材料触手可及。

使用五角色的 IAM 模式强制执行最低权限

AgentCore 付款通过使用不同的 IAM 角色将控制平面与数据平面分开。根据与每个角色匹配的角色设置 IAM 权限。在这种模式下,任何一个职位都无法既筹集预算又用于支出。

# 角色 用途

1

ControlPlaneRole

管理该服务。

2

ManagementRole

配置会话。该角色被明确拒绝ProcessPayment。

3

ProcessPaymentRole

执行付款。

4

ResourceRetrievalRole

Service-assumed。获取会话和凭证状态。

5

AWSMarketplaceManageSubscriptions(开启ControlPlaneRole)

对于Coinbase,订阅该账户的市场清单。管理员的 AWS 托管策略,而不是单独的代入角色。

有关更多信息,请参阅 AgentCore 付款的 IAM 角色。

在 I AgentCore dentity 中存储证书

切勿在代理代码或环境变量中嵌入钱包提供商凭证。

  • 将 Coinbase CDP 或 Stripe(Privy)凭据存储为身份信息。PaymentCredentialProvider AgentCore

  • 该服务使用ResourceRetrievalRole在运行时检索它们。

  • 按照钱包提供商的建议时间表轮换凭证。如果凭据遭到泄露,请立即将其撤销。

有关更多信息,请参阅 AgentCore 身份。

正确设置 UserId 标题

在 IAM-configured 入站授权付款管理器上,您的后端会声明标X-Amzn-Bedrock-AgentCore-Payments-User-Id头,而 AgentCore 付款不会对其进行验证。您有责任正确设置此值。

AgentCore 付款会验证 IAM 调用方和 JWT(使用 OAuth 时),但是 API 调用中UserId标题的正确性是您的责任。不要让最终用户或代理直接影响此标题。

安全的多租户部署

对于为多个最终用户提供服务的多租户部署,请在付款管理器中使用 CUSTOM_JWT (OAuth) 授权类型。这为该服务提供了经过验证的最终用户身份。对于 IAM-configured 付款管理器, AgentCore 付款不会验证最终用户的身份。

资金和授权是两个独立的最终用户决定,均由代理在带外做出:

  • 资金 — 最终用户通过钱包提供商门户存入资金。代理没有获得资金的API权限,也绝不能提示资金或自动启动资金。

  • 委托 — 最终用户通过 Coinbase 支出权限或隐私委托操作授予权限。不要假设委托是永久性的,因为用户可以随时撤消授权。妥善处理已撤销的委托。

将代理与支付工具隔离

代理绝不能访问卡号、CVV 值、银行详细信息或钱包私钥。该代理的观点仅限于 “允许从用户拥有的钱包中进行支出”。

  • 钱包密钥由提供商自行保管,而不是由 AWS 开发者保管。

  • 切勿通过提示、工具输入或上下文窗口传递支付工具的详细信息。

使用政策来确定工具访问范围 AgentCore

要获得工具级授权,请通过亚马逊 Bedrock AgentCore Gateway 公开付费终端节点。通过 Gateway 的每次调用都会被 Policy in 拦截 AgentCore,Policy in 是一个 Cedar-based 引擎,用于评估请求(包括代理的身份、工具名称和参数),并决定是否允许。

保单和付款会议涵盖不同的决策:

  • 策略控制谁使用什么参数调用哪个工具。

  • 付款会话控制可以花多少钱和持续多长时间。

它们共同为你提供了工具访问和支出金额的正交杠杆。

  • 编写受代理身份、用户组和请求参数限制的 Cedar 策略。

  • 拒绝不需要高成本工具的代理访问这些工具。

  • 随着工具目录的变化,定期审查和审核政策。

有关更多信息,请参阅中的政策 AgentCore。

使用具有预算限额和 TTL 的付款会话

每笔付款都在一个付款会话内进行,该会话具有最大支出金额和到期时间。基础架构层强制执行这些限制,因此即时注入和模型不确定性无法覆盖这些限制。

  • 设置maxSpendAmount为任务所需的最低值,并设置短 TTL。

  • 从保守的预算开始,只有在代理商证明可靠时才增加预算。

  • 签约失败会自动撤销预算扣除额。

有关更多信息,请参阅创建付款会话。

验证和限制 PayTo 地址

该payTo地址指定了收款人的钱包。 AgentCore 付款不强制服务器端payTo限制,因此您的应用程序必须在调用 ProcessPayment API 之前验证地址。

  • 保留一份预先验证的卖家地址的许可名单,并拒绝未知地址。

  • 切勿让模型生成 PayTo 地址。它们必须来自可信来源,例如 x402 付款请求或经过验证的注册表。

  • 处理 x402 回复时,对照预期的卖家进行验证。

  • 首选 AgentCore 网关进行端点发现,因为它通过 x402 Bazaar 提供经过验证payTo的地址。

  • 应用 Cedar 政策来限制代理可以支付的地址。

  • 不要跨会话缓存地址。请务必使用当前卖家提供的地址,该地址已根据您的许可名单进行验证。

  • 收件人筛选。会话限制的是代理可以花多少钱,而不是它能向谁付款。使用钱包政策拒绝向特定收款人付款。对于 Stripe(Privy),请遵循Privy网站上的制裁筛查付款指南。Coinbase会根据OFAC制裁清单自动筛选所有交易。

  • 使用支付提供商政策限制钱包操作,例如签名和转账。有关更多信息,请参阅Privy网站上的 Stripe(Privy)政策文档和Coinbase网站上的 Coinbase安全和政策文档。

安全的网络接入

  • 使用 VPC 终端节点来防止流量进入公共互联网。

  • 应用终端节点策略和 IAM 条件 (aws:sourceVpc,aws:sourceVpce) 来限制来源。

  • AWS CloudTrail 为所有 AgentCore 付款 API 调用启用。

为付款失败和回滚而设计

  • 实现熵等性以防止重试时重复付款。

  • 以明确的后备行为处理付款失败。不要无限期重试。

  • 监控部分故障并实施补偿性交易。

侦测性控制

使用这些控件来观察支付活动和表面异常,以便您可以对其进行响应。

启用可观察性和审计日志

AgentCore 付款通过亚马逊 CloudWatch提供自动可观察性:

  • Vended L og — 记录每一次数据平面调用(谁、什么、多少以及给谁)。

  • 销售跨度 — 提供完整的支付生命周期跟踪。 AWS X-Ray

  • 为异常支出模式设置警报,例如向未列出的地址付款、异常多的不同收款人或已知商家的地址突然变更。

  • 根据您的合规性要求保留日志。

  • 不要依赖代理代码来记录自己的操作。

有关更多信息,请参阅亚马逊 CloudWatch的可观察性。

定期查看配置

  • 审计预算,降低支出不足代理的限额。

  • 每季度审查 Cedar 的政策和 IAM 职位。

  • 监控钱包提供商仪表板中是否存在意外的委托或资金活动。