建立付款管理員和連接器
Payment Manager 是協調您 AWS 帳戶付款操作的最上層資源。當您建立 Payment Manager 時,您可以指定授權方類型和 IAM 角色,而且服務會在 AgentCore Identity 中佈建對應的工作負載身分。
本指南會逐步引導您建立 Payment Manager,並使用 AWS 管理主控台或 AWS SDK 連接 Payment Connector。如需完整的請求和回應結構描述,請參閱 API 參考中的 CreatePaymentManager 和 CreatePaymentConnector。
提示
您可以使用 AWS 客服人員工具組中的 AgentCore Payments 技能來自動化此頁面上的步驟。技能是 aws-agents 外掛程式的一部分,可讓 AI 編碼代理程式使用 CLI agentcore 建立您的 Payment Manager、連接器、登入資料提供者、付款工具及工作階段,並將 x402 付款工具新增至您的代理程式。如需詳細資訊,請參閱 GitHub 上的快速入門和客服人員工具組。 AWS GitHub
開始前,請確保您具備以下條件:
建立付款管理員
範例
- Console
-
步驟 1:開啟付款頁面
-
在導覽窗格的建置下,選擇付款。
-
在付款管理員區段中,選擇建立付款管理員。
步驟 2:設定 Payment Manager 詳細資訊
-
在名稱中,輸入 Payment Manager 的名稱。名稱必須以字母開頭。有效字元為
a–z、A–Z、0–9。名稱最多可有 48 個字元。 -
(選用) 選擇描述以展開區段,然後輸入描述以協助識別此 Payment Manager。
步驟 3:設定許可
許可區段會指定此付款管理員的許可,以及付款可存取 AWS 的資源。
針對 IAM 許可,選擇下列其中一個選項:
-
建立和使用新的服務角色 — Amazon Bedrock AgentCore 付款會代表您建立新的服務角色。預設服務角色名稱會自動產生。如需詳細資訊,請參閱服務角色許可。
-
使用現有的服務角色 — 使用您已建立的服務角色。如果您選擇此選項,請從下拉式清單中選取角色。
步驟 4:設定傳入授權
傳入授權控制誰可以存取此 Payment Manager。在傳入身分驗證區段中,針對傳入身分驗證類型,選擇下列其中一個選項:
若要使用 IAM 授權:
-
選擇使用 IAM 使用者名稱。這會使用您用來登入 AWS 主控台的 IAM 使用者名稱。
若要搭配 Amazon Cognito 使用 JWT 授權:
-
選擇使用 JSON Web 權杖 (JWT)。
-
對於 JWT 結構描述組態,選擇使用 Cognito 快速建立組態 - 建議。Amazon Bedrock AgentCore 付款會使用 Amazon Cognito 做為身分提供者,代表您建立傳入授權組態。不需任何其他設定。
若要搭配現有的身分提供者使用 JWT 授權:
-
選擇使用 JSON Web 權杖 (JWT)。
-
針對 JWT 結構描述組態,選擇使用現有的身分提供者組態。此選項可讓您從任何身分提供者引入現有的傳入授權組態,以啟用 OAuth 2.0。
-
針對探索 URL,輸入身分提供者 (例如 Okta 或 Cognito) 的探索 URL,通常可在該提供者的文件中找到。這可讓您的代理程式或工具擷取登入、下游資源字符和驗證設定。例如
https://accounts.cognito.com/.well-known/openid-configuration。 -
對於允許對象,輸入向身分提供者註冊IDs,或在 JWT 對象宣告授權方必須驗證的任何任意字串。選擇 + 新增對象以新增其他對象。
-
對於允許的用戶端,在 JWT 對象宣告授權方必須驗證中,輸入向身分提供者註冊的用戶端 IDs 或任何任意字串。選擇 + 新增用戶端以新增其他用戶端。
-
針對允許的範圍,輸入所需的範圍。只有在字符至少包含此處設定的其中一個必要範圍時,才允許存取。選擇 + 新增範圍以新增其他範圍。
-
(選用) 對於自訂宣告,定義符合傳入權杖中特定宣告與預先定義值的規則。針對每個規則,指定宣告名稱、字串類型、運算子和值。選擇 + 新增宣告以新增其他宣告。
步驟 5:新增付款連接器 (選用)
付款連接器會存放與付款服務供應商連線所需的登入資料和組態。在建立期間新增連接器是選用的,但服務需要連接器才能處理付款。
-
在付款連接器:新連接器區段中,針對名稱輸入連接器的名稱。有效字元為
a–z、0–9、A–Z和_(底線)。名稱最多可有 48 個字元。 -
(選用) 選擇描述以展開區段,然後輸入連接器的描述。
-
在新增傳出身分驗證區段中,如果您想要重複使用先前在 AgentCore Identity 中建立的付款憑證提供者,請從下拉式清單中選取現有的傳出身分驗證;或選擇建立新的身分驗證,以建立新的付款憑證提供者。如果您選擇建立新的傳出身分驗證,請參閱建立新的傳出身分驗證。
-
(選用) 若要新增其他連接器,請選擇 + 新增連接器並重複上述步驟。
建立新的傳出身分驗證
當您選擇在連接器的傳出身分驗證區段中建立新的身分驗證時,面板會開啟,您可以在其中設定新的付款憑證提供者。
-
在名稱中,輸入傳出身分驗證的名稱。有效字元為
a–z、A–Z、0–9、_(底線) 和-(連字號)。 -
對於提供者,從下拉式清單中選取付款提供者。可用的供應商是 Coinbase 和 Stripe (Privy)。
如果您選擇 Coinbase,請完成付款提供者組態下的下列欄位:
-
針對 API 金鑰 ID,輸入 Coinbase CDP 帳戶登入資料的唯一識別符。
-
針對 API 金鑰秘密,輸入用於向 Coinbase CDP 驗證和簽署請求的私有金鑰。
-
對於錢包秘密,輸入用於驗證敏感錢包寫入操作的非對稱私有金鑰。
如果您選擇條紋 (私有),請完成付款供應商組態下的下列欄位:
-
在應用程式 ID 中,輸入 Privy 帳戶登入資料的唯一識別符。
-
對於應用程式秘密,輸入用於驗證和簽署 Privy 應用程式請求的私有金鑰。
-
針對授權 ID,輸入授權實體的唯一識別符。
-
針對授權私有金鑰,輸入用來簽署授權請求的私有金鑰。
完成提供者組態後,選擇新增傳出身分驗證。
步驟 6:建立付款管理員
-
檢閱您的組態,然後選擇建立付款管理員。
選擇建立付款管理員後,主控台會導覽至付款管理員詳細資訊頁面。成功橫幅會確認已建立 Payment Manager,並提供下列後續步驟:
-
設定付款工具與工作階段,選擇性地指定預算。
-
將 Payment Manager 整合到您的代理程式架構中。
-
探索付費 MCP 工具和端點。
-
啟用日誌交付和追蹤,以在可觀測性儀表板中檢視指標。
Payment Manager 詳細資訊頁面包含付款連接器、整合程式碼範本、傳入驗證、可觀測性指標,以及日誌傳遞和追蹤組態的區段。
- AgentCore CLI
-
AgentCore CLI 會從您的專案目錄中同時建立登入資料提供者、Payment Manager 和 Payment Connector。需要 CLI v0.19.0 或更新版本。
互動式精靈:
agentcore add payment-manager精靈會提示管理員名稱、模式、自動付款切換、花費限制,以及選擇性演練新增連接器與供應商登入資料。
非互動式 (Coinbase CDP):
agentcore add payment-manager \ --name MyPaymentManager \ --auto-payment \ --default-spend-limit 10.00 agentcore add payment-connector \ --manager MyPaymentManager \ --name CoinbaseConnector \ --provider CoinbaseCDP \ --api-key-id <YOUR_API_KEY_ID> \ --api-key-secret <YOUR_API_KEY_SECRET> \ --wallet-secret <YOUR_WALLET_SECRET> agentcore deploy非互動式 (條紋/隱私):
agentcore add payment-manager \ --name MyPaymentManager \ --auto-payment \ --default-spend-limit 10.00 agentcore add payment-connector \ --manager MyPaymentManager \ --name StripePrivyConnector \ --provider StripePrivy \ --app-id <YOUR_APP_ID> \ --app-secret <YOUR_APP_SECRET> \ --authorization-id <YOUR_AUTHORIZATION_ID> \ --authorization-private-key <YOUR_PRIVATE_KEY_BASE64> agentcore deploy執行 會
agentcore deploy佈建 IAM 角色、將登入資料存放在 AgentCore Identity 中,並建立 Payment Manager 和 Connector。 - AgentCore SDK
-
AgentCore SDK 提供便利方法
create_payment_manager_with_connector,可在單一呼叫中建立 Payment Manager、登入資料提供者和連接器。Coinbase CDP 搭配 IAM 授權:
from bedrock_agentcore.payments import PaymentClient payment_client = PaymentClient(region_name="us-east-1") response = payment_client.create_payment_manager_with_connector( payment_manager_name="MyPaymentManager", payment_manager_description="Payment manager for my agent.", authorizer_type="AWS_IAM", role_arn="arn:aws:iam::123456789012:role/MyPaymentRole", payment_connector_config={ "name": "CoinbaseConnector", "description": "Coinbase CDP connector", "payment_credential_provider_config": { "name": "MyCoinbaseProvider", "credential_provider_vendor": "CoinbaseCDP", "credentials": { "api_key_id": "your-api-key-id", "api_key_secret": "your-api-key-secret", "wallet_secret": "your-wallet-secret", }, }, }, wait_for_ready=True, max_wait=300, poll_interval=5, ) payment_manager = response.get("paymentManager", {}) payment_connector = response.get("paymentConnector", {}) credential_provider = response.get("credentialProvider", {}) payment_manager_arn = payment_manager.get("paymentManagerArn") payment_connector_id = payment_connector.get("paymentConnectorId") print(f"Payment Manager ARN: {payment_manager_arn}") print(f"Connector ID: {payment_connector_id}")Coinbase CDP 搭配 JWT 授權:
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-east-1") response = payment_client.create_payment_manager_with_connector( payment_manager_name="CoinbasePaymentManagerJWT", payment_manager_description="Coinbase Payment Manager (JWT auth)", authorizer_type="CUSTOM_JWT", role_arn="arn:aws:iam::123456789012:role/BedrockAgentCoreFullAccess", payment_connector_config={ "name": "coinbase-connector-jwt", "description": "Coinbase Connector (JWT)", "payment_credential_provider_config": { "name": "my-coinbase-provider-jwt", "credential_provider_vendor": "CoinbaseCDP", "credentials": { "api_key_id": "your-api-key-id", "api_key_secret": "your-api-key-secret", "wallet_secret": "your-wallet-secret", }, }, }, wait_for_ready=True, ) manager_arn = response["paymentManager"]["paymentManagerArn"] connector_id = response["paymentConnector"]["paymentConnectorId"] provider_arn = response["credentialProvider"]["credentialProviderArn"]具有 IAM 授權的 Stripe (Privy):
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-east-1") response = payment_client.create_payment_manager_with_connector( payment_manager_name="StripePaymentManager", payment_manager_description="Stripe + Privy Payment Manager (IAM auth)", authorizer_type="AWS_IAM", role_arn="arn:aws:iam::123456789012:role/BedrockAgentCoreFullAccess", payment_connector_config={ "name": "stripe-privy-connector", "description": "Stripe + Privy Connector", "payment_credential_provider_config": { "name": "my-stripe-privy-provider", "credential_provider_vendor": "StripePrivy", "credentials": { "app_id": "your-privy-app-id", "app_secret": "your-privy-app-secret", "authorization_private_key": "your-authorization-private-key", "authorization_id": "your-authorization-id", }, }, }, wait_for_ready=True, ) manager_arn = response["paymentManager"]["paymentManagerArn"] connector_id = response["paymentConnector"]["paymentConnectorId"] provider_arn = response["credentialProvider"]["credentialProviderArn"]具有 JWT 授權的條紋 (私有):
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-east-1") response = payment_client.create_payment_manager_with_connector( payment_manager_name="StripePaymentManagerJWT", payment_manager_description="Stripe + Privy Payment Manager (JWT auth)", authorizer_type="CUSTOM_JWT", role_arn="arn:aws:iam::123456789012:role/BedrockAgentCoreFullAccess", payment_connector_config={ "name": "stripe-privy-connector-jwt", "description": "Stripe + Privy Connector (JWT)", "payment_credential_provider_config": { "name": "my-stripe-privy-provider-jwt", "credential_provider_vendor": "StripePrivy", "credentials": { "app_id": "your-privy-app-id", "app_secret": "your-privy-app-secret", "authorization_private_key": "your-authorization-private-key", "authorization_id": "your-authorization-id", }, }, }, wait_for_ready=True, ) manager_arn = response["paymentManager"]["paymentManagerArn"] connector_id = response["paymentConnector"]["paymentConnectorId"] provider_arn = response["credentialProvider"]["credentialProviderArn"] - AWS CLI
-
使用 IAM 授權建立 Payment Manager:
aws bedrock-agentcore-control create-payment-manager \ --name "MyPaymentManager" \ --authorizer-type AWS_IAM \ --role-arn "arn:aws:iam::123456789012:role/AgentCorePaymentsResourceRetrievalRole" \ --region us-east-1使用 JWT 授權建立付款管理員:
aws bedrock-agentcore-control create-payment-manager \ --name "MyPaymentManager" \ --authorizer-type CUSTOM_JWT \ --role-arn "arn:aws:iam::123456789012:role/AgentCorePaymentsResourceRetrievalRole" \ --custom-jwt-authorizer-configuration '{ "discoveryUrl": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE/.well-known/openid-configuration", "allowedAudience": ["your-client-id"], "allowedClients": ["your-client-id"] }' \ --region us-east-1Payment Manager 狀態會開始為 ,
CREATING並在佈建完成READY時轉換為 。在 Payment Manager 就緒後,建立付款憑證提供者:
下列範例會建立 Coinbase CDP 的付款憑證提供者:
aws bedrock-agentcore-control create-payment-credential-provider \ --name "coinbase-provider" \ --credential-provider-vendor CoinbaseCDP \ --provider-configuration-input '{ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } }' \ --region us-east-1下列範例會建立 Stripe Privy 的付款憑證提供者:
aws bedrock-agentcore-control create-payment-credential-provider \ --name "stripe-privy-provider" \ --credential-provider-vendor StripePrivy \ --provider-configuration-input '{ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } }' \ --region us-east-1登入資料提供者準備就緒後,請建立連接器:
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id <paymentManagerId> \ --name "CoinbaseConnector" \ --type CoinbaseCDP \ --credential-provider-configurations '[{ "coinbaseCDP": { "credentialProviderArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/default/paymentcredentialprovider/my-cdp-provider" } }]' \ --region us-east-1 - AWS SDK
-
使用 IAM 授權建立 Payment Manager:
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") # Create PaymentManager with IAM authorization payment_manager = client.create_payment_manager( name="MyPaymentManager", authorizerType="AWS_IAM", roleArn="arn:aws:iam::123456789012:role/AgentCorePaymentsResourceRetrievalRole" ) print(f"Payment Manager ID: {payment_manager['paymentManagerId']}")使用 JWT 授權建立付款管理員:
payment_manager = client.create_payment_manager( name="MyPaymentManager", authorizerType="CUSTOM_JWT", roleArn="arn:aws:iam::123456789012:role/AgentCorePaymentsResourceRetrievalRole", customJWTAuthorizerConfiguration={ "discoveryUrl": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_EXAMPLE/.well-known/openid-configuration", "allowedAudience": ["your-client-id"], "allowedClients": ["your-client-id"], "allowedScopes": ["payments:write"], "customClaims": [ { "claimName": "tenant_id", "claimValue": "your-unique-tenant-id", "operation": "EQUALS" } ] } )在 Payment Manager 達到
READY狀態後,建立付款憑證提供者:下列範例會設定 Coinbase CDP 的提供者:
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") coinbase_provider = client.create_payment_credential_provider( name="coinbase-provider", credentialProviderVendor="CoinbaseCDP", providerConfigurationInput={ "coinbaseCdpConfiguration": { "apiKeyId": "your-coinbase-api-key-id", "apiKeySecret": "your-coinbase-api-key-secret", "walletSecret": "your-coinbase-wallet-secret" } } )下列範例會設定 Stripe Privy 的提供者:
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-east-1") stripe_privy_provider = client.create_payment_credential_provider( name="stripe-privy-provider", credentialProviderVendor="StripePrivy", providerConfigurationInput={ "stripePrivyConfiguration": { "appId": "your-stripe-privy-app-id", "appSecret": "your-stripe-privy-app-secret", "authorizationPrivateKey": "your-stripe-privy-authorization-private-key", "authorizationId": "your-stripe-privy-authorization-id" } } )建立付款憑證提供者之後,請建立連接器:
# Create PaymentConnector for Coinbase CDP payment_connector = client.create_payment_connector( paymentManagerId=payment_manager["paymentManagerId"], name="CoinbaseConnector", type="CoinbaseCDP", credentialProviderConfigurations=[ { "coinbaseCDP": { "credentialProviderArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/default/paymentcredentialprovider/my-cdp-provider" } } ] ) print(f"Connector ID: {payment_connector['paymentConnectorId']}")對於 Stripe (Privy),請使用
stripePrivy組態變體:# Create PaymentConnector for Stripe (Privy) payment_connector = client.create_payment_connector( paymentManagerId=payment_manager["paymentManagerId"], name="StripePrivyConnector", type="StripePrivy", credentialProviderConfigurations=[ { "stripePrivy": { "credentialProviderArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:token-vault/default/paymentcredentialprovider/my-privy-provider" } } ] )
生命週期狀態
建立之後,Payment Manager 會轉換下列狀態:
| State | 說明 |
|---|---|
|
|
佈建期間的初始狀態。 |
|
|
Payment Manager 可運作並接受連接器組態。 |
|
|
正在套用組態變更。 |
|
|
佈建失敗。 |
|
|
更新操作失敗。 |
取得付款管理員
範例
- AgentCore CLI
-
agentcore status - AgentCore SDK
-
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-east-1") response = payment_client.get_payment_manager( payment_manager_id="<paymentManagerId>" ) print(f"Status: {response['status']}") - AWS CLI
-
aws bedrock-agentcore-control get-payment-manager \ --payment-manager-id <paymentManagerId> \ --region us-east-1 - AWS SDK
-
response = client.get_payment_manager( paymentManagerId="<paymentManagerId>" ) print(f"Status: {response['status']}")
列出付款管理員
範例
- AgentCore CLI
-
agentcore status - AgentCore SDK
-
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-east-1") response = payment_client.list_payment_managers() for pm in response['paymentManagers']: print(f"{pm['name']} - {pm['status']}") - AWS CLI
-
aws bedrock-agentcore-control list-payment-managers \ --region us-east-1 - AWS SDK
-
response = client.list_payment_managers() for pm in response['paymentManagers']: print(f"{pm['name']} - {pm['status']}")
刪除付款管理員
範例
- AgentCore CLI
-
agentcore remove payment-connector --manager MyPaymentManager --name CoinbaseConnector --yes agentcore remove payment-manager --name MyPaymentManager --yes agentcore deployremove命令會更新本機組態。追蹤deploy會縮減您帳戶中的付款基礎設施。 - AgentCore SDK
-
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-east-1") payment_client.delete_payment_manager( payment_manager_id="<paymentManagerId>" ) - AWS CLI
-
aws bedrock-agentcore-control delete-payment-manager \ --payment-manager-id <paymentManagerId> \ --region us-east-1 - AWS SDK
-
client.delete_payment_manager( paymentManagerId="<paymentManagerId>" )
後續步驟
建立您的 Payment Manager 之後,您可以:
-
設定付款工具與工作階段 — 設定付款工具與工作階段以開始處理交易。請參閱建立付款工具。
-
與您的代理程式架構整合 — 使用整合程式碼範本將 Payment Manager 連接到您的代理程式工作流程。請參閱處理付款。
-
探索付費 MCP 工具和端點 — 使用pay-per-use端點連線至ready-to-use型 MCP 伺服器,或自攜商家端點。請參閱透過 AgentCore Gateway 的 Coinbase Bazaar。
-
啟用可觀測性 — 設定日誌交付和追蹤以監控工作階段、API 調用、交易和錯誤率。請參閱可觀測性。