Zugreifen auf Ressourcen in anderen AWS-Konten In-Step-Funktionen - AWS Step Functions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugreifen auf Ressourcen in anderen AWS-Konten In-Step-Funktionen

Step Functions bietet kontoübergreifenden Zugriff auf Ressourcen, die in verschiedenen Konfigurationen konfiguriert sind AWS-Konten in Ihren Workflows. Mithilfe der Step Functions Functions-Dienstintegrationen können Sie jedes beliebige kontoübergreifende Konto aufrufen AWS Ressource, auch wenn AWS-Service unterstützt keine ressourcenbasierten Richtlinien oder kontoübergreifende Anrufe.

Nehmen wir zum Beispiel an, Sie besitzen zwei AWS-Konten, im selben Text Entwicklung und Testen genannt AWS-Region. Mithilfe des kontoübergreifenden Zugriffs kann Ihr Workflow im Entwicklungskonto auf Ressourcen wie Amazon S3 S3-Buckets, Amazon DynamoDB-Tabellen und Lambda-Funktionen zugreifen, die im Testkonto verfügbar sind.

Wichtig

IAMRollen und ressourcenbasierte Richtlinien delegieren den Zugriff auf Konten nur innerhalb einer einzigen Partition. Nehmen wir zum Beispiel an, Sie haben ein Konto in US West (Nordkalifornien) in der Standardpartition aws. Sie haben auch ein Konto in China (Peking) in der aws-cn-Partition. Sie können keine ressourcenbasierte Amazon S3-Richtlinie in Ihrem Konto in China (Peking) verwenden, um Benutzern in Ihrem Standard-aws-Konto den Zugriff zu ermöglichen.

Weitere Informationen zum kontenübergreifenden Zugriff finden Sie unter Logik zur kontenübergreifenden Bewertung von Richtlinien im Benutzerhandbuch. IAM

Obwohl jeder AWS-Konto behält die vollständige Kontrolle über seine eigenen Ressourcen. Mit Step Functions können Sie Schritte in Ihren Workflows neu organisieren, austauschen, hinzufügen oder entfernen, ohne Code anpassen zu müssen. Sie können dies auch dann tun, wenn sich die Prozesse ändern oder Anwendungen weiterentwickeln.

Sie können auch Ausführungen von verschachtelten Zustandsmaschinen aufrufen, sodass sie für verschiedene Konten verfügbar sind. Auf diese Weise werden Ihre Arbeitsabläufe effizient getrennt und isoliert. Wenn Sie das .syncServiceintegrationsmuster in Ihren Workflows verwenden, die auf einen anderen Step Functions-Workflow in einem anderen Konto zugreifen, verwendet Step Functions Polling, das Ihr zugewiesenes Kontingent verbraucht. Weitere Informationen finden Sie unter Ausführen einer Aufgabe (.sync).

Anmerkung

Derzeit regionsübergreifend AWS SDKIntegration und regionsübergreifend AWS Der Ressourcenzugriff ist in Step Functions nicht verfügbar.

Wichtige kontenübergreifende Ressourcenkonzepte

Rolle bei der Ausführung

Eine IAM Rolle, die Step Functions verwendet, um Code auszuführen und darauf zuzugreifen AWS Ressourcen, wie die AWS Lambda Die Aktion „Aufrufen“ der Funktion.

Serviceintegration

Das Tool AWS SDKAPIIntegrationsaktionen, die von einem Task Status in Ihren Workflows aus aufgerufen werden können.

Quellkonto

Importieren in &S3; AWS-Konto dem die Zustandsmaschine gehört und deren Ausführung gestartet hat.

Zielkonto

Importieren in &S3; AWS-Konto zu dem Sie kontoübergreifende Anrufe tätigen.

Zielrolle

Eine IAM Rolle im Zielkonto, die die Zustandsmaschine für Aufrufe von Ressourcen übernimmt, die dem Zielkonto gehören.

Einen Job ausführen (.sync)

Ein Dienstintegrationsmuster, das zum Aufrufen von Diensten verwendet wird, z. B. AWS Batch. Außerdem wartet eine Step Functions Functions-Zustandsmaschine darauf, dass ein Job abgeschlossen ist, bevor sie zum nächsten Status übergeht. Um anzugeben, dass Step Functions warten soll, fügen Sie das .sync Suffix in das Resource Feld in Ihrer Task Statusdefinition an.

Kontenübergreifende Ressourcen aufrufen

