

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

# AgentCore 付款的先决条件
<a name="payments-prerequisites"></a>

在使用 AgentCore 付款之前，请先完成此页面上的先决条件。

**提示**  
您可以使用 Amazon 代理工具包中的 AgentCore 付款技能自动执行此页面上的步骤。该技能是 ** aws-agents ** 插件的一部分，它允许 AI 编码代理使用 `agentcore` CLI 创建您的支付管理器、连接器、凭证提供商、支付工具和会话，并为您的代理添加流程付款工具。有关详细信息，请参阅上的[ GitHub](payments-getting-started.md)[快速入门和](https://github.com/aws/agent-toolkit-for-aws/tree/main)Amazon 代理工具包。

## Amazon 账户和证书
<a name="payments-prereq-account"></a>

您需要一个配置了凭据的 Amazon 账户。要配置凭证，请按照 Amazon CLI [ 入门中的步骤安装和使用 Amazon 命令行界面](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)。

```
# Verify installation
aws --version  # Should show version 2.x
```

## Python 和 Amazon SDK
<a name="payments-prereq-python"></a>

要访问您的 Amazon 证书并将其配置为与 SD Amazon K 一起使用，请按照[使用 IAM 身份中心对软件开发工具包和工具](https://docs.amazonaws.cn/sdkref/latest/guide/access-sso.html)进行身份验证中的步骤进行操作。如果你计划使用 Amazon Python SDK (Boto3) 以编程方式与 AgentCore 支付进行交互：

1. 安装 ** Python 3.10\+ **。

1. 安装 S Amazon DK：`pip install boto3`

1. 验证您的证书是否已配置：`aws sts get-caller-identity`

有关如何设置和使用 Amazon SDK 的更多信息，请参阅[Amazon 生成器工具](https://www.amazonaws.cn/developer/tools/)。

## 支付提供商证书
<a name="payments-prereq-provider-credentials"></a>

AgentCore 支付连接到外部支付提供商进行加密货币钱包业务。在创建之前，必须从至少一个支持的提供商处获取证书 PaymentConnector。

### Coinbase CDP 凭证
<a name="payments-prereq-coinbase"></a>

如果您计划使用Coinbase CDP作为开发者管理的钱包的支付提供商，请从Coinbase开发者平台获取以下证书。[https://docs.cdp.coinbase.com/api-reference/v2/authentication](https://docs.cdp.coinbase.com/api-reference/v2/authentication)上面的 [ Coinbase AgentCore 模板为筹集资金和授予代理权限 GitHub](https://github.com/coinbase/cdp-agentcore-template)提供了参考前端。

**注意**  
获取本节中的证书适用于Coinbase的**手册**流程和Stripe（Privy）。如果你使用Coinbase ** 快速创建**（这是Coinbase的推荐默认设置），你可以跳过获取和生成CoinbaseAPI密钥的过程。使用快速创建，您可以通过Coinbase进行授权，该服务会为您提供凭证提供商。

**注意**  
要使用Coinbase作为支付提供商，您还必须订阅市场中的 ** Amazon Coinbase AgentCore 付款钱包**列表。无论您使用快速创建还是手动流程，Coinbase都需要此订阅。这需要 Amazon 托管策略[AWSMarketplaceManageSubscriptions](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AWSMarketplaceManageSubscriptions.html)。通过此订阅，您的Coinbase钱包使用费将根据Coinbase在Coinbase网站[上的](https://docs.cdp.coinbase.com/wallets/pricing)定价合并到您的月度 Amazon 账单中。订阅没有额外费用或义务。有关更多信息，请参阅[订阅Coinbase钱包以在 Amazon 市场](payments-marketplace-subscription.md)上 AgentCore 付款。

1. 登录到 [ Coinbase开发者平台](https://portal.cdp.coinbase.com/)并创建或登录您的帐户。选择项目。

1.  导航到您[**的 API 密钥**](https://portal.cdp.coinbase.com/projects/api-keys)控制面板，选择**创建机密 API 密钥**，然后记下以下值。回到你的项目。


<table>
<thead>
  <tr><th>凭证</th><th>说明</th></tr>
</thead>
<tbody>
  <tr><td> <code>API Key ID</code> </td><td>您的 CDP 项目的公共标识符</td></tr>
  <tr><td> <code>API Key Secret</code> </td><td>用于签署发给 CDP 控制平面的 API 请求的私钥</td></tr>
</tbody>
</table>
  
![Coinbase CDP API 密钥生成](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/images/payments/coinbase-api-key.png)

1.  在 “**产品” ** > “**钱包**” ** > “**Non-custodial 钱包” > “**安全” ** 下**，选择 “****生成新钱包密钥”，**并记下以下值：


<table>
<thead>
  <tr><th>凭证</th><th>说明</th></tr>
</thead>
<tbody>
  <tr><td> <code>Wallet Secret</code> </td><td>用于加密钱包操作（例如派生地址和签署交易）的专用机密</td></tr>
</tbody>
</table>
  
![Coinbase CDP 钱包秘密生成](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/images/payments/coinbase-wallet-secret.png)

1. 在 “**产品” ** > “**钱包” ** > “**Non-custodial 钱包” ** > “**安全” 下**，启用**委托签名**。

![Coinbase 授权仪表板](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/images/payments/coinbase-delegation.png)


### 隐私凭证
<a name="payments-prereq-privy"></a>

如果您计划使用Privy处理用户拥有的嵌入式钱包流量，请从 [ Privy控制面板获取以下证书。](https://docs.privy.io/authentication/overview#api-authentication)[Privy AgentCore SDK 上 GitHub](https://github.com/privy-io/aws-agentcore-sdk)为筹集资金和授予代理权限提供了参考前端。

1. 在 [ dash ](https://dashboard.privy.io/) board.p ** rivy.io 上创建**专用 Privy 应用程序进行 AgentCore 操作。不要重复使用用于其他目的的 Privy 应用程序。

1. **从您的**应用程序设置中复制**应用程序 ID ** 和应用程序密钥。

1. 在您的 Privy 应用程序中，导航到**钱包基础架构 ** > ** 授权，**然后选择**新密钥**以生成 P-256 密钥对。请注意以下值：


<table>
<thead>
  <tr><th>凭证</th><th>说明</th></tr>
</thead>
<tbody>
  <tr><td> <code>App ID</code> </td><td>您的 Privy 应用程序标识符，作为 API 调用的<code>privy-app-id</code>标头发送</td></tr>
  <tr><td> <code>App Secret</code> </td><td>与应用程序 ID 配对的密钥凭证，用于服务器到服务器的基本身份验证</td></tr>
  <tr><td> <code>Authorization ID</code>（签名者 ID）</td><td>生成的密钥对中的公 P-256 钥标识符</td></tr>
  <tr><td> <code>Authorization Private Key</code> </td><td>生成的密钥对中的私 P-256 钥，用于对钱包操作进行签名。</td></tr>
</tbody>
</table>


![付款的私钥对话框 AgentCore](https://docs.amazonaws.cn/bedrock-agentcore/latest/devguide/images/payments/privy-keys.png)


#### Privy 凭证的安全最佳实践
<a name="_security_best_practices_for_privy_credentials"></a>

 **为以下对象创建专用 Privy 应用程序 AgentCore ** 

创建单独的 Privy 应用程序，专门用于 AgentCore 付款。这缩小了凭证范围并简化了对钱包操作的审计。

 **限制对 AgentCore 服务的秘密访问 ** 

当您将 Privy 存储`App Secret`在 I AgentCore dentity 中时 PaymentCredentialProvider，请确保只有 AgentCore 付款服务角色才能检索密钥。请勿向任何其他 IAM 委托人授予对密 Amazon 钥管理器中底层密钥的访问权限。以下密钥资源策略限制了对 AgentCore 服务角色的访问权限：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "aws:PrincipalArn": "arn:aws:iam::111122223333:role/AgentCorePaymentsResourceRetrievalRole"
                }
            }
        }
    ]
}
```

**警告**  
如果 AgentCore 服务角色以外的委托人可以访问隐私机密，则受损的 IAM 身份可能会检索机密并在预算执行和审计控制之外执行未经授权 AgentCore的钱包操作。

 **定期轮换密钥 ** 

定期轮换您的 Privy 凭证，以减少任何泄露机密的泄露窗口。


| 凭证 | 推荐的旋转频率 | 
| --- | --- | 
|  `App Secret`  | 每 90 天一次 | 
|  `Authorization Private Key`  | 每 90 天一次 | 
|  `App ID`  | 不需要轮换（公共标识符） | 
|  `Authorization ID`  | 生成新的密钥对时会自动旋转 | 

要轮换证书，请：

1. 在 Privy 控制面板中生成新的密钥对或应用程序密钥。

1. 使用新值 PaymentCredentialProvider 更新 AgentCore In Identity。

1. 使用新凭证验证付款操作是否成功。

1. 在 Privy 控制面板中撤销旧证书。

**注意**  
规划一个短暂的重叠期，使新旧证书均处于活动状态。这样可以防止轮换期间出现停机。

从提供商处获取凭证后，将其存储在 AgentCore Identity 中 PaymentCredentialProvider。有关说明，请参阅[配置付款凭证提供商](resource-providers.md)。有关完整的请求和响应架构，请参阅 API 参考[CreatePaymentCredentialProvider](https://docs.amazonaws.cn/bedrock-agentcore-control/latest/APIReference/API_CreatePaymentCredentialProvider.html)中的。

## （可选）JWT 授权的身份提供商
<a name="payments-prereq-jwt"></a>

如果您计划使用 JWT 授权对您的支付管理器进行入站访问（使消费者能够使用非 IAM 身份访问支付管理器），请在创建支付管理器之前设置 Amazon Cognito 或您自己的身份提供商：

1.  **创建 Cognito 用户池**（或使用您现有的身份提供商）。

1.  **注册应用程序客户端**并记下客户端 ID。

1.  **使用用户名和密码创建测试用户**。

或者，您可以在创建支付管理器**时选择使用 Cognito ** 快速创建配置， AgentCore 付款代表您创建授权配置。

有关详细说明，请参阅[配置入站 JWT 授权](inbound-jwt-authorizer.md)器。