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 dasResource
Feld in IhrerTask
Statusdefinition an.
Kontenübergreifende Ressourcen aufrufen
Gehen Sie wie folgt vor, um eine kontoübergreifende Ressource in Ihren Workflows aufzurufen:
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.
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.Ä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.
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.
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 AssumeRole
APIunterstü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
:*" ] } ] }