View a markdown version of this page

Funções do IAM para AgentCore pagamentos - Amazon Bedrock AgentCore

Funções do IAM para AgentCore pagamentos

Resumo da função

AgentCore os pagamentos usam um modelo IAM de quatro funções que separa operações administrativas, gerenciais, de execução de agentes e de serviço. Configure as permissões do IAM com base na persona que corresponde à sua função.

Perfil Finalidade

Administrador (ControlPlaneRole)

Gerencia gerentes de pagamento, conectores e provedores de credenciais

Agente desenvolvedor (ManagementRole)

Gerencia instrumentos e sessões de pagamento, não pode executar pagamentos

Execução de pagamento (ProcessPaymentRole)

Executa transações de pagamento em nome de agentes

Função de serviço (ResourceRetrievalRole)

Assumido por AgentCore pagamentos em tempo de execução para recuperar credenciais

dica

Você pode automatizar as etapas nesta página com a habilidade AgentCore Pagamentos no kit de ferramentas do AWS agente. A habilidade faz parte do plug-in aws-agents e permite que um agente de codificação de IA crie seu gerenciador de pagamentos, conector, provedor de credenciais, instrumento de pagamento e sessão usando a agentcore CLI e adicione uma ferramenta de pagamento x402 ao seu agente. Para obter detalhes, consulte o guia de início rápido e o kit de ferramentas do AWS agente em. GitHub

Por que a separação de funções é importante

Separar o gerenciamento de pagamentos da execução de pagamentos impede que uma única identidade comprometida crie sessões com orçamentos ilimitados e execute pagamentos em relação a essas sessões. O explícito Deny ProcessPayment na função de gerenciamento e o escopo restrito da função de execução impõem esse limite. Isso também garante que as trilhas de auditoria distingam claramente quem configurou os recursos de pagamento de quem executou as transações.

Permissões de administrador (ControlPlaneRole)

Para administradores que gerenciam gerentes de pagamento, conectores e provedores de credenciais:

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

Permissões de desenvolvedor do agente (ManagementRole)

Para o código deterministic/human -in-the-loop (HITL) que gerencia instrumentos e sessões de pagamento, mas não executa pagamentos diretamente:

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

Esta política nega explicitamente ProcessPayment a separação de deveres entre as operações de gerenciamento e a execução do pagamento. Isso garante que somente caminhos de código determinísticos possam definir as operações do plano de controle, enquanto a execução agente só é capaz de processar o pagamento sem sobrepor orçamentos ou criar instrumentos de pagamento para contornar isso.

Permissões de execução de pagamento (ProcessPaymentRole)

Para caminhos de código determinísticos que executam transações de pagamento em nome de agentes:

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

Não inclua permissões de PaymentSession gravação (por exemplo,CreatePaymentSession) e ProcessPayment na mesma função, ou o chamador pode ignorar os limites de pagamento criando novas sessões com orçamentos elevados.

Permissões da função de serviço (ResourceRetrievalRole)

A função de serviço a seguir é assumida pelos AgentCore pagamentos em tempo de execução para recuperar credenciais e gerenciar identidades de carga de trabalho. Ele não é atribuído a usuários humanos.

Política de confiança

A função de serviço deve confiar no diretor do bedrock-agentcore.amazonaws.com serviço. A política de confiança a seguir define o escopo do acesso a uma conta específica e a um gerente de pagamentos:

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

Permissões básicas (anexadas na criação do Payment Manager)

Quando um gerente de pagamento é criado, as seguintes permissões são anexadas à função de serviço. Eles concedem ao Payment Manager acesso às operações de identidade da carga de trabalho e token de 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 permissões

Sempre que um conector de pagamento é adicionado ao Gerenciador de pagamentos, as seguintes permissões são anexadas à função de serviço. Eles concedem acesso ao provedor específico de credenciais de pagamento e seus segredos de apoio:

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

Usando uma função existente

Se você optar por usar uma função de serviço existente em vez de criar uma nova, certifique-se de que a função tenha:

  1. A política de confiança mostrada acima, tendo bedrock-agentcore.amazonaws.com como principal confiável.

  2. As permissões básicas para identidade da carga de trabalho e acesso ao token de pagamento.

  3. Per-connector permissões para cada provedor de credenciais de pagamento referenciado pelos conectores do Payment Manager.

nota

As funções de administrador, agente, desenvolvedor e execução de pagamentos usam uma política de confiança de conta padrão que arn:aws:iam::111122223333:root permite assumi-las.

Por exemplo, políticas do IAM, consulte Gerenciamento de identidade e acesso para o Amazon Bedrock AgentCore.