View a markdown version of this page

AgentCore 결제를 위한 IAM 역할 - Amazon Bedrock AgentCore

AgentCore 결제를 위한 IAM 역할

역할 요약

AgentCore 결제는 관리, 관리, 에이전트 실행 및 서비스 작업을 분리하는 4역할 IAM 모델을 사용합니다. 역할과 일치하는 페르소나를 기반으로 IAM 권한을 설정합니다.

Role 용도

관리자(ControlPlaneRole)

결제 관리자, 커넥터 및 자격 증명 공급자를 관리합니다.

에이전트 개발자(ManagementRole)

결제 수단 및 세션을 관리하고 결제를 실행할 수 없음

결제 실행(ProcessPaymentRole)

에이전트를 대신하여 결제 트랜잭션을 실행합니다.

서비스 역할(ResourceRetrievalRole)

자격 증명을 검색하기 위해 런타임에 AgentCore 결제에서 수임합니다.

작은 정보

AWS 에이전트 도구 키트의 AgentCore Payments 스킬을 사용하여이 페이지의 단계를 자동화할 수 있습니다. 스킬은 aws-agents 플러그인의 일부이며 AI 코딩 에이전트가 agentcore CLI를 사용하여 Payment Manager, 커넥터, 자격 증명 공급자, 결제 수단 및 세션을 생성하고 에이전트에 x402 결제 도구를 추가할 수 있도록 합니다. 자세한 내용은 GitHub의 빠른 시작 및 에이전트 툴킷을 참조하세요. AWS GitHub

역할 분리가 중요한 이유

결제 관리를 결제 실행과 분리하면 손상된 단일 자격 증명이 무제한 예산으로 세션을 생성하고 해당 세션에 대한 결제를 실행하는 것을 방지할 수 있습니다. 관리 역할ProcessPaymentDeny 명시적와 실행 역할의 좁은 범위가이 경계를 적용합니다. 또한 감사 추적에서 결제 리소스를 구성한 사람과 트랜잭션을 실행한 사람을 명확하게 구분할 수 있습니다.

관리자 권한(ControlPlaneRole)

결제 관리자, 커넥터 및 자격 증명 공급자를 관리하는 관리자의 경우:

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

에이전트 개발자 권한(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/*/instrument/*", "arn:aws:bedrock-agentcore:*:111122223333:payment-manager/*/session/*" ] }, { "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/*/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/*" ] } ] }
중요

동일한 역할에 PaymentSession 쓰기 권한(예: CreatePaymentSession) 및 ProcessPayment를 포함하지 마십시오. 그렇지 않으면 발신자가 예산이 높아진 새 세션을 생성하여 결제 한도를 우회할 수 있습니다.

서비스 역할 권한(ResourceRetrievalRole)

AgentCore는 런타임에 자격 증명을 검색하고 워크로드 ID를 관리하기 위해 다음 서비스 역할을 수임합니다. 인간 사용자에게는 할당되지 않습니다.

신뢰 정책

서비스 역할은 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에 워크로드 자격 증명 및 결제 토큰 작업에 대한 액세스 권한을 부여합니다.

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

커넥터별 권한

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의 ID 및 액세스 관리를 참조하세요.