Ruoli IAM per AgentCore i pagamenti
Riepilogo dei ruoli
AgentCore payments utilizza un modello IAM a quattro ruoli che separa le operazioni amministrative, di gestione, di esecuzione degli agenti e di servizio. Configura le autorizzazioni IAM in base alla persona che corrisponde al tuo ruolo.
| Ruolo | Scopo |
|---|---|
|
Amministratore () ControlPlaneRole |
Gestisce i gestori dei pagamenti, i connettori e i fornitori di credenziali |
|
Agente sviluppatore () ManagementRole |
Gestisce gli strumenti e le sessioni di pagamento, non può eseguire pagamenti |
|
Esecuzione dei pagamenti (ProcessPaymentRole) |
Esegue transazioni di pagamento per conto degli agenti |
|
Ruolo di servizio () ResourceRetrievalRole |
Assunto dai AgentCore pagamenti in fase di esecuzione per il recupero delle credenziali |
Suggerimento
Puoi automatizzare i passaggi di questa pagina con l'abilità AgentCore Pagamenti nel toolkit per agenti. AWS L'abilità fa parte del plug-in aws-agents e consente a un agente di codifica AI di creare Payment Manager, connettore, fornitore di credenziali, strumento di pagamento e sessione utilizzando la agentcore CLI e di aggiungere uno strumento di pagamento x402 al tuo agente. Per i dettagli, consulta il quickstart e il toolkit per agenti su.AWS GitHub
Perché è importante la separazione dei ruoli
Separare la gestione dei pagamenti dall'esecuzione dei pagamenti impedisce a una singola identità compromessa di creare sessioni con budget illimitati e di eseguire pagamenti in base a tali sessioni. L'esplicito ruolo Deny di ProcessPayment gestione e l'ambito ristretto del ruolo di esecuzione impongono questo limite. Ciò garantisce inoltre che gli audit trail distinguano chiaramente chi ha configurato le risorse di pagamento da chi ha eseguito le transazioni.
Autorizzazioni di amministratore () ControlPlaneRole
Per gli amministratori che gestiscono i gestori dei pagamenti, i connettori e i fornitori di credenziali:
{ "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" } } } ] }
Autorizzazioni per gli sviluppatori degli agenti () ManagementRole
Per il codice deterministic/human -in-the-loop (HITL) che gestisce gli strumenti e le sessioni di pagamento ma non esegue direttamente i pagamenti:
{ "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/*/instrument/*", "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*/session/*" ] }, { "Sid": "DenyProcessPayment", "Effect": "Deny", "Action": "bedrock-agentcore:ProcessPayment", "Resource": "*" } ] }
Nota
Questa politica nega esplicitamente l'applicazione della separazione dei compiti tra ProcessPayment le operazioni di gestione e l'esecuzione dei pagamenti. Ciò garantisce che solo i percorsi di codice deterministici possano impostare le operazioni del piano di controllo, mentre l'esecuzione agentica è in grado di elaborare i pagamenti solo senza sovraccaricare i budget o creare strumenti di pagamento per ovviare a questo problema.
Autorizzazioni di esecuzione dei pagamenti () ProcessPaymentRole
Per percorsi di codice deterministici che eseguono transazioni di pagamento per conto degli agenti:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowProcessPayment", "Effect": "Allow", "Action": "bedrock-agentcore:ProcessPayment", "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*/session/*" ] }, { "Sid": "AllowPaymentReadOperations", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetPaymentInstrument", "bedrock-agentcore:GetPaymentInstrumentBalance", "bedrock-agentcore:GetPaymentSession" ], "Resource": [ "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*/instrument/*", "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*/session/*" ] } ] }
Importante
Non includete autorizzazioni di PaymentSession scrittura (ad esempioCreatePaymentSession) e ProcessPayment ricoprite lo stesso ruolo, altrimenti il chiamante può aggirare i limiti di pagamento creando nuove sessioni con budget elevati.
Autorizzazioni per ruoli di servizio () ResourceRetrievalRole
Il seguente ruolo di servizio viene assunto dai AgentCore pagamenti in fase di esecuzione per recuperare le credenziali e gestire le identità dei carichi di lavoro. Non è assegnato a utenti umani.
Policy di attendibilità
Il ruolo di servizio deve affidarsi al responsabile del bedrock-agentcore.amazonaws.com servizio. Le seguenti politiche di fiducia riguardano l'accesso a un account e a Payment Manager specifici:
{ "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>-*" } } } ] }
Autorizzazioni di base (allegate alla creazione di Payment Manager)
Quando viene creato un Payment Manager, al ruolo di servizio vengono associate le seguenti autorizzazioni. Questi garantiscono al Payment Manager l'accesso alle operazioni relative all'identità del carico di lavoro e ai token di pagamento:
{ "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>-*" ] } ] }
Per-connector autorizzazioni
Ogni volta che viene aggiunto un connettore di pagamento a Payment Manager, al ruolo di servizio vengono aggiunte le seguenti autorizzazioni. Questi garantiscono l'accesso allo specifico fornitore di credenziali di pagamento e ai relativi segreti di supporto:
{ "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>" } } } ] }
Utilizzo di un ruolo esistente
Se scegli di utilizzare un ruolo di servizio esistente anziché crearne uno nuovo, assicurati che il ruolo abbia:
-
La politica di fiducia mostrata sopra, con
bedrock-agentcore.amazonaws.com.rproxy.goskope.comcome principale affidabile. -
Le autorizzazioni di base per l'identità del carico di lavoro e l'accesso ai token di pagamento.
-
Per-connector autorizzazioni per ogni fornitore di credenziali di pagamento a cui fanno riferimento i connettori di Payment Manager.
Nota
I ruoli Amministratore, Agente sviluppatore ed Esecutore dei pagamenti utilizzano una politica di fiducia degli account standard che arn:aws:iam::111122223333:root consente di assumerli.
Ad esempio, le politiche IAM, consulta Gestione delle identità e degli accessi per Amazon Bedrock AgentCore.