View a markdown version of this page

Rôles IAM pour les paiements AgentCore - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Rôles IAM pour les paiements AgentCore

Résumé du rôle

AgentCore payments utilise un modèle IAM à cinq rôles qui sépare l'administration, la gestion, l'exécution des agents, les opérations de service et l'abonnement à AWS Marketplace (Coinbase uniquement). Configurez les autorisations IAM en fonction du personnage correspondant à votre rôle.

Role Objectif

Administrateur (ControlPlaneRole)

Gère les gestionnaires de paiement, les connecteurs et les fournisseurs d'informations d'identification. Pour Coinbase, ce rôle nécessite également la politique AWS gérée AWSMarketplaceManageSubscriptions pour s'abonner à Marketplace AWS

Développeur d'agents (ManagementRole)

Gère les instruments de paiement et les sessions, ne peut pas exécuter les paiements

Exécution des paiements (ProcessPaymentRole)

Exécute les transactions de paiement pour le compte des agents

Rôle de service (ResourceRetrievalRole)

Supposé par AgentCore les paiements au moment de l'exécution pour récupérer les informations d'identification

Abonnement Marketplace (AWSMarketplaceManageSubscriptionssur l'administrateur)

Pour Coinbase, abonne le compte à la liste des portefeuilles Coinbase pour les AgentCore paiements sur Marketplace. AWS Il s'agit d'une politique AWS gérée associée à l'identité de l'administrateur, et non d'un rôle distinct pouvant être assumé.

Astuce

Vous pouvez automatiser les étapes de cette page à l'aide de la compétence AgentCore Paiements de la boîte à outils de l' AWS agent. La compétence fait partie du plugin aws-agents et permet à un agent de codage IA de créer votre gestionnaire de paiement, votre connecteur, votre fournisseur d'informations d'identification, votre instrument de paiement et votre session à l'aide de la agentcore CLI, et d'ajouter un outil de traitement des paiements à votre agent. Pour plus de détails, consultez le guide de démarrage rapide et la boîte à outils de l'AWS agent sur GitHub.

Pourquoi la séparation des rôles est importante

Séparer la gestion des paiements de l'exécution des paiements empêche une seule identité compromise à la fois de créer des sessions avec des budgets illimités et d'exécuter des paiements sur ces sessions. L'activation explicite Deny ProcessPayment du rôle de gestion fait respecter cette limite. Cela garantit également que les pistes d'audit distinguent clairement qui a configuré les ressources de paiement de qui a exécuté les transactions.

Autorisations d'administrateur (ControlPlaneRole)

Pour les administrateurs qui gèrent les gestionnaires de paiements, les connecteurs et les fournisseurs d'informations d'identification :

Note

Pour utiliser Coinbase en tant que fournisseur de paiement, l'administrateur doit également inscrire le compte à la liste des portefeuilles Coinbase pour les AgentCore paiements sur Marketplace AWS . Cela nécessite la politique AWS gérée AWSMarketplaceManageSubscriptions. Avec cet abonnement, les frais d'utilisation de votre portefeuille Coinbase sont consolidés dans votre AWS facture mensuelle en fonction des tarifs de Coinbase sur le site Web de Coinbase. Il n'y a pas de frais ni d'obligations supplémentaires pour l'abonnement. Pour plus d'informations, consultez la section S'abonner aux portefeuilles Coinbase pour les AgentCore paiements AWS sur 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" } } } ] }

Pour vous abonner à la liste des portefeuilles Coinbase pour les AgentCore paiements AWS sur Marketplace, l'identité de l'administrateur doit également disposer de la politique AWS AWSMarketplaceManageSubscriptions gérée. Attachez-le au rôle IAM (ou à l'utilisateur) de l'administrateur. Par exemple, avec l' AWS interface de ligne de commande :

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

Autorisations des développeurs d'agents (ManagementRole)

Pour le code deterministic/human -in-the-loop (HITL) qui gère les instruments de paiement et les sessions mais n'exécute pas les paiements directement :

{ "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": "*" } ] }
Note

Cette politique refuse explicitement ProcessPayment d'appliquer la séparation des tâches entre les opérations de gestion et l'exécution des paiements. Cela garantit que seuls les chemins de code déterministes peuvent définir les opérations du plan de contrôle, tandis que l'exécution agentique ne peut traiter les paiements que sans dépasser les budgets ni créer d'instruments de paiement pour contourner ce problème.

Autorisations d'exécution des paiements (ProcessPaymentRole)

Pour les chemins de code déterministes qui exécutent des transactions de paiement pour le compte d'agents :

{ "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/*" ] } ] }
Important

N' PaymentSession incluez pas d'autorisations d'écriture (par exempleCreatePaymentSession) ProcessPayment dans le même rôle, sinon l'appelant peut contourner les limites de paiement en créant de nouvelles sessions avec des budgets élevés.

Autorisations relatives aux rôles de service (ResourceRetrievalRole)

Le rôle de service suivant est assumé par AgentCore les paiements lors de l'exécution pour récupérer les informations d'identification et gérer les identités des charges de travail. Il n'est pas attribué à des utilisateurs humains.

Politique d’approbation

Le rôle de service doit faire confiance au bedrock-agentcore.amazonaws.com responsable du service. La politique de confiance suivante définit l'accès à un compte et à un gestionnaire de paiement spécifiques :

{ "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>-*" } } } ] }

Autorisations de base (jointes lors de la création du Payment Manager)

Lorsqu'un gestionnaire de paiement est créé, les autorisations suivantes sont associées au rôle de service. Ils permettent au Payment Manager d'accéder à l'identité de la charge de travail et aux opérations relatives aux jetons de paiement :

{ "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/*" ] } ] }

Autorisations KMS

Si vous configurez une clé AWS KMS gérée par le client sur votre Payment Manager, ajoutez les autorisations suivantes au rôle de service :

{ "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/*" } } } ] }

Per-connector autorisations

Chaque fois qu'un connecteur de paiement est ajouté au gestionnaire de paiement, les autorisations suivantes sont ajoutées au rôle de service. Ils permettent d'accéder au fournisseur d'informations de paiement spécifique et à ses secrets de base :

{ "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>" } } } ] }

Utilisation d'un rôle existant

Si vous choisissez d'utiliser un rôle de service existant au lieu d'en créer un nouveau, assurez-vous que ce rôle possède les caractéristiques suivantes :

  1. La politique de confiance présentée ci-dessus, avec bedrock-agentcore.amazonaws.com comme principal de confiance.

  2. Les autorisations de base pour l'identité de la charge de travail et l'accès aux jetons de paiement.

  3. Per-connector autorisations pour chaque fournisseur d'informations de paiement auquel les connecteurs du Payment Manager font référence.

Note

Les rôles d'administrateur, de développeur d'agent et d'exécution des paiements utilisent une politique de confiance de compte standard qui arn:aws:iam::111122223333:root permet de les assumer.

Pour des exemples de politiques IAM, consultez la section Gestion des identités et des accès pour Amazon AgentCore Bedrock.