View a markdown version of this page

IAM-Rollen für Zahlungen AgentCore - Amazon Grundgestein AgentCore

IAM-Rollen für Zahlungen AgentCore

Zusammenfassung der Rollen

AgentCore Payments verwendet ein IAM-Modell mit vier Rollen, das Verwaltungs-, Verwaltungs-, Agentenausführung- und Serviceoperationen voneinander trennt. Richten Sie IAM-Berechtigungen auf der Grundlage der Persona ein, die Ihrer Rolle entspricht.

Rolle Zweck

Administrator () ControlPlaneRole

Verwaltet Zahlungsmanager, Konnektoren und Anbieter von Anmeldeinformationen

Agent-Entwickler () ManagementRole

Verwaltet Zahlungsinstrumente und Sitzungen, kann keine Zahlungen ausführen

Ausführung von Zahlungen (ProcessPaymentRole)

Führt Zahlungsvorgänge im Namen von Agenten aus

Servicerolle () ResourceRetrievalRole

Wird bei AgentCore Zahlungen zur Laufzeit zum Abrufen von Zugangsdaten vorausgesetzt

Tipp

Sie können die Schritte auf dieser Seite mit dem Skill AgentCore Payments im AWS Agenten-Toolkit automatisieren. Der Skill ist Teil des aws-agents-Plug-ins und ermöglicht es einem KI-Codierungsagenten, Ihren Zahlungsmanager, Ihren Connector, Ihren Anmeldeinformationsanbieter, Ihr Zahlungsinstrument und Ihre Sitzung mithilfe der agentcore CLI zu erstellen und Ihrem Agenten ein x402-Zahlungstool hinzuzufügen. Einzelheiten finden Sie im Schnellstart und im Agenten-Toolkit unter.AWS GitHub

Warum Rollentrennung wichtig ist

Durch die Trennung von Zahlungsmanagement und Zahlungsausführung wird verhindert, dass eine einzelne kompromittierte Identität sowohl Sitzungen mit unbegrenztem Budget erstellt als auch Zahlungen für diese Sitzungen ausführt. Durch die Deny explizite ProcessPayment Festlegung der Verwaltungsrolle und den engen Umfang der Ausführungsrolle wird diese Grenze durchgesetzt. Dadurch wird auch sichergestellt, dass anhand von Prüfprotokollen eindeutig unterschieden wird, wer Zahlungsressourcen konfiguriert hat und wer Transaktionen ausgeführt hat.

Administratorberechtigungen (ControlPlaneRole)

Für Administratoren, die Zahlungsmanager, Konnektoren und Anbieter von Anmeldeinformationen verwalten:

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

Entwicklerberechtigungen für Agenten () ManagementRole

Für deterministic/human In-the-Loop (HITL) -Code, der Zahlungsinstrumente und -sitzungen verwaltet, Zahlungen jedoch nicht direkt ausführt:

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

In dieser Richtlinie wird ausdrücklich die Durchsetzung einer Aufgabentrennung zwischen Verwaltungsvorgängen und Zahlungsausführung verweigertProcessPayment. Dadurch wird sichergestellt, dass nur deterministische Codepfade die Abläufe auf der Kontrollebene festlegen können, während die behördliche Ausführung nur Zahlungen verarbeiten kann, ohne Budgets zu überschreiben oder Zahlungsinstrumente zu schaffen, um dieses Problem zu umgehen.

Genehmigungen zur Zahlungsausführung () ProcessPaymentRole

Für deterministische Codepfade, die Zahlungstransaktionen im Namen von Agenten ausführen:

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

Geben Sie keine PaymentSession Schreibberechtigungen an (z. B.CreatePaymentSession) und ProcessPayment nicht dieselbe Rolle, da der Anrufer sonst Zahlungslimits umgehen kann, indem er neue Sitzungen mit höheren Budgets erstellt.

Berechtigungen für Servicerollen () ResourceRetrievalRole

Die folgende Servicerolle wird von AgentCore Zahlungen zur Laufzeit übernommen, um Anmeldeinformationen abzurufen und Workload-Identitäten zu verwalten. Sie ist nicht menschlichen Benutzern zugewiesen.

Vertrauensrichtlinie

Die Servicerolle muss dem bedrock-agentcore.amazonaws.com Dienstprinzipal vertrauen. Die folgende Vertrauensrichtlinie gilt für den Zugriff auf ein bestimmtes Konto und einen bestimmten Zahlungsmanager:

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

Basisberechtigungen (werden bei der Erstellung von Payment Manager beigefügt)

Wenn ein Zahlungsmanager erstellt wird, werden der Servicerolle die folgenden Berechtigungen zugewiesen. Diese gewähren dem Payment Manager Zugriff auf Workload-Identitäts- und Zahlungstoken-Operationen:

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

Jedes Mal, wenn dem Zahlungsmanager ein Zahlungskonnektor hinzugefügt wird, werden die folgenden Berechtigungen an die Servicerolle angehängt. Diese gewähren Zugriff auf den jeweiligen Anbieter für Zahlungsnachweise und dessen geheime Daten:

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

Verwenden einer vorhandenen Rolle

Wenn Sie eine bestehende Servicerolle verwenden möchten, anstatt eine neue zu erstellen, stellen Sie sicher, dass die Rolle:

  1. Die oben gezeigte Vertrauensrichtlinie mit bedrock-agentcore.amazonaws.com als vertrauenswürdigem Prinzipal.

  2. Die Basisberechtigungen für Workload-Identität und Zugriff auf Zahlungstoken.

  3. Per-connector Berechtigungen für jeden Anbieter von Zahlungsinformationen, auf den die Konnektoren des Payment Managers verweisen.

Anmerkung

Die Rollen Administrator, Agent Developer und Payment Execution verwenden eine standardmäßige Vertrauensrichtlinie, die es ermöglichtarn:aws:iam::111122223333:root, diese Rollen zu übernehmen.

Beispiele für IAM-Richtlinien finden Sie unter Identitäts- und Zugriffsmanagement für Amazon AgentCore Bedrock.