View a markdown version of this page

AgentCore 支払いの IAM ロール - Amazon Bedrock AgentCore

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AgentCore 支払いの IAM ロール

ロールの概要

AgentCore 支払いでは、管理、管理、エージェント実行、サービスオペレーション、および AWS Marketplace サブスクリプション (Coinbase のみ) を分離する 5 ロールの IAM モデルを使用します。ロールに一致するペルソナに基づいて IAM アクセス許可を設定します。

ロール 目的

管理者 (ControlPlaneRole)

支払いマネージャー、コネクタ、認証情報プロバイダーを管理します。Coinbase の場合、このロールには AWS Marketplace でサブスクライブAWSMarketplaceManageSubscriptionsする AWS マネージドポリシーも必要です。

エージェント開発者 (ManagementRole)

支払い手段とセッションを管理し、支払いを実行できない

支払い実行 (ProcessPaymentRole)

エージェントに代わって支払いトランザクションを実行する

サービスロール (ResourceRetrievalRole)

認証情報を取得するために実行時に AgentCore 支払いによって引き受けられる

Marketplace サブスクリプション (AWSMarketplaceManageSubscriptions 管理者)

Coinbase の場合、 は AWS Marketplace の AgentCore Payments の Coinbase Wallets リストにアカウントをサブスクライブします。これは管理者 ID にアタッチされた AWS マネージドポリシーであり、別の引き受け可能なロールではありません。

ヒント

エージェント AWS ツールキットの AgentCore Payments スキルを使用して、このページのステップを自動化できます。このスキルは aws-agents プラグインの一部であり、AI コーディングエージェントが agentcore CLI を使用して Payment Manager、コネクタ、認証情報プロバイダー、支払い手段、セッションを作成し、エージェントにプロセス支払いツールを追加できるようにします。詳細については、GitHub のクイックスタートとエージェントツールキットを参照してください。 AWS GitHub

ロールの分離が重要な理由

支払い管理と支払い実行を分離することで、侵害された単一の ID が無制限の予算でセッションを作成し、それらのセッションに対して支払いを実行することを防ぐことができます。管理ロールDenyProcessPaymentの の明示的な は、この境界を適用します。これにより、監査証跡によって、支払いリソースを設定したユーザーとトランザクションを実行したユーザーを明確に区別できます。

管理者権限 (ControlPlaneRole)

支払いマネージャー、コネクタ、認証情報プロバイダーを管理する管理者の場合:

注記

