Funktionsweise von AWS Step Functions mit IAM - 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.

Funktionsweise von AWS Step Functions mit IAM

AWS Step Functions kann Code ausführen und auf AWS-Ressourcen zugreifen (wie etwa Aufrufen einer AWS Lambda-Funktion). Zur Gewährleistung der Sicherheit müssen Sie Step Functions mithilfe einer IAM-Rolle Zugriff auf diese Ressourcen gewähren.

DieTutorials für Step Functionsin diesem Handbuch können Sie automatisch generierte IAM-Rollen nutzen, die fürAWSRegion, in der Sie die ZustandsMaschine erstellen. Sie können jedoch Ihre eigene IAM-Rolle für eine Zustandsmaschine erstellen.

Wenn Sie eine IAM-Richtlinie für Ihre Zustandsautomaten erstellen, sollte die Richtlinie die Berechtigungen enthalten, die von den Zustandsautomaten übernommen werden sollen. Sie können eine bereits zu verwendendeAWS-Managed Policy als Beispiel oder Sie können eine benutzerdefinierte Richtlinie von Grund auf neu erstellen, die Ihren spezifischen Anforderungen entspricht. Weitere Informationen finden Sie unterErstellen von IAM-Richtlinienin derIAM User Guide

Führen Sie die Schritte in diesem Abschnitt aus, um eine eigene IAM-Rolle für einen -Zustandsautomaten zu erstellen.

In diesem Beispiel erstellen Sie eine IAM-Rolle mit der Berechtigung zum Aufrufen einer Lambda-Funktion.

Erstellen einer Rolle für Step Functions

  1. Melden Sie sich bei der anIAM-Konsoleund dann wählen Sie dannRollen,Erstellen einer Rolle.

  2. Auf derSelect Typ der vertrauenswürdigen Entität wählenSeite, unterAWSBedienung, wählenStep Functionsaus der Liste und wählen Sie dannNächster: Berechtigungen.

  3. Auf derAngeschlossene BerechtigungsrichtlinieSeite, wählenNächster: Prüfen.

  4. Geben Sie auf der Seite Review (Prüfen) StepFunctionsLambdaRole für Role Name (Rollenname) ein und wählen Sie dann Create role (Rolle erstellen).

    Die IAM-Rolle erscheint in der Liste der Rollen.

Weitere Informationen zu IAM-Berechtigungen und -Richtlinien finden Sie unter.Zugriffsverwaltungin derIAM User Guide.

Vermeidung des dienstübergreifenden Confused Deputy

Ein verwirrter Stellvertreter ist eine Entität (ein Dienst oder ein Konto), die von einer anderen Entität gezwungen wird, eine Aktion auszuführen. InAWSkann der betriebsübergreifende Identitätswechsel auftreten, wenn ein -Service (derAufruf des Service) ruft einen anderen Dienst an (dersogenannter Service) enthalten. Der Anruf-Dienst kann so manipuliert werden, dass er seine Berechtigungen verwendet, um auf die Ressourcen eines anderen Kunden zu reagieren, auf die er sonst nicht zugreifen dürfte. Diese Art des Identitätswechsels kann konto- und serviceübergreifend erfolgen.

Um verwirrte Abgeordnete zu verhindern,AWSbietet Tools, mit denen Sie Ihre Daten für alle Services mit Serviceprinzipalen schützen können, die Zugriff auf Ressourcen in Ihrem Konto erhalten haben. Dieser Abschnitt konzentriert sich auf die dienstübergreifende Confused Deputy Prävention speziell fürAWS Step Functions; mehr zu diesem Thema erfahren Sie jedoch imConfusedAbschnitt desIAM User Guide.

Um die Berechtigungen zu beschränken, die IAM Step Functions für den Zugriff auf Ihre Ressourcen erteilt, empfehlen wir die Verwendung deraws:SourceArnundaws:SourceAccountGlobale Bedingungskontextschlüssel in Ihren Ressourcenrichtlinien. Beachten Sie, dass, wenn Sie diese beiden globalen Bedingungskontextschlüssel verwenden,aws:SourceArnWert enthält dieAWS-Konto-ID, dieaws:SourceAccountWert und dieAWS-Konto in deraws:SourceArnWert muss dasselbe verwendenAWSKonto-ID, wenn sie in derselben Richtlinienanweisung verwendet wird.

Anmerkung

Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen Bedingungskontextschlüssels aws:SourceArn mit dem vollständigen ARN der Ressource. Wenn Sie den vollständigen ARN nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie dieaws:SourceArnSchlüssel für globale Kontextbedingungen mit Platzhaltern (*) für die unbekannten Teile des ARN. Zum Beispiel arn:aws:states:*:111122223333:*.

Hier finden Sie ein Beispiel für einenvertrauenswürdige Richtliniedas zeigt, wie man es benutzen kannaws:SourceArnundaws:SourceAccountmit Step Functions, um das Confused Deputy Problem zu verhindern

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "states.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*" }, "StringEquals":{ "aws:SourceAccount":"111122223333" } } } ] }

Anfügen einer Inline-Richtlinie

Step Functions kann andere Dienste direkt in einemTaskZustand. Fügen Sie Inline-Richtlinien hinzu, damit Step Functions auf die API-Aktionen der Dienste zugreifen kann, die Sie steuern müssen.

  1. Öffnen Sie dieIAM-Konsole, wählenRollen, suchen Sie nach Ihrer Step Functions Functions-Rolle und wählen Sie diese Rolle aus.

  2. Wählen Sie Add inline Policy (Inline-Richtlinie auswählen) aus.

  3. Verwenden Sie den Visual Editor (visuellen Editor) oder die Registerkarte JSON zum Erstellen von Richtlinien für Ihre Rolle.

Weitere Informationen darüber, wie AWS Step Functions andere AWS-Services steuern kann, finden Sie unter Verwenden von AWS Step Functions mit sonstigen Services.

Anmerkung

Beispiele für IAM-Richtlinien, die von der Step Functions Functions-Konsole erstellt werden finden Sie unterIAM-Richtlinien für integrierte Dienste.