So generiert Step Functions IAM Richtlinien für integrierte Dienste - 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.

So generiert Step Functions IAM Richtlinien für integrierte Dienste

Wenn Sie eine Zustandsmaschine erstellen in AWS Step Functions Konsole, Step Functions erzeugt eine AWS Identity and Access Management (IAM) Richtlinie, die auf den Ressourcen basiert, die in Ihrer State-Machine-Definition verwendet werden, wie folgt:

  • Wenn Ihre Zustandsmaschine eine der optimierten Integrationen verwendet, erstellt Step Functions eine Richtlinie mit den erforderlichen Berechtigungen und Rollen für Ihre Zustandsmaschine. (Ausnahme: Für die MediaConvert Integration müssen Sie Berechtigungen manuell einrichten — sieheIAMRichtlinien für Anrufe AWS Elemental MediaConvert.)

  • Wenn Ihr Zustandsmaschine einen der folgenden verwendet AWS SDKBei Integrationen wird eine IAM Rolle mit Teilberechtigungen erstellt. Anschließend können Sie die IAM Konsole verwenden, um fehlende Rollenrichtlinien hinzuzufügen.

Die folgenden Beispiele zeigen, wie Step Functions eine IAM Richtlinie generiert, die auf Ihrer State-Machine-Definition basiert. Elemente im Beispielcode wie [[resourceName]] werden durch die statischen Ressourcen ersetzt, die in Ihrer State-Machine-Definition aufgeführt sind. Wenn Sie über mehrere statische Ressourcen verfügen, gibt es für jede Ressource in der IAM Rolle einen Eintrag.

Dynamische und statische Ressourcen

Statische Ressourcen werden direkt im Aufgabenstatus Ihres Zustandsautomaten definiert. Wenn Sie die Informationen über die Ressourcen, die Sie aufrufen möchten, direkt in Ihren Aufgabenstatus aufnehmen, erstellt Step Functions eine IAM Rolle nur für diese Ressourcen.

Dynamische Ressourcen sind die Ressourcen, die an Ihre Zustandseingabe übergeben werden und auf die über einen Pfad zugegriffen wird (siehe Verwenden von Pfaden für den Zugriff auf Eingaben für Step Functions Functions-Workflows). Wenn Sie dynamische Ressourcen an Ihre Aufgabe übergeben, erstellt Step Functions eine Richtlinie mit mehr Rechten, die Folgendes spezifiziert:"Resource": "*".

Zusätzliche Berechtigungen für Aufgaben, die das Run a Job-Muster verwenden

Für Aufgaben, die das Run a Job-Muster verwenden (solche, die auf enden.sync), sind zusätzliche Berechtigungen erforderlich, um die API Aktionen verbundener Dienste zu überwachen und eine Antwort darauf zu erhalten. Die entsprechenden Richtlinien beinhalten mehr Berechtigungen als für Aufgaben, die die Muster „Antwort anfordern“ oder „Auf Rückruf warten“ verwenden. Informationen Entdecken Sie Serviceintegrationsmuster in Step Functions zu synchronen Aufgaben finden Sie unter.

Anmerkung

Sie müssen zusätzliche Berechtigungen für Dienstintegrationen bereitstellen, die das Run a Job (.sync) -Muster unterstützen.

Step Functions verwendet zwei Methoden, um den Status eines Jobs zu überwachen, wenn ein Job auf einem verbundenen Dienst ausgeführt wird: Polling und Ereignisse.

Für Abfragen sind Genehmigungen Describe oder Get API Aktionen wie ecs:DescribeTasks oder erforderlich. glue:GetJobRun Wenn diese Berechtigungen in Ihrer Rolle fehlen, kann Step Functions den Status Ihres Jobs möglicherweise nicht ermitteln. Dies liegt daran, dass einige Run a Job (.sync) -Dienstintegrationen keine EventBridge Ereignisse unterstützen und einige Dienste Ereignisse nur nach bestem Wissen senden.

