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:
-
Die oben gezeigte Vertrauensrichtlinie mit
bedrock-agentcore.amazonaws.com.rproxy.goskope.comals vertrauenswürdigem Prinzipal. -
Die Basisberechtigungen für Workload-Identität und Zugriff auf Zahlungstoken.
-
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.