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.

IAM-Richtlinien für integrierte Dienste

Wenn Sie eine Zustandsmaschine in der AWS Step Functions Konsole erstellen, erstellt Step Functions eine AWS Identity and Access Management (IAM-) Richtlinie, die auf den in Ihrer Zustandsmaschinen-Definition verwendeten Ressourcen wie folgt basiert:

  • 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 — sieheIAM-Richtlinien für AWS Elemental MediaConvert.)

  • Wenn Ihre Zustandsmaschine eine der AWS SDK-Integrationen verwendet, 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 auf der Grundlage Ihrer State-Machine-Definition generiert. Elemente in der Beispiel-Code, wie z. B. [[resourceName]], werden durch die statischen Ressourcen ersetzt, die in Ihrer Definition des Zustandsautomaten angegeben sind. Wenn Sie über mehrere statische Ressourcen verfügen, gibt es für jede Ressource einen Eintrag in der IAM-Rolle.

Dynamische und statische Ressourcen

Statische Ressourcen werden direkt im Aufgabenstatus Ihres Zustandsautomaten definiert. Wenn Sie die Informationen zu den 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 Pfade). 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 von ihnen zu erhalten. Die entsprechenden Richtlinien beinhalten mehr Berechtigungen als für Aufgaben, die die Muster „Antwort anfordern“ oder „Auf Rückruf warten“ verwenden. Informationen Muster der Serviceintegration 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 erforderlich, z. B. ecs:DescribeTasks für oder. 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 von AWS Services an Amazon gesendet EventBridge werden, werden mithilfe einer verwalteten Regel an Step Functions weitergeleitet und erfordern 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 Diensten.

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 Ihrem State Machine 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 --endpoint-url Parameter AWS CLI with the, um eine Zustandsmaschine zu erstellen, eine Ausführung zu starten und den Ausführungsverlauf abzurufen. Weitere Informationen finden Sie unter Zustandsmaschinen lokal testen.

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.

Richtlinienvorlagen, die zum Erstellen von IAM-Rollen verwendet werden

Die folgenden Themen enthalten die Richtlinienvorlagen, die verwendet werden, wenn Sie festlegen, dass Step Functions eine neue Rolle für Sie erstellt.

Anmerkung

Sehen Sie sich diese Vorlagen an, um zu verstehen, wie Step Functions Ihre IAM-Richtlinien erstellt, und als Beispiel dafür, wie Sie IAM-Richtlinien für Step Functions manuell erstellen, wenn Sie mit anderen AWS Services arbeiten. Weitere Informationen zu Step Functions Functions-Dienstintegrationen finden Sie unterVerwendung AWS Step Functions mit anderen Diensten.