Ereignisse, die gesendet wurden von AWS Dienste für Amazon EventBridge werden mithilfe einer verwalteten Regel an Step Functions weitergeleitet und benötigen Berechtigungen für events:PutTargetsevents:PutRule, undevents:DescribeRule. Wenn diese Berechtigungen in Ihrer Rolle fehlen, kann es zu einer Verzögerung kommen, bis Step Functions von der Fertigstellung Ihres Jobs erfährt. Weitere Informationen zu EventBridge Ereignissen finden Sie unter Ereignisse von AWS Dienste.

Anmerkung

Bei Aufgaben vom Typ Run a Job (.sync), die sowohl Abfragen als auch Ereignisse unterstützen, kann es sein, dass Ihre Aufgabe mithilfe von Ereignissen trotzdem ordnungsgemäß abgeschlossen wird. Dies kann auch dann der Fall sein, wenn Ihre Rolle nicht über die erforderlichen Berechtigungen für Abfragen verfügt. In diesem Fall stellen Sie möglicherweise nicht sofort fest, dass die Abfrageberechtigungen falsch sind oder fehlen. In dem seltenen Fall, dass das Ereignis nicht an Step Functions übermittelt oder von Step Functions verarbeitet werden kann, kann Ihre Ausführung hängen bleiben. Um zu überprüfen, ob Ihre Abfrageberechtigungen korrekt konfiguriert sind, können Sie eine Ausführung in einer Umgebung ohne EventBridge Ereignisse auf folgende Weise ausführen:

  • Löschen Sie die verwaltete Regel von EventBridge, die für die Weiterleitung von Ereignissen an Step Functions zuständig ist. Diese verwaltete Regel wird von allen Zustandsmaschinen in Ihrem Konto gemeinsam genutzt. Sie sollten diese Aktion daher nur in einem Test- oder Entwicklungskonto ausführen, um unbeabsichtigte Auswirkungen auf andere Zustandsmaschinen zu vermeiden. Sie können die spezifische verwaltete Regel, die gelöscht werden soll, anhand des Resource Felds ermitteln, das events:PutRule in der Richtlinienvorlage für den Zieldienst verwendet wird. Die verwaltete Regel wird neu erstellt, wenn Sie das nächste Mal eine Zustandsmaschine erstellen oder aktualisieren, die diese Dienstintegration verwendet. Weitere Informationen zum Löschen von EventBridge Regeln finden Sie unter Regel deaktivieren oder löschen.

  • Testen Sie mit Step Functions Local, das die Verwendung von Ereignissen zum Ausführen von Aufgaben vom Typ Job (.sync) nicht unterstützt. Um Step Functions Local zu verwenden, nehmen Sie die IAM Rolle an, die von Ihrer Zustandsmaschine verwendet wird. Möglicherweise müssen Sie die Vertrauensstellung bearbeiten. Setzen Sie die AWS_SESSION_TOKEN Umgebungsvariablen AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, und auf die Werte der angenommenen Rolle und starten Sie dann Step Functions Local mitjava -jar StepFunctionsLocal.jar. Verwenden Sie zuletzt den AWS CLI mit dem --endpoint-url Parameter, um eine Zustandsmaschine zu erstellen, eine Ausführung zu starten und die Ausführungshistorie abzurufen. Weitere Informationen finden Sie unter Lokales Testen von Zustandsmaschinen in Step Functions.

Wenn eine Aufgabe, die das Run a Job (.sync) -Muster verwendet, beendet wird, versucht Step Functions nach besten Kräften, die Aufgabe abzubrechen. Dies erfordert die Erlaubnis für CancelStop,Terminate, oder Delete API Aktionen wie batch:TerminateJob oder. eks:DeleteCluster Wenn diese Berechtigungen in Ihrer Rolle fehlen, kann Step Functions Ihre Aufgabe nicht stornieren, und es können zusätzliche Kosten anfallen, während sie weiterhin ausgeführt wird. Weitere Informationen zum Stoppen von Aufgaben finden Sie unter Job ausführen.