View a markdown version of this page

Peran IAM untuk pembayaran AgentCore - Batuan Dasar Amazon AgentCore

Peran IAM untuk pembayaran AgentCore

Ringkasan peran

AgentCore pembayaran menggunakan model IAM empat peran yang memisahkan administrasi, manajemen, eksekusi agen, dan operasi layanan. Siapkan izin IAM berdasarkan persona yang cocok dengan peran Anda.

Peran Tujuan

Administrator (ControlPlaneRole)

Mengelola manajer pembayaran, konektor, dan penyedia kredensi

Pengembang agen (ManagementRole)

Mengelola instrumen dan sesi pembayaran, tidak dapat mengeksekusi pembayaran

Eksekusi pembayaran (ProcessPaymentRole)

Melaksanakan transaksi pembayaran atas nama agen

Peran layanan (ResourceRetrievalRole)

Diasumsikan oleh AgentCore pembayaran saat runtime untuk mengambil kredensyal

Tip

Anda dapat mengotomatiskan langkah-langkah di halaman ini dengan keterampilan AgentCore Pembayaran di toolkit AWS agen. Keterampilan ini adalah bagian dari plugin aws-agents dan memungkinkan agen pengkodean AI membuat Manajer Pembayaran, konektor, penyedia kredensi, instrumen pembayaran, dan sesi menggunakan agentcore CLI, dan menambahkan alat pembayaran x402 ke agen Anda. Untuk detailnya, lihat mulai cepat dan toolkit AWS agen aktif. GitHub

Mengapa pemisahan peran penting

Memisahkan manajemen pembayaran dari eksekusi pembayaran mencegah satu identitas yang dikompromikan dari membuat sesi dengan anggaran tak terbatas dan mengeksekusi pembayaran terhadap sesi tersebut. Yang eksplisit Deny ProcessPayment dalam peran manajemen dan ruang lingkup sempit peran eksekusi menegakkan batas ini. Ini juga memastikan bahwa jejak audit dengan jelas membedakan siapa yang mengonfigurasi sumber daya pembayaran dari siapa yang melakukan transaksi.

Izin administrator () ControlPlaneRole

Untuk administrator yang mengelola manajer pembayaran, konektor, dan penyedia kredensi:

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

Izin pengembang agen () ManagementRole

Untuk kode deterministic/human -in-the-loop (HITL) yang mengelola instrumen dan sesi pembayaran tetapi tidak mengeksekusi pembayaran secara langsung:

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

Kebijakan ini secara eksplisit menolak ProcessPayment untuk menegakkan pemisahan tugas antara operasi manajemen dan pelaksanaan pembayaran. Ini memastikan hanya jalur kode deterministik yang dapat mengatur operasi bidang kontrol, sementara eksekusi agen hanya dapat memproses pembayaran tanpa mengesampingkan anggaran atau membuat instrumen pembayaran untuk mengatasinya.

Izin eksekusi pembayaran () ProcessPaymentRole

Untuk jalur kode deterministik yang melakukan transaksi pembayaran atas nama agen:

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

Jangan sertakan izin PaymentSession menulis (misalnya,CreatePaymentSession) dan ProcessPayment dalam peran yang sama, atau penelepon dapat melewati batas pembayaran dengan membuat sesi baru dengan anggaran tinggi.

Izin peran layanan () ResourceRetrievalRole

Peran layanan berikut diasumsikan oleh AgentCore pembayaran saat runtime untuk mengambil kredensyal dan mengelola identitas beban kerja. Itu tidak ditugaskan untuk pengguna manusia.

Kebijakan kepercayaan

Peran layanan harus mempercayai kepala bedrock-agentcore.amazonaws.com layanan. Kebijakan kepercayaan berikut mencakup akses ke akun dan Manajer Pembayaran tertentu:

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

Izin dasar (terlampir pada pembuatan Manajer Pembayaran)

Ketika Manajer Pembayaran dibuat, izin berikut dilampirkan ke peran layanan. Ini memberi Manajer Pembayaran akses ke identitas beban kerja dan operasi token pembayaran:

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

Setiap kali konektor pembayaran ditambahkan ke Manajer Pembayaran, izin berikut ditambahkan ke peran layanan. Ini memberikan akses ke penyedia kredensi pembayaran tertentu dan rahasia dukungannya:

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

Menggunakan peran yang ada

Jika Anda memilih untuk menggunakan peran layanan yang ada alih-alih membuat yang baru, pastikan peran tersebut memiliki:

  1. Kebijakan kepercayaan yang ditunjukkan di atas, dengan bedrock-agentcore.amazonaws.com sebagai prinsipal tepercaya.

  2. Izin dasar untuk identitas beban kerja dan akses token pembayaran.

  3. Per-connector izin untuk setiap penyedia kredensi pembayaran yang direferensikan oleh konektor Manajer Pembayaran.

catatan

Administrator, pengembang Agen, dan peran eksekusi Pembayaran menggunakan kebijakan kepercayaan akun standar yang memungkinkan arn:aws:iam::111122223333:root untuk mengasumsikannya.

Misalnya kebijakan IAM, lihat Identitas dan manajemen akses untuk Amazon Bedrock AgentCore.