Coinbase を支払いプロバイダーとして使用するには、管理者は AWS Marketplace の AgentCore Payments の Coinbase Wallets にアカウントをサブスクライブする必要があります。これには、 AWS 管理ポリシー AWSMarketplaceManageSubscriptions が必要です。このサブスクリプションでは、Coinbase ウェブサイトの Coinbase の料金に基づいて、Coinbase ウォレット使用料が毎月の AWS 請求書に統合されます。サブスクリプションには追加料金や義務はありません。詳細については、「Subscribe to Coinbase Wallets for AgentCore Payments in AWS Marketplace」を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPaymentManagerOperations", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreatePaymentManager", "bedrock-agentcore:GetPaymentManager", "bedrock-agentcore:ListPaymentManagers", "bedrock-agentcore:DeletePaymentManager", "bedrock-agentcore:UpdatePaymentManager" ], "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*" ] }, { "Sid": "AllowPaymentConnectorOperations", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreatePaymentConnector", "bedrock-agentcore:GetPaymentConnector", "bedrock-agentcore:ListPaymentConnectors", "bedrock-agentcore:DeletePaymentConnector", "bedrock-agentcore:UpdatePaymentConnector" ], "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*/connector/*" ] }, { "Sid": "AllowCredentialProviderOperations", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreatePaymentCredentialProvider", "bedrock-agentcore:GetPaymentCredentialProvider", "bedrock-agentcore:ListPaymentCredentialProviders", "bedrock-agentcore:DeletePaymentCredentialProvider", "bedrock-agentcore:UpdatePaymentCredentialProvider" ], "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:token-vault/*/paymentcredentialprovider/*" ] }, { "Sid": "AllowVendedLogDelivery", "Effect": "Allow", "Action": [ "bedrock-agentcore:AllowVendedLogDeliveryForResource" ], "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*" ] }, { "Sid": "AllowPassResourceRetrievalRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::111122223333:role/AgentCorePaymentsResourceRetrievalRole", "Condition": { "StringEquals": { "iam:PassedToService": "bedrock-agentcore.amazonaws.com" } } } ] }

AWS Marketplace で AgentCore Payments の Coinbase Wallets リストをサブスクライブするには、管理者 ID にも AWSMarketplaceManageSubscriptions AWS 管理ポリシーが必要です。管理者の IAM ロール (またはユーザー) にアタッチします。たとえば、 CLI AWS の場合:

aws iam attach-role-policy \ --role-name <administrator-role-name> \ --policy-arn <AWSMarketplaceManageSubscriptions-policy-arn>

エージェント開発者のアクセス許可 (ManagementRole)

支払い手段とセッションを管理するが、支払いを直接実行しない決定論的/ヒューhuman-in-the-loop (HITL) コードの場合:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPaymentManagement", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreatePaymentInstrument", "bedrock-agentcore:GetPaymentInstrument", "bedrock-agentcore:ListPaymentInstruments", "bedrock-agentcore:DeletePaymentInstrument", "bedrock-agentcore:CreatePaymentSession", "bedrock-agentcore:GetPaymentSession", "bedrock-agentcore:ListPaymentSessions", "bedrock-agentcore:DeletePaymentSession" ], "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*" ] }, { "Sid": "DenyProcessPayment", "Effect": "Deny", "Action": "bedrock-agentcore:ProcessPayment", "Resource": "*" } ] }
注記

このポリシーは、管理オペレーションと支払い実行の間の職務の分離ProcessPaymentを明示的に拒否します。これにより、決定論的なコードパスのみがコントロールプレーンオペレーションを設定でき、エージェント実行は予算を上書きしたり、これを回避する支払い手段を作成したりすることなく、支払いのみを処理できます。

支払い実行アクセス許可 (ProcessPaymentRole)

エージェントに代わって支払いトランザクションを実行する確定的なコードパスの場合:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowProcessPayment", "Effect": "Allow", "Action": "bedrock-agentcore:ProcessPayment", "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*" ] }, { "Sid": "AllowPaymentReadOperations", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetPaymentInstrument", "bedrock-agentcore:GetPaymentInstrumentBalance", "bedrock-agentcore:GetPaymentSession" ], "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*" ] } ] }
重要

PaymentSession の書き込みアクセス許可 ( などCreatePaymentSession) と を同じロールProcessPaymentに含めないでください。含めない場合、呼び出し元は予算を引き上げた新しいセッションを作成することで支払い制限を回避できます。

サービスロールのアクセス許可 (ResourceRetrievalRole)

次のサービスロールは、認証情報を取得してワークロード ID を管理するために、実行時に AgentCore 支払いによって引き受けられます。人間のユーザーには割り当てられません。

信頼ポリシー

サービスロールはbedrock-agentcore.amazonaws.comサービスプリンシパルを信頼する必要があります。次の信頼ポリシーは、特定のアカウントと Payment Manager へのアクセスをスコープします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account>" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:<region>:<account>:payment-manager/<payment-manager-name>-*" } } } ] }

基本アクセス許可 ( Payment Manager の作成時にアタッチ)

Payment Manager が作成されると、次のアクセス許可がサービスロールにアタッチされます。これにより、Payment Manager はワークロード ID および支払いトークンオペレーションにアクセスできるようになります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "WorkloadIdentityManagement", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateWorkloadIdentity", "bedrock-agentcore:DeleteWorkloadIdentity" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<account>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<account>:workload-identity-directory/default/workload-identity/*" ] }, { "Sid": "WorkloadIdentityAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<account>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<account>:workload-identity-directory/default/workload-identity/<payment-manager-name>-*" ] }, { "Sid": "PaymentTokenBaseAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourcePaymentToken" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<account>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<account>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<account>:workload-identity-directory/default/workload-identity/<payment-manager-name>-*" ] }, { "Sid": "PaymentCredentialProviderProvisioning", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreatePaymentCredentialProvider", "bedrock-agentcore:GetPaymentCredentialProvider", "bedrock-agentcore:TagResource" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<account>:token-vault/<token-vault-id>", "arn:aws:bedrock-agentcore:<region>:<account>:token-vault/<token-vault-id>/paymentcredentialprovider/*" ] } ] }

KMS のアクセス権

Payment Manager でカスタマーマネージド KMS AWS キーを設定する場合は、サービスロールに次のアクセス許可を追加します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>:<account>:key/<key-id>" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "<account>" }, "StringLike": { "kms:EncryptionContext:aws:payments-manager:arn": "arn:aws:bedrock-agentcore:<region>:<account>:payment-manager/*" } } } ] }

コネクタごとのアクセス許可

Payment Manager に支払いコネクタが追加されるたびに、以下のアクセス許可がサービスロールに追加されます。これらは、特定の支払い認証情報プロバイダーとそのバッキングシークレットへのアクセスを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PaymentTokenAccess", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourcePaymentToken" ], "Resource": [ "<payment-credential-provider-arn>" ] }, { "Sid": "SecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "<secret-arns>" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "<account>" } } } ] }

既存のロールの使用

新しいサービスロールを作成する代わりに既存のサービスロールを使用する場合は、ロールに次のものがあることを確認してください。

  1. 上記の信頼ポリシー。 を信頼されたプリンシパルbedrock-agentcore.amazonaws.comとして使用します。

  2. ワークロードアイデンティティと支払いトークンアクセスの基本アクセス許可。

  3. Payment Manager のコネクタが参照する各支払い認証情報プロバイダーのコネクタごとのアクセス許可。

注記

管理者、エージェントデベロッパー、および支払い実行ロールは、 arn:aws:iam::111122223333:rootがそれらを引き受けることを許可する標準アカウント信頼ポリシーを使用します。

IAM ポリシーの例については、「Amazon Bedrock AgentCore の Identity and Access Management」を参照してください。