Gehen Sie wie folgt vor, um eine kontoübergreifende Ressource in Ihren Workflows aufzurufen:

  1. Erstellen Sie eine IAM Rolle in dem Zielkonto, das die Ressource enthält. Diese Rolle gewährt dem Quellkonto, das die Zustandsmaschine enthält, Berechtigungen für den Zugriff auf die Ressourcen des Zielkontos.

  2. Geben Sie in der Definition des Task Status die IAM Zielrolle an, die von der Zustandsmaschine übernommen werden soll, bevor die kontoübergreifende Ressource aufgerufen wird.

  3. Ändern Sie die Vertrauensrichtlinie in der IAM Zielrolle, sodass das Quellkonto diese Rolle vorübergehend übernehmen kann. Die Vertrauensrichtlinie muss den Amazon-Ressourcennamen (ARN) der Zustandsmaschine enthalten, die im Quellkonto definiert ist. Definieren Sie außerdem die entsprechenden Berechtigungen in der IAM Zielrolle für den Aufruf von AWS Ressource.

  4. Aktualisieren Sie die Ausführungsrolle des Quellkontos so, dass sie die erforderliche Berechtigung für die Übernahme der IAM Zielrolle enthält.

Ein Beispiel finden Sie Kontenübergreifender Zugriff AWS Ressourcen in Step Functions in den Tutorials.

Anmerkung

Sie können Ihren Zustandsmaschine so konfigurieren, dass er eine IAM Rolle für den Zugriff auf Ressourcen aus mehreren Quellen übernimmt AWS-Konten. Eine Zustandsmaschine kann jedoch jeweils nur eine IAM Rolle übernehmen.

Konzept für den Zugriff auf kontenübergreifende Ressourcen

Kontoübergreifender Zugriff für das .sync-Integrationsmuster

Wenn Sie die .sync Serviceintegrationsmuster in Ihren Workflows verwenden, fragt Step Functions die aufgerufene kontenübergreifende Ressource ab, um zu bestätigen, dass die Aufgabe abgeschlossen ist. Dies führt zu einer leichten Verzögerung zwischen der tatsächlichen Abschlusszeit der Aufgabe und dem Zeitpunkt, zu dem Step Functions die Aufgabe als abgeschlossen erkennt. Die IAM Zielrolle benötigt die erforderlichen Berechtigungen für einen .sync Aufruf, um diese Abfrageschleife abzuschließen. Dazu muss die IAM Zielrolle über eine Vertrauensrichtlinie verfügen, die es dem Quellkonto ermöglicht, sie zu übernehmen. Darüber hinaus benötigt die IAM Zielrolle die erforderlichen Berechtigungen, um die Abfrageschleife abzuschließen.

Anmerkung

Für verschachtelte Express-Workflows wird dies derzeit arn:aws:states:::states:startExecution.sync nicht unterstützt. Verwenden Sie stattdessen arn:aws:states:::aws-sdk:sfn:startSyncExecution.

Aktualisierung der Vertrauensrichtlinie für .sync-Aufrufe

Aktualisieren Sie die Vertrauensrichtlinie Ihrer IAM Zielrolle, wie im folgenden Beispiel gezeigt. Das sts:ExternalId Feld steuert außerdem, wer die Rolle übernehmen kann. Der Name der Zustandsmaschine darf nur Zeichen enthalten, die AWS Security Token Service AssumeRoleAPIunterstützt. Weitere Informationen finden Sie AssumeRolein der AWS Security Token Service APIReferenz.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::sourceAccountID:role/InvokeRole", }, "Condition": { "StringEquals": { "sts:ExternalId": "arn:aws:states:us-east-2:sourceAccountID:stateMachine:stateMachineName" } } } ] }

Für .sync-Aufrufe sind Berechtigungen erforderlich

Um die für Ihre Zustandsmaschine erforderlichen Berechtigungen zu gewähren, aktualisieren Sie die erforderlichen Berechtigungen für die IAM Zielrolle. Weitere Informationen finden Sie unter So generiert Step Functions IAM Richtlinien für integrierte Dienste. Die EventBridge Amazon-Berechtigungen aus den Beispielrichtlinien sind nicht erforderlich. Um beispielsweise eine Zustandsmaschine zu starten, fügen Sie die folgenden Berechtigungen hinzu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:region:accountID:stateMachine:stateMachineName" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:region:accountID:execution:stateMachineName:*" ] } ] }