View a markdown version of this page

Funciones de IAM para pagos AgentCore - Amazon Bedrock AgentCore

Funciones de IAM para pagos AgentCore

Resumen de funciones

AgentCore payments utiliza un modelo de IAM de cuatro funciones que separa las operaciones administrativas, de gestión, de ejecución de agentes y de servicio. Configure los permisos de IAM en función de la persona que coincida con su función.

Rol Finalidad

Administrador () ControlPlaneRole

Administra los administradores de pagos, los conectores y los proveedores de credenciales

Agente desarrollador () ManagementRole

Administra los instrumentos y las sesiones de pago, no puede ejecutar pagos

Ejecución de pagos (ProcessPaymentRole)

Ejecuta transacciones de pago en nombre de los agentes

Función de servicio () ResourceRetrievalRole

AgentCore Los pagos en tiempo de ejecución lo asumen para recuperar las credenciales

sugerencia

Puede automatizar los pasos de esta página con la habilidad de AgentCore pagos del kit de herramientas para AWS agentes. La habilidad forma parte del complemento aws-agents y permite a un agente de codificación de IA crear su administrador de pagos, conector, proveedor de credenciales, instrumento de pago y sesión mediante la agentcore CLI, y añadir una herramienta de pago x402 a su agente. Para obtener más información, consulte la guía de inicio rápido y el kit de herramientas para agentes en.AWS GitHub

¿Por qué es importante la separación de roles

Separar la gestión de pagos de la ejecución de los pagos evita que una sola identidad comprometida pueda crear sesiones con presupuestos ilimitados y ejecutar pagos con cargo a esas sesiones. Lo explícito Deny ProcessPayment en la función de dirección y el alcance limitado de la función de ejecución refuerzan este límite. Esto también garantiza que los registros de auditoría distingan claramente quién configuró los recursos de pago y quién ejecutó las transacciones.

Permisos de administrador (ControlPlaneRole)

Para los administradores que gestionan los gestores de pagos, los conectores y los proveedores de credenciales:

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

Permisos de agente y desarrollador () ManagementRole

Para el código deterministic/human in-the-loop (HITL) que administra los instrumentos y las sesiones de pago, pero no ejecuta los pagos directamente:

{ "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 niega ProcessPayment explícitamente la separación de funciones entre las operaciones de gestión y la ejecución de los pagos. Esto garantiza que solo las rutas de código deterministas puedan configurar las operaciones del plano de control, mientras que Agentic Execution solo puede procesar los pagos sin anular los presupuestos ni crear instrumentos de pago para evitarlo.

Permisos de ejecución de pagos () ProcessPaymentRole

Para las rutas de código deterministas que ejecutan transacciones de pago en nombre de los 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

No incluya permisos de PaymentSession escritura (por ejemploCreatePaymentSession) y desempeñe ProcessPayment la misma función, o la persona que llama puede eludir los límites de pago al crear nuevas sesiones con presupuestos elevados.

Permisos de rol de servicio () ResourceRetrievalRole

Los AgentCore pagos en tiempo de ejecución asumen la siguiente función de servicio para recuperar las credenciales y gestionar las identidades de las cargas de trabajo. No se asigna a usuarios humanos.

Política de confianza

El rol de servicio debe confiar en el director del bedrock-agentcore.amazonaws.com servicio. La siguiente política de confianza abarca el acceso a una cuenta y a un administrador de pagos específicos:

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

Permisos básicos (adjuntos al crear Payment Manager)

Cuando se crea un administrador de pagos, los siguientes permisos se asocian a la función de servicio. Estos permiten al administrador de pagos acceder a la identidad de la carga de trabajo y a las operaciones con los tokens de pago:

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

Cada vez que se añade un conector de pago al gestor de pagos, se añaden los siguientes permisos a la función de servicio. Estos permiten acceder al proveedor de credenciales de pago específico y a sus secretos de respaldo:

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

Uso de un rol existente

Si decide utilizar un rol de servicio existente en lugar de crear uno nuevo, asegúrese de que el rol tenga:

  1. La política de confianza que se muestra arriba, bedrock-agentcore.amazonaws.com tiene como principal de confianza.

  2. Los permisos básicos para la identidad de la carga de trabajo y el acceso al token de pago.

  3. Per-connector permisos para cada proveedor de credenciales de pago al que hacen referencia los conectores del administrador de pagos.

nota

Las funciones de administrador, agente, desarrollador y ejecutor de pagos utilizan una política de confianza de cuentas estándar que arn:aws:iam::111122223333:root permite asumirlas.

Para ver ejemplos de políticas de IAM, consulte Administración de identidad y acceso para Amazon Bedrock AgentCore.