

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.

# Sicherheit in AWS Step Functions
<a name="security"></a>

Cloud-Sicherheit AWS hat höchste Priorität. Als AWS Kunde profitieren Sie von einer Rechenzentrums- und Netzwerkarchitektur, die darauf ausgelegt sind, die Anforderungen der sicherheitssensibelsten Unternehmen zu erfüllen.

Sicherheit ist eine gemeinsame Verantwortung von Ihnen AWS und Ihnen. Das [Modell der geteilten Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/) beschreibt dies als Sicherheit *der* Cloud und Sicherheit *in* der Cloud:
+ **Sicherheit der Cloud** — AWS ist verantwortlich für den Schutz der Infrastruktur, die AWS Dienste in der AWS Cloud ausführt. AWS bietet Ihnen auch Dienste, die Sie sicher nutzen können. Auditoren von Drittanbietern testen und überprüfen die Effektivität unserer Sicherheitsmaßnahmen im Rahmen der [AWS -Compliance-Programme](https://aws.amazon.com/compliance/programs/) regelmäßig. Weitere Informationen zu den Compliance-Programmen, die für gelten AWS Step Functions, finden Sie unter [AWS Services in Umfang nach Compliance-Programmen](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sicherheit in der Cloud** – Ihr Verantwortungsumfang wird durch den AWS -Dienst bestimmt, den Sie verwenden. Sie sind auch für andere Faktoren verantwortlich, etwa für die Vertraulichkeit Ihrer Daten, für die Anforderungen Ihres Unternehmens und für die geltenden Gesetze und Vorschriften. 

Diese Dokumentation hilft Ihnen zu verstehen, wie Sie das Modell der gemeinsamen Verantwortung bei der Verwendung von Step Functions anwenden können. In den folgenden Themen erfahren Sie, wie Sie Step Functions konfigurieren, um Ihre Sicherheits- und Compliance-Ziele zu erreichen. Sie lernen auch, wie Sie andere AWS Dienste nutzen können, die Ihnen helfen, Ihre Step Functions Functions-Ressourcen zu überwachen und zu sichern.

Step Functions verwendet IAM, um den Zugriff auf andere AWS Dienste und Ressourcen zu steuern. Eine Übersicht der Funktionsweise von IAM finden Sie unter [Übersicht über die Zugriffsverwaltung](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html) im *IAM-Benutzerhandbuch*. Eine Übersicht der Sicherheitsanmeldeinformationen finden Sie unter [AWS -Sicherheitsanmeldeinformationen](https://docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) in der *Allgemeine Amazon Web Services-Referenz*.

## Konformitätsprüfung für Step Functions
<a name="compliance"></a>

Externe Prüfer bewerten die Sicherheit und Einhaltung von Vorschriften im AWS Step Functions Rahmen mehrerer AWS Compliance-Programme. Hierzu zählen unter anderem SOC, PCI, FedRAMP und HIPAA.

Eine Liste der AWS Services im Rahmen bestimmter Compliance-Programme finden Sie unter [AWS Services im Umfang nach Compliance-Programmen AWS](https://aws.amazon.com/compliance/services-in-scope/) . Allgemeine Informationen finden Sie unter [AWS Compliance-Programme AWS](https://aws.amazon.com/compliance/programs/) .

Sie können Prüfberichte von Drittanbietern unter herunterladen AWS Artifact. Weitere Informationen finden Sie unter [Berichte herunterladen unter ](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Ihre Compliance-Verantwortung bei der Nutzung von Step Functions hängt von der Sensibilität Ihrer Daten, den Compliance-Zielen Ihres Unternehmens und den geltenden Gesetzen und Vorschriften ab. AWS stellt die folgenden Ressourcen zur Verfügung, die Sie bei der Einhaltung von Vorschriften unterstützen:
+ Schnellstartanleitungen zu [Sicherheit und Compliance Schnellstartanleitungen](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) zu — In diesen Bereitstellungshandbüchern werden architektonische Überlegungen erörtert und Schritte für die Implementierung von sicherheits- und Compliance-orientierten Basisumgebungen beschrieben. AWS
+ [Architecting for HIPAA Security and Compliance on Amazon Web Services](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/aws-step-functions.html) — In diesem Whitepaper wird beschrieben, wie Unternehmen HIPAA-konforme Anwendungen erstellen AWS können.
+ [AWS Ressourcen zur Einhaltung](https://aws.amazon.com/compliance/resources/) von — Diese Sammlung von Arbeitsmappen und Leitfäden kann auf Ihre Branche und Ihren Standort zutreffen.
+ [Bewertung von Ressourcen anhand von Regeln](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) im *AWS Config Entwicklerhandbuch* — Der AWS Config Service bewertet, wie gut Ihre Ressourcenkonfigurationen den internen Praktiken, Branchenrichtlinien und Vorschriften entsprechen.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— Dieser AWS Service bietet einen umfassenden Überblick über Ihren Sicherheitsstatus, sodass Sie überprüfen können AWS , ob Sie die Sicherheitsstandards und Best Practices der Branche einhalten.

## Resilienz in Step Functions
<a name="disaster-recovery-resiliency"></a>

Die AWS globale Infrastruktur basiert auf AWS Regionen und Availability Zones. AWS Regionen bieten mehrere physisch getrennte und isolierte Availability Zones, die über Netzwerke mit niedriger Latenz, hohem Durchsatz und hoher Redundanz miteinander verbunden sind. Mithilfe von Availability Zones können Sie Anwendungen und Datenbanken erstellen und ausführen, die automatisch Failover zwischen Zonen ausführen, ohne dass es zu Unterbrechungen kommt. Availability Zones sind besser verfügbar, fehlertoleranter und skalierbarer als herkömmliche Infrastrukturen mit einem oder mehreren Rechenzentren. 

Weitere Informationen zu AWS Regionen und Availability Zones finden Sie unter [AWS Globale](https://aws.amazon.com/about-aws/global-infrastructure/) Infrastruktur.

Neben der AWS globalen Infrastruktur bietet Step Functions mehrere Funktionen, um Ihre Anforderungen an Datenstabilität und Backup zu erfüllen.

## Infrastruktursicherheit in Step Functions
<a name="infrastructure-security"></a>

Als verwalteter Dienst ist er durch AWS globale Netzwerksicherheit geschützt. Informationen zu AWS Sicherheitsdiensten und zum AWS Schutz der Infrastruktur finden Sie unter [AWS Cloud-Sicherheit](https://aws.amazon.com/security/). Informationen zum Entwerfen Ihrer AWS Umgebung unter Verwendung der bewährten Methoden für die Infrastruktursicherheit finden Sie unter [Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) in *Security Pillar AWS Well‐Architected Framework*.

Sie verwenden AWS veröffentlichte API-Aufrufe für den Zugriff über das Netzwerk. Kunden müssen Folgendes unterstützen:
+ Transport Layer Security (TLS). Wir benötigen TLS 1.2 und empfehlen TLS 1.3.
+ Verschlüsselungs-Suiten mit Perfect Forward Secrecy (PFS) wie DHE (Ephemeral Diffie-Hellman) oder ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Die meisten modernen Systeme wie Java 7 und höher unterstützen diese Modi.

Sie können die AWS API-Operationen von jedem Netzwerkstandort aus aufrufen, unterstützt jedoch Step Functions keine ressourcenbasierten Zugriffsrichtlinien, die Einschränkungen auf der Quell-IP-Adresse beinhalten können. Sie können Step Functions Richtlinien auch verwenden, um den Zugriff von bestimmten Amazon Virtual Private Cloud (Amazon VPC) Endpunkten oder bestimmten Geräten aus zu steuern. VPCs Dadurch wird der Netzwerkzugriff auf eine bestimmte Step Functions Ressource effektiv nur von der spezifischen VPC innerhalb des AWS Netzwerks isoliert.

# Datenschutz und Verschlüsselung in Step Functions
<a name="data-protection"></a>

Das AWS [Modell](https://aws.amazon.com/compliance/shared-responsibility-model/) der gilt für den Datenschutz in AWS Step Functions. Wie in diesem Modell beschrieben, AWS ist verantwortlich für den Schutz der globalen Infrastruktur, auf der alle Systeme laufen AWS Cloud. Sie sind dafür verantwortlich, die Kontrolle über Ihre in dieser Infrastruktur gehosteten Inhalte zu behalten. Sie sind auch für die Sicherheitskonfiguration und die Verwaltungsaufgaben für die von Ihnen verwendeten AWS-Services verantwortlich. Weitere Informationen zum Datenschutz finden Sie unter [Häufig gestellte Fragen zum Datenschutz](https://aws.amazon.com/compliance/data-privacy-faq/). Informationen zum Datenschutz in Europa finden Sie im Blog-Beitrag [AWS -Modell der geteilten Verantwortung und in der DSGVO](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) im *AWS -Sicherheitsblog*.

Aus Datenschutzgründen empfehlen wir, dass Sie AWS-Konto Anmeldeinformationen schützen und einzelne Benutzer mit AWS IAM Identity Center oder AWS Identity and Access Management (IAM) einrichten. So erhält jeder Benutzer nur die Berechtigungen, die zum Durchführen seiner Aufgaben erforderlich sind. Außerdem empfehlen wir, die Daten mit folgenden Methoden schützen:
+ Verwenden Sie für jedes Konto die Multi-Faktor-Authentifizierung (MFA).
+ Wird verwendet SSL/TLS , um mit AWS Ressourcen zu kommunizieren. Wir benötigen TLS 1.2 und empfehlen TLS 1.3.
+ Richten Sie die API und die Protokollierung von Benutzeraktivitäten mit ein AWS CloudTrail. Informationen zur Verwendung von CloudTrail Pfaden zur Erfassung von AWS Aktivitäten finden Sie unter [Arbeiten mit CloudTrail Pfaden](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) im *AWS CloudTrail Benutzerhandbuch*.
+ Verwenden Sie AWS Verschlüsselungslösungen zusammen mit allen darin enthaltenen Standardsicherheitskontrollen AWS-Services.
+ Verwenden Sie erweiterte verwaltete Sicherheitsservices wie Amazon Macie, die dabei helfen, in Amazon S3 gespeicherte persönliche Daten zu erkennen und zu schützen.
+ Wenn Sie für den Zugriff AWS über eine Befehlszeilenschnittstelle oder eine API FIPS 140-3-validierte kryptografische Module benötigen, verwenden Sie einen FIPS-Endpunkt. Weitere Informationen über verfügbare FIPS-Endpunkte finden Sie unter [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Wir empfehlen dringend, in Freitextfeldern, z. B. im Feld **Name**, keine vertraulichen oder sensiblen Informationen wie die E-Mail-Adressen Ihrer Kunden einzugeben. Dies gilt auch, wenn Sie mit Step Functions oder anderen Funktionen AWS-Services über die Konsole AWS CLI, API oder arbeiten AWS SDKs. Alle Daten, die Sie in Tags oder Freitextfelder eingeben, die für Namen verwendet werden, können für Abrechnungs- oder Diagnoseprotokolle verwendet werden. Wenn Sie eine URL für einen externen Server bereitstellen, empfehlen wir dringend, keine Anmeldeinformationen zur Validierung Ihrer Anforderung an den betreffenden Server in die URL einzuschließen.

Mit vom Kunden verwalteten AWS KMS Schlüsseln können Sie Kundendaten, einschließlich **geschützter Gesundheitsinformationen (PHI)**, vor unbefugtem Zugriff schützen. Step Functions ist integriert CloudTrail, sodass Sie die neuesten Ereignisse in der CloudTrail Konsole im Ereignisverlauf anzeigen und überprüfen können.

**Topics**
+ [Verschlüsselung von Daten im Ruhezustand in Step Functions](encryption-at-rest.md)
+ [Verschlüsselung von Daten bei der Übertragung in Step Functions](encryption-in-transit.md)

# Verschlüsselung von Daten im Ruhezustand in Step Functions
<a name="encryption-at-rest"></a>

**Lesen Sie den Blog**  
Weitere Informationen zu kundenverwalteten Schlüsseln finden Sie [unter Stärkung der Datensicherheit mit einem vom Kunden verwalteten AWS KMS](https://aws.amazon.com/blogs/compute/strengthening-data-security-in-aws-step-functions-with-a-customer-managed-aws-kms-key/) Schlüssel

AWS Step Functions verschlüsselt Ihre Daten im Ruhezustand immer mit transparenter serverseitiger Verschlüsselung. Die standardmäßige Verschlüsselung von Daten im Ruhezustand reduziert den betrieblichen Aufwand und die Komplexität, die mit dem Schutz vertraulicher Daten verbunden sind. Sie können sicherheitsrelevante Anwendungen entwickeln, die strenge Verschlüsselungsvorschriften und regulatorische Anforderungen erfüllen.

Sie können diese Verschlüsselungsebene zwar nicht deaktivieren oder einen anderen Verschlüsselungstyp auswählen, aber Sie können eine zweite Verschlüsselungsebene über den vorhandenen AWS eigenen Verschlüsselungsschlüsseln hinzufügen, indem Sie bei der Erstellung Ihrer Zustandsmaschine und Ihrer Aktivitätsressourcen einen vom Kunden verwalteten Schlüssel wählen:
+ **Vom Kunden verwaltete Schlüssel** — Step Functions unterstützt die Verwendung eines symmetrischen, vom Kunden verwalteten Schlüssels, den Sie erstellen, besitzen und verwalten, um eine zweite Verschlüsselungsebene über der vorhandenen AWS eigenen Verschlüsselung hinzuzufügen. Da Sie die volle Kontrolle über diese Verschlüsselungsebene haben, können Sie beispielsweise folgende Aufgaben ausführen: 
  + Festlegung und Pflege wichtiger Richtlinien
  + Festlegung und Aufrechterhaltung von IAM-Richtlinien und -Zuschüssen
  + Aktivieren und Deaktivieren wichtiger Richtlinien
  + Kryptographisches Material mit rotierendem Schlüssel
  + Hinzufügen von -Tags
  + Erstellen von Schlüsselaliasen
  + Schlüssel für das Löschen von Schlüsseln planen

  Weitere Informationen finden Sie unter vom [Kunden verwalteter Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) im *AWS Key Management Service Entwicklerhandbuch*. 

Sie können Ihre Daten mit einem **vom Kunden verwalteten Schlüssel** für AWS Step Functions Zustandsmaschinen und Aktivitäten verschlüsseln. **Sie können einen Zeitraum für die Wiederverwendung von symmetrischen AWS KMS Schlüsseln und Datenschlüsseln konfigurieren, wenn Sie einen **State Machine** erstellen oder aktualisieren und wenn Sie eine Aktivität erstellen.** Der Ausführungsverlauf und die State-Machine-Definition werden mit dem Schlüssel verschlüsselt, der auf den State Machine angewendet wird. Aktivitätseingaben werden mit dem Schlüssel verschlüsselt, der auf die Aktivität angewendet wurde. 

Mit vom Kunden verwalteten AWS KMS Schlüsseln können Sie Kundendaten, einschließlich **geschützter Gesundheitsinformationen (PHI)**, vor unbefugtem Zugriff schützen. Step Functions ist integriert CloudTrail, sodass Sie die neuesten Ereignisse in der CloudTrail Konsole im Ereignisverlauf anzeigen und überprüfen können.

Informationen zu AWS KMS finden Sie unter [Was ist AWS Key Management Service?](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 

**Anmerkung**  
Step Functions ermöglicht automatisch und kostenlos die Verschlüsselung im Ruhezustand mit AWS eigenen Schlüsseln. Bei Verwendung eines vom Kunden verwalteten Schlüssels fallen jedoch AWS KMS Gebühren an. Informationen zu Preisen finden Sie unter [AWS Key Management Service -Preise](https://aws.amazon.com/kms/pricing/).

## Verschlüsselung mit einem vom Kunden verwalteten Schlüssel
<a name="enable-custom-encryption"></a>

 Step Functions entschlüsselt Nutzdaten mit Ihrem vom Kunden verwalteten AWS KMS Schlüssel, bevor sie zur Ausführung einer Aufgabe an einen anderen Dienst weitergegeben werden. Die Daten werden bei der Übertragung mit Transport Layer Security (TLS) verschlüsselt. 

 Wenn Daten von einem integrierten Service zurückgegeben werden, verschlüsselt Step Functions die Daten mit Ihrem vom Kunden verwalteten AWS KMS Schlüssel. Sie können denselben Schlüssel verwenden, um die Verschlüsselung für viele AWS Dienste konsistent anzuwenden. 

Sie können einen vom Kunden verwalteten Schlüssel mit den folgenden Ressourcen verwenden:
+ **State Machine** — sowohl Standard- als auch Express-Workflowtypen
+ **Aktivität**

Sie können den Datenschlüssel angeben, indem Sie eine **KMS-Schlüssel-ID** eingeben, mit der Step Functions Ihre Daten verschlüsselt.
+ **KMS-Schlüssel-ID** — [Schlüssel-ID](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) für einen vom AWS KMS Kunden verwalteten Schlüssel in Form einer Schlüssel-ID, Schlüssel-ARN, Aliasname oder Alias-ARN.

## Erstellen Sie eine State Machine mit einem vom Kunden verwalteten Schlüssel
<a name="create-state-machine-with-cmk"></a>

**Voraussetzung:** Bevor Sie eine Zustandsmaschine mit vom Kunden verwalteten AWS KMS Schlüsseln erstellen können, muss Ihr Benutzer oder Ihre Rolle über AWS KMS Berechtigungen für `DescribeKey` und verfügen`GenerateDataKey`.

Sie können die folgenden Schritte in der AWS Konsole, über die API oder durch Bereitstellung der Infrastruktur mithilfe von CloudFormation Ressourcen ausführen. (CloudFormation Beispiele werden später in diesem Handbuch vorgestellt.)

### Schritt 1: AWS KMS Schlüssel erstellen
<a name="create-key"></a>

 Sie können einen symmetrischen, vom Kunden verwalteten Schlüssel mit der AWS KMS Konsole oder AWS KMS APIs erstellen.

**Einen symmetrischen kundenverwalteten Schlüssel erstellen**

Folgen Sie den Schritten zum [Erstellen eines symmetrischen kundenverwalteten Schlüssels](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) im *Entwicklerhandbuch zum AWS Key Management Service *.

**Anmerkung**  
*Optional*: Wenn Sie einen Schlüssel erstellen, können Sie **Schlüsseladministratoren** wählen. Den ausgewählten Benutzern oder Rollen wird Zugriff auf die Verwaltung des Schlüssels gewährt, z. B. die Aktivierung oder Deaktivierung des Schlüssels über die API. Sie können auch **Hauptbenutzer** auswählen. Diesen Benutzern oder Rollen wird die Möglichkeit gewährt, den AWS KMS Schlüssel für kryptografische Operationen zu verwenden.

### Schritt 2: Legen Sie die AWS KMS Schlüsselrichtlinie fest
<a name="create-key-policy"></a>

Schlüsselrichtlinien steuern den Zugriff auf den vom Kunden verwalteten Schlüssel. Jeder vom Kunden verwaltete Schlüssel muss über genau eine Schlüsselrichtlinie verfügen, die aussagt, wer den Schlüssel wie verwenden kann. Wenn Sie Ihren kundenseitig verwalteten Schlüssel erstellen, können Sie eine Schlüsselrichtlinie angeben. Weitere Informationen finden Sie unter [Verwaltung des Zugriffs auf vom Kunden verwaltete Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access) im *AWS Key Management Service Entwicklerhandbuch*.

Im Folgenden finden Sie ein Beispiel für eine AWS KMS Schlüsselrichtlinie von der Konsole aus, ohne **Schlüsseladministratoren** oder **Schlüsselbenutzer**:

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "key-consolepolicy-1",
  "Statement": [
    {
      "Sid": "Enable IAM User Permissions for the key",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": "kms:*",
      "Resource": "*"
    }
  ]
}
```

Informationen zur [Angabe von Berechtigungen in einer Richtlinie und zur Problembehandlung beim](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#overview-policy-elements) [Schlüsselzugriff](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html#example-no-iam) finden Sie im *AWS Key Management Service Entwicklerhandbuch*. 

### Schritt 3: Fügen Sie eine Schlüsselrichtlinie zum Verschlüsseln von Protokollen CloudWatch hinzu
<a name="encrypt-logs"></a>

 Step Functions ist CloudWatch für die Protokollierung und Überwachung integriert. Wenn Sie die serverseitige Verschlüsselung für Ihren State Machine mithilfe Ihres eigenen KMS-Schlüssels aktivieren und die CloudWatch Protokollintegration aktivieren, müssen Sie die `delivery.logs.amazonaws.com` Ausführung von `kms:Decrypt` Aktionen gemäß Ihrer AWS KMS Schlüsselrichtlinie zulassen:

```
{
  "Sid": "Enable log service delivery for integrations",
  "Effect": "Allow",
  "Principal": {
    "Service": "delivery.logs.amazonaws.com"
  },
  "Action": "kms:Decrypt",
  "Resource": "*"
}
```

Wenn Sie die Zustandsmaschinen-Verschlüsselung mit einem AWS KMS Schlüssel aktivieren und auf Ihrem Zustandsmaschine die CloudWatch Logs-Integration aktiviert ist, benötigt die Ausführungsrolle des Zustandsmaschinen die folgende Richtlinie:

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKMSPermissionForCloudWatchLogGroup",
      "Effect": "Allow",
      "Action": "kms:GenerateDataKey",
      "Resource": "arn:aws:kms:us-east-1:123456789012:key/keyId",
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
        }
      }
    }
  ]
}
```

### Schritt 4: CloudWatch Protokollgruppe verschlüsseln *(optional)*
<a name="encrypt-cloudwatch-log-group"></a>

Sie können die Verschlüsselung der Protokolle in einer CloudWatch Protokollgruppe mit Ihrem eigenen AWS KMS Schlüssel aktivieren. Dazu müssen Sie diesem AWS KMS Schlüssel auch die folgende Richtlinie hinzufügen.

**Anmerkung**  
Sie können dieselben oder unterschiedliche AWS KMS Schlüssel wählen, um Ihre Protokolle und Ihre State-Machine-Definitionen zu verschlüsseln.

****  

```
{
  "Id": "key-consolepolicy-logging",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Enable log service for a single log group",
      "Effect": "Allow",
      "Principal": {
        "Service": "logs.us-east-1.amazonaws.com"
      },
      "Action": [
        "kms:Encrypt*",
        "kms:Decrypt*",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:Describe*"
      ],
      "Resource": "*",
      "Condition": {
        "ArnEquals": {
          "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:123456789012:log-group:LOG_GROUP_NAME"
        }
      }
    }
  ]
}
```

**Anmerkung**  
`Condition`In diesem Abschnitt wird der AWS KMS Schlüssel auf einen einzelnen Protokollgruppen-ARN beschränkt.

**Anmerkung**  
Weitere Informationen CloudWatch zum Festlegen von Berechtigungen für den AWS KMS Schlüssel für Ihre Protokollgruppe finden Sie in der [Protokolldokumentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html#cmk-permissions).

### Schritt 5: State-Machine erstellen
<a name="create-state-machine"></a>

Nachdem Sie einen Schlüssel erstellt und die Richtlinie eingerichtet haben, können Sie den Schlüssel verwenden, um einen neuen Zustandsmaschine zu erstellen.

Wählen Sie bei der Erstellung der Zustandsmaschine **Zusätzliche Konfiguration** und anschließend die Verschlüsselung mit dem vom Kunden verwalteten Schlüssel aus. Anschließend können Sie Ihren Schlüssel auswählen und den Zeitraum für die Wiederverwendung von Datenschlüsseln zwischen 1 Minute und 15 Minuten festlegen.

Optional können Sie die Protokollierung aktivieren, indem Sie eine Protokollebene festlegen und die Protokollgruppe mit Ihrem AWS KMS Schlüssel verschlüsseln.

**Anmerkung**  
Sie können die Verschlüsselung nur für eine **neue Protokollgruppe** in der Step Functions-Konsole aktivieren. Informationen zum Zuordnen eines AWS KMS Schlüssels zu einer vorhandenen Protokollgruppe finden Sie unter [Zuordnen eines AWS KMS Schlüssels zu einer Protokollgruppe](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html#associate-cmk).

Um eine Ausführung für Standard-Workflows und asynchrone Express-Workflows mit vom Kunden verwalteten Schlüsseln erfolgreich zu starten, sind Ihre Ausführungsrolle `kms:Decrypt` und `kms:GenerateDataKey` Berechtigungen erforderlich. Die Ausführungsrolle für die Ausführung von Synchronous Express erfordert. `kms:Decrypt` Wenn Sie in der Konsole eine Zustandsmaschine erstellen und „**Neue Rolle erstellen**“ wählen, werden diese Berechtigungen automatisch für Sie übernommen.

Im Folgenden finden Sie ein Beispiel für eine Ausführungsrollenrichtlinie:

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKMSPermissionsForStepFunctionsWorkflowExecutions",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/keyId"
      ],
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:aws:states:stateMachineArn": [
            "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName"
          ]
        }
      }
    }
  ]
}
```

### Schritt 6: Rufen Sie die mit Ihrem AWS KMS Schlüssel verschlüsselte Zustandsmaschine auf
<a name="invoke-encrypted-state-machine"></a>

Sie können Ihre verschlüsselte Zustandsmaschine wie gewohnt aufrufen, und Ihre Daten werden mit Ihrem vom Kunden verwalteten Schlüssel verschlüsselt.

## Erstellen Sie eine Aktivität mit einem vom Kunden verwalteten Schlüssel
<a name="create-activity-with-cmk"></a>

Das Erstellen einer Step Functions Functions-Aktivität mit einem vom Kunden verwalteten Schlüssel ähnelt dem Erstellen einer Zustandsmaschine mit einem vom Kunden verwalteten Schlüssel. Bevor Sie eine Aktivität mit vom Kunden verwalteten AWS KMS Schlüsseln erstellen können, benötigt Ihr Benutzer oder Ihre Rolle lediglich die AWS KMS entsprechenden Berechtigungen`DescribeKey`. Bei der Erstellung der Aktivität wählen Sie den Schlüssel aus und legen die Verschlüsselungskonfigurationsparameter fest.

Beachten Sie, dass die Ressourcen der Step Functions Functions-Aktivität **unveränderlich** bleiben. Sie können den ARN `encryptionConfiguration` für eine Aktivität einer vorhandenen Aktivität nicht aktualisieren. Sie müssen eine neue Aktivitätsressource erstellen. Aufrufer der Activity API-Endpunkte müssen über die `kms:DescribeKey` erforderlichen Berechtigungen verfügen, um erfolgreich eine Aktivität mit einem AWS KMS Schlüssel erstellen zu können.

Wenn die vom Kunden verwaltete Schlüsselverschlüsselung für eine Aktivitätsaufgabe aktiviert ist, benötigt `kms:GenerateDataKey` die State-Machine-Ausführungsrolle eine `kms:Decrypt` Genehmigung für den Aktivitätsschlüssel. Wenn Sie diese Zustandsmaschine von der Step Functions Functions-Konsole aus erstellen, fügt die Funktion zur auto Rollenerstellung diese Berechtigungen hinzu. 

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKMSPermissionsForStepFunctionsActivities",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/keyId"
      ],
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:aws:states:activityArn": [
            "arn:aws:states:us-east-1:123456789012:activity:activityName"
          ]
        }
      }
    }
  ]
}
```

## Definieren Sie die AWS KMS Berechtigungsrichtlinien mit bestimmten Bedingungen
<a name="scope-down-kms-permission-policies-with-conditions"></a>

Sie können den *Verschlüsselungskontext* in Schlüsselrichtlinien und IAM-Richtlinien verwenden, `conditions` um den Zugriff auf Ihren symmetrischen, vom Kunden verwalteten Schlüssel zu kontrollieren. Um die Verwendung eines AWS KMS Schlüssels auf Anfragen von Step Functions im Namen einer bestimmten Rolle zu beschränken, können Sie die `kms:ViaService` Bedingung verwenden.

### Geltungsbereich mit Verschlüsselungskontext
<a name="stepfunctions-encryption-context"></a>

Ein [Verschlüsselungskontext](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) ist ein optionaler Satz von Schlüssel-Wert-Paaren, die zusätzliche kontextbezogene Informationen zu den Daten enthalten.

AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten, um die authentifizierte Verschlüsselung zu unterstützen. Wenn Sie einen Verschlüsselungskontext in eine Anforderung zur Verschlüsselung von Daten einbeziehen, wird der Verschlüsselungskontext AWS KMS an die verschlüsselten Daten gebunden. Zur Entschlüsselung von Daten müssen Sie denselben Verschlüsselungskontext in der Anfrage übergeben.

Step Functions bietet einen Verschlüsselungskontext für AWS KMS kryptografische Operationen, wobei der Schlüssel `aws:states:stateMachineArn` für State Machines oder `aws:states:activityArn` für Activities ist und der Wert die [Ressource Amazon Resource Name](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) (ARN) ist.

**Example**  

```
"encryptionContext": {"aws:states:stateMachineArn": "arn:aws:states:region:account-id:stateMachine:stateMachineName"}
```

**Example**  

```
"encryptionContext": {"aws:states:activityArn": "arn:aws:states:region:account-id:activity:activityName"}
```

Das folgende Beispiel zeigt, wie die Verwendung eines AWS KMS Schlüssels für Ausführungsrollen mit `kms:EncryptionContext` und dem `aws:states:stateMachineArn` Kontextschlüssel auf bestimmte Zustandsmaschinen beschränkt werden kann: 

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowKeyManagement",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:123456789012:key/keyId"
      ],
      "Condition": {
        "StringEquals": {
          "kms:EncryptionContext:aws:states:stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:stateMachineName"
        }
      }
    }
  ]
}
```

### Gültigkeitsbereich mit kms: ViaService
<a name="stepfunctions-via-service"></a>

Der `kms:ViaService` Bedingungsschlüssel beschränkt die Verwendung eines AWS Key Management Service Schlüssels auf Anfragen von bestimmten AWS Diensten.

Die folgende Beispielrichtlinie verwendet die `kms:ViaService` Bedingung, um zuzulassen, dass der AWS KMS Schlüssel nur dann für bestimmte Aktionen verwendet wird, wenn die Anforderung von Step Functions in der `us-east-1` Region stammt und im Namen von handelt: ExampleRole 

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow access for Key Administrators in a region",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:role/ExampleRole"
      },
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "states.us-east-1.amazonaws.com"
        }
      }
    }
  ]
}
```

**Anmerkung**  
Die `kms:ViaService` Bedingung gilt nur, wenn der API-Aufrufer AWS KMS Berechtigungen benötigt (z. B.`CreateStateMachine`, `CreateActivity``GetActivityTask`, usw.). Das Hinzufügen einer `kms:ViaService` Bedingung zu einer **Ausführungsrolle** kann verhindern, dass eine neue Ausführung gestartet wird, oder dass eine laufende Ausführung fehlschlägt.

## Erforderliche Berechtigungen für API-Aufrufer
<a name="using-api-with-encryption-required-permissions"></a>

Um Step Functions Functions-API-Aktionen aufzurufen, die verschlüsselte Daten zurückgeben, benötigen Aufrufer AWS KMS Berechtigungen. Alternativ verfügen einige API-Aktionen über die Option (`METADATA_ONLY`), um nur Metadaten zurückzugeben, sodass keine AWS KMS Berechtigungen erforderlich sind. Weitere Informationen finden Sie in der Step Functions API.

Damit eine Ausführung erfolgreich abgeschlossen werden kann, wenn die vom Kunden verwaltete Schlüsselverschlüsselung verwendet wird, müssen die Ausführungsrolle `kms:GenerateDataKey` und die `kms:Decrypt` Berechtigungen für die von der Zustandsmaschine verwendeten AWS KMS Schlüssel erteilt werden.

Die folgende Tabelle zeigt die AWS KMS Berechtigungen, die Sie Step Functions Functions-API-Aufrufern zur Verfügung stellen müssen, um den ** AWS KMS Schlüssel einer State Machine** zu APIs verwenden. Sie können die Berechtigungen für die Schlüsselrichtlinie oder die IAM-Richtlinie für die Rolle bereitstellen. 


|  |  | 
| --- |--- |
|  APIs mithilfe des Schlüssels von AWS KMS State Machine  |  Vom Anrufer erforderlich  | 
|  CreateStateMachine  |  kms:DescribeKey, kms:GenerateDataKey  | 
|  UpdateStateMachine  |  kms:DescribeKey, kms:GenerateDataKey  | 
|  DescribeStateMachine  |  kms:Entschlüsseln  | 
|  DescribeStateMachineForExecution  |  kms:Entschlüsseln  | 
|  StartExecution  |  --  | 
|  StartSyncExecution  |  kms:Entschlüsseln  | 
|  SendTaskSuccess  |  --  | 
|  SendTaskFailure  |  --  | 
|  StopExecution  |  --  | 
|  RedriveExecution  |  --  | 
|  DescribeExecution  |  kms:Entschlüsseln  | 
|  GetExecutionHistory  |  kms:Entschlüsseln  | 

 Die folgende Tabelle zeigt die AWS KMS Berechtigungen, die Sie Step Functions Functions-API-Aufrufern für die APIs Verwendung eines ** AWS KMS Aktivitätsschlüssels** gewähren müssen. Sie können die Berechtigungen in der Schlüsselrichtlinie oder der IAM-Richtlinie für die Rolle angeben. 


|  |  | 
| --- |--- |
|  APIs mithilfe des Schlüssels von AWS KMS Activity  |  Vom Anrufer erforderlich  | 
|  CreateActivity  |  kms:DescribeKey  | 
|  GetActivityTask  |  kms:Entschlüsseln  | 

**Wann erteile ich der Rolle „Anrufer“ oder „Ausführung“ Berechtigungen?**  
Wenn eine IAM-Rolle oder ein IAM-Benutzer die Step Functions Functions-API aufruft, ruft der Step Functions Functions-Dienst im Namen des API-Aufrufers AWS KMS auf. In diesem Fall müssen Sie dem AWS KMS API-Aufrufer die Erlaubnis erteilen. Wenn eine Ausführungsrolle AWS KMS direkt aufruft, müssen Sie der Ausführungsrolle AWS KMS Berechtigungen erteilen.

## CloudFormation Ressourcen für die Verschlüsselungskonfiguration
<a name="cfn-resources-for-encryption-configuration"></a>

 CloudFormation Ressourcentypen für Step Functions können Zustandsmaschinen- und Aktivitätsressourcen mit Verschlüsselungskonfigurationen bereitstellen. 

 Standardmäßig bietet Step Functions eine transparente serverseitige Verschlüsselung. Beides [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html)und [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html)akzeptieren Sie eine optionale `EncryptionConfiguration` Eigenschaft, mit der ein vom Kunden verwalteter AWS KMS Schlüssel für die serverseitige Verschlüsselung konfiguriert werden kann. 

**Voraussetzung:** Bevor Sie eine Zustandsmaschine mit vom Kunden verwalteten AWS KMS Schlüsseln erstellen können, muss Ihr Benutzer oder Ihre Rolle über AWS KMS Berechtigungen für `DescribeKey` und `GenerateDataKey` verfügen.

 Updates für StateMachine erfordert [Keine Unterbrechung](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt). Aktualisierungen der Aktivitätsressourcen erfordern: [Ersatz](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement). 

 Verwenden Sie die folgende Syntax, um eine **`EncryptionConfiguration`**Eigenschaft in Ihrer CloudFormation Vorlage zu deklarieren: 

 **JSON**

```
{
  "KmsKeyId" : String,
  "KmsDataKeyReusePeriodSeconds" : Integer,
  "Type" : String
}
```

 **YAML**

```
KmsKeyId: String
KmsDataKeyReusePeriodSeconds: Integer
Type: String
```

 **Eigenschaften**
+ **Typ** — Verschlüsselungsoption für den Zustandsmaschine oder die Aktivität. *Zulässige Werte*: `CUSTOMER_MANAGED_KMS_KEY` \$1 `AWS_OWNED_KEY`
+ **KmsKeyId**— Alias, Alias-ARN, Schlüssel-ID oder Schlüssel-ARN des symmetrischen AWS KMS Verschlüsselungsschlüssels, der den Datenschlüssel verschlüsselt. Um einen AWS KMS Schlüssel in einem anderen AWS Konto anzugeben, muss der Kunde den Schlüssel-ARN oder den Alias-ARN verwenden. Informationen kmsKeyId dazu finden Sie [KeyId](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)in den AWS KMS Dokumenten.
+ **KmsDataKeyReusePeriodSeconds**- Maximale Dauer, für die SFN Datenschlüssel wiederverwendet. Wenn der Zeitraum abgelaufen ist, wird Step Functions aufgerufen`GenerateDataKey`. Diese Einstellung kann nur festgelegt werden, wenn **Type** auf steht`CUSTOMER_MANAGED_KMS_KEY`. Der Wert kann zwischen 60 und 900 Sekunden liegen. Der Standardwert beträgt 300 Sekunden.

### CloudFormation Beispiele
<a name="cfn-examples"></a>

#### Beispiel: StateMachine mit vom Kunden verwaltetem Schlüssel
<a name="statemachine-with-managed-key"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Description: An example template for a Step Functions State Machine.
Resources:
  MyStateMachine:
    Type: AWS::StepFunctions::StateMachine
    Properties:
      StateMachineName: HelloWorld-StateMachine
      Definition:
        StartAt: PassState
        States:
          PassState:
            Type: Pass
            End: true
      RoleArn: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/example"
      EncryptionConfiguration:
        KmsKeyId: !Ref MyKmsKey
        KmsDataKeyReusePeriodSeconds: 100
        Type: CUSTOMER_MANAGED_KMS_KEY

  MyKmsKey:
    Type: AWS::KMS::Key
    Properties:
      Description: Symmetric KMS key used for encryption/decryption
```

#### Beispiel: Aktivität mit vom Kunden verwaltetem Schlüssel
<a name="activity-with-managed-key"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Description: An example template for a Step Functions Activity.
Resources:
  Activity:
    Type: AWS::StepFunctions::Activity
    Properties:
      Name: ActivityWithKmsEncryption
      EncryptionConfiguration:
        KmsKeyId: !Ref MyKmsKey
        KmsDataKeyReusePeriodSeconds: 100
        Type: CUSTOMER_MANAGED_KMS_KEY

  MyKmsKey:
    Type: AWS::KMS::Key
    Properties:
      Description: Symmetric KMS key used for encryption/decryption
```

#### Um die Verschlüsselung für eine Aktivität zu aktualisieren, muss eine neue Ressource erstellt werden
<a name="updating-encryption-for-an-activity-requires-creating-a-new-resource"></a>

 Die Aktivitätskonfiguration ist unveränderlich und die Ressourcennamen müssen eindeutig sein. Um vom Kunden verwaltete Schlüssel für die Verschlüsselung festzulegen, müssen Sie eine **neue Aktivität** erstellen. Wenn Sie versuchen, die Konfiguration in Ihrer CFN-Vorlage für eine bestehende Aktivität zu ändern, erhalten Sie eine `ActivityAlreadyExists` Ausnahme. 

 Um Ihre Aktivität so zu aktualisieren, dass sie vom Kunden verwaltete Schlüssel enthält, geben Sie in Ihrer CFN-Vorlage einen neuen Namen für die Aktivität ein. Im Folgenden finden Sie ein Beispiel, das eine neue Aktivität mit einer vom Kunden verwalteten Schlüsselkonfiguration erstellt: 

 **Bestehende Aktivitätsdefinition**

```
AWSTemplateFormatVersion: '2010-09-09'
  Description: An example template for a new Step Functions Activity.
  Resources:
    Activity:
    Type: AWS::StepFunctions::Activity
    Properties:
      Name: ActivityName
      EncryptionConfiguration:
        Type: AWS_OWNED_KEY
```

 **Neue Aktivitätsdefinition**

```
AWSTemplateFormatVersion: '2010-09-09'
  Description: An example template for a Step Functions Activity.
  Resources:
    Activity:
      Type: AWS::StepFunctions::Activity
      Properties:
        Name: ActivityWithKmsEncryption
        EncryptionConfiguration:
          KmsKeyId: !Ref MyKmsKey
          KmsDataKeyReusePeriodSeconds: 100
          Type: CUSTOMER_MANAGED_KMS_KEY

    MyKmsKey:
      Type: AWS::KMS::Key
      Properties:
        Description: Symmetric KMS key used for encryption/decryption
```

## Überwachung der Verwendung Ihres Verschlüsselungsschlüssels
<a name="monitoring-encryption-keys"></a>

Wenn Sie einen vom AWS KMS Kunden verwalteten Schlüssel verwenden, um Ihre Step Functions-Ressourcen CloudTrail zu verschlüsseln, können Sie damit Anfragen verfolgen, an AWS KMS die Step Functions sendet.

Sie können den Verschlüsselungskontext auch in Prüfaufzeichnungen und Protokollen verwenden, um festzustellen, wie der vom Kunden verwaltete Schlüssel verwendet wird. Der Verschlüsselungskontext erscheint auch in Protokollen, die von [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)generiert wurden.

Die folgenden Beispiele sind CloudTrail Ereignisse für`Decrypt`, und `GenerateDataKey` zur Überwachung von AWS KMS Vorgängen`DescribeKey`, die von Step Functions aufgerufen werden, um auf Daten zuzugreifen, die mit Ihrem vom Kunden verwalteten Schlüssel verschlüsselt wurden:

------
#### [ Decrypt ]

Wenn Sie auf eine verschlüsselte Zustandsmaschine oder Aktivität zugreifen, ruft Step Functions den `Decrypt` Vorgang auf, um den gespeicherten verschlüsselten Datenschlüssel für den Zugriff auf die verschlüsselten Daten zu verwenden. 

Das folgende Beispielereignis zeichnet den Vorgang `Decrypt` auf:

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "111122223333:Sampleuser01",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
    "accountId": "111122223333",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "111122223333:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "userName": "Admin"
      },
      "attributes": {
        "creationDate": "2024-07-05T21:06:27Z",
        "mfaAuthenticated": "false"
      }
    },
    "invokedBy": "states.amazonaws.com"
  },
  "eventTime": "2024-07-05T21:12:21Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "Decrypt",
  "awsRegion": "aa-example-1",
  "sourceIPAddress": "states.amazonaws.com",
  "userAgent": "states.amazonaws.com",
  "requestParameters": {
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "encryptionContext": {
            "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1"
        }
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ DescribeKey ]

Step Functions überprüft anhand des `DescribeKey` Vorgangs, ob der vom AWS KMS Kunden verwaltete Schlüssel, der mit Ihrer State Machine oder Activity verknüpft ist, im Konto und in der Region vorhanden ist.

Das folgende Beispielereignis zeichnet den Vorgang `DescribeKey` auf:

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "111122223333:Sampleuser01",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
    "accountId": "111122223333",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "111122223333:Sampleuser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
        "accountId": "111122223333",
        "userName": "Admin"
      },
      "attributes": {
        "creationDate": "2024-07-05T21:06:27Z",
        "mfaAuthenticated": "false"
      }
    },
    "invokedBy": "states.amazonaws.com"
  },
  "eventTime": "2024-07-05T21:12:21Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "DescribeKey",
  "awsRegion": "aa-example-1",
  "sourceIPAddress": "states.amazonaws.com",
  "userAgent": "states.amazonaws.com",
  "requestParameters": {
    "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
  },
  "responseElements": null,
  "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "readOnly": true,
  "resources": [
    {
      "accountId": "111122223333",
      "type": "AWS::KMS::Key",
      "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "recipientAccountId": "111122223333",
  "eventCategory": "Management",
  "sessionCredentialFromConsole": "true"
}
```

------
#### [ GenerateDataKey ]

Wenn Sie einen vom AWS KMS Kunden verwalteten Schlüssel für Ihre Zustandsmaschine oder Aktivität aktivieren, sendet Step Functions eine `GenerateDataKey` Anfrage zum Abrufen eines Datenschlüssels für die verschlüsselten Zustandsmaschinen-Definitions- oder Ausführungsdaten.

Das folgende Beispielereignis zeichnet den Vorgang `GenerateDataKey` auf:

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "111122223333:Sampleuser01",
    "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
    "accountId": "111122223333",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "111122223333:Sampleuser01",
        "arn": "arn:aws:iam::111122223333:role/Admin",
        "accountId": "111122223333",
        "userName": "Admin"
      },
      "attributes": {
        "creationDate": "2024-07-05T21:06:27Z",
        "mfaAuthenticated": "false"
      }
    },
    "invokedBy": "states.amazonaws.com"
  },
  "eventTime": "2024-07-05T21:12:21Z",
  "eventSource": "kms.amazonaws.com",
  "eventName": "GenerateDataKey",
  "awsRegion": "aa-example-1",
  "sourceIPAddress": "states.amazonaws.com",
  "userAgent": "states.amazonaws.com",
  "requestParameters": {
    "keySpec": "AES_256",
    "encryptionContext": {
      "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1"
    },
    "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
  },
  "responseElements": null,
  "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
  "readOnly": true,
  "resources": [
    {
      "accountId": "111122223333",
      "type": "AWS::KMS::Key",
      "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": true,
  "recipientAccountId": "111122223333",
  "eventCategory": "Management"
}
```

------

## FAQs
<a name="faqs"></a>

### Was passiert, wenn mein Schlüssel zum Löschen markiert oder gelöscht wird? AWS KMS
<a name="what-happens-if-my-key-is-marked-for-deletion-or-deleted-in-kms-"></a>

 Wenn der Schlüssel gelöscht oder zum Löschen markiert wird AWS KMS, schlagen alle zugehörigen laufenden Ausführungen fehl. Neue Ausführungen können erst gestartet werden, wenn Sie den mit dem Workflow verknüpften Schlüssel entfernen oder ändern. ***Nach dem Löschen eines AWS KMS Schlüssels bleiben alle verschlüsselten Daten, die mit der Workflow-Ausführung verknüpft sind, verschlüsselt und können nicht mehr entschlüsselt werden, sodass die Daten nicht wiederhergestellt werden können.*** 

### Was passiert, wenn ein AWS KMS Schlüssel in deaktiviert ist? AWS KMS
<a name="what-happens-if-a-kms-key-is-disabled-in-kms-"></a>

 Wenn ein AWS KMS Schlüssel in deaktiviert ist AWS KMS, schlagen alle zugehörigen laufenden Ausführungen fehl. Neue Ausführungen können nicht gestartet werden. Sie können die mit diesem deaktivierten AWS KMS Schlüssel verschlüsselten Daten nicht mehr entschlüsseln, bis er wieder aktiviert ist. 

### Was passiert mit Ereignissen zur Änderung des Ausführungsstatus, an die gesendet wurde? EventBridge
<a name="what-happens-to-execution-status-change-events-sent-to-ev-"></a>

 Bei Workflows, die mit Ihrem vom Kunden verwalteten AWS KMS Schlüssel verschlüsselt wurden, werden Eingabe, Ausgabe, Fehler und Ursache bei der Änderung des Ausführungsstatus nicht berücksichtigt. 

## Weitere Informationen
<a name="learn-more-data-at-rest-encryption"></a>

Informationen zur Verschlüsselung inaktiver Daten finden Sie unter [AWS Key Management Service Konzepte](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) und [bewährte Sicherheitsmethoden für AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) im *AWS Key Management Service Entwicklerhandbuch*.

# Verschlüsselung von Daten bei der Übertragung in Step Functions
<a name="encryption-in-transit"></a>

Step Functions verschlüsselt Daten, die zwischen dem Dienst und anderen integrierten AWS Diensten übertragen werden (siehe[Integration von Diensten mit Step Functions](integrate-services.md)). Alle Daten, die zwischen Step Functions und integrierten Diensten übertragen werden, werden mit Transport Layer Security (TLS) verschlüsselt.

# Funktionen für Identity and Access Management in Step
<a name="auth-and-access-control-sfn"></a>

In den folgenden Abschnitten erfahren Sie, wie Sie [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) und Step Functions verwenden können, um Ihre Ressourcen zu schützen, indem Sie kontrollieren, wer darauf zugreifen kann. Sie erfahren beispielsweise, wie Sie Anmeldeinformationen AWS Step Functions mit Berechtigungen für den Zugriff auf AWS Ressourcen bereitstellen, z. B. für das Abrufen von Ereignisdaten aus anderen AWS Ressourcen.

AWS Identity and Access Management (IAM) hilft einem Administrator AWS-Service , den Zugriff auf Ressourcen sicher zu AWS kontrollieren. IAM-Administratoren kontrollieren, wer *authentifiziert* (angemeldet) und *autorisiert* werden kann (über Berechtigungen verfügt), um Step Functions Functions-Ressourcen zu verwenden. IAM ist ein Programm AWS-Service , das Sie ohne zusätzliche Kosten nutzen können.

## Zielgruppe
<a name="security_iam_audience"></a>

Wie Sie AWS Identity and Access Management (IAM) verwenden, hängt von Ihrer Rolle ab:
+ **Servicebenutzer** – Fordern Sie von Ihrem Administrator Berechtigungen an, wenn Sie nicht auf Features zugreifen können (siehe [Behebung von Identitäts- und Zugriffsproblemen in Step Functions](security_iam_troubleshoot.md)).
+ **Serviceadministrator** – Bestimmen Sie den Benutzerzugriff und stellen Sie Berechtigungsanfragen (siehe [Wie AWS Step Functions funktioniert mit IAM](security_iam_service-with-iam.md)).
+ **IAM-Administrator** – Schreiben Sie Richtlinien zur Zugriffsverwaltung (siehe [Beispiele für identitätsbasierte Richtlinien für AWS Step Functions](security_iam_id-based-policy-examples.md)).

## Authentifizierung mit Identitäten
<a name="security_iam_authentication"></a>

Authentifizierung ist die Art und Weise, wie Sie sich AWS mit Ihren Identitätsdaten anmelden. Sie müssen sich als IAM-Benutzer authentifizieren oder eine IAM-Rolle annehmen. Root-Benutzer des AWS-Kontos

Sie können sich als föderierte Identität anmelden, indem Sie Anmeldeinformationen aus einer Identitätsquelle wie AWS IAM Identity Center (IAM Identity Center), Single Sign-On-Authentifizierung oder Anmeldeinformationen verwenden. Google/Facebook Weitere Informationen zum Anmelden finden Sie unter [So melden Sie sich bei Ihrem AWS-Konto an](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) im *Benutzerhandbuch für AWS-Anmeldung *.

 AWS Bietet für den programmatischen Zugriff ein SDK und eine CLI zum kryptografischen Signieren von Anfragen. Weitere Informationen finden Sie unter [AWS Signature Version 4 for API requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) im *IAM-Benutzerhandbuch*.

### AWS-Konto Root-Benutzer
<a name="security_iam_authentication-rootuser"></a>

 Wenn Sie einen erstellen AWS-Konto, beginnen Sie mit einer Anmeldeidentität, dem sogenannten AWS-Konto *Root-Benutzer*, der vollständigen Zugriff auf alle AWS-Services Ressourcen hat. Wir raten ausdrücklich davon ab, den Root-Benutzer für Alltagsaufgaben zu verwenden. Eine Liste der Aufgaben, für die Sie sich als Root-Benutzer anmelden müssen, finden Sie unter [Tasks that require root user credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) im *IAM-Benutzerhandbuch*. 

### Verbundidentität
<a name="security_iam_authentication-federated"></a>

Es hat sich bewährt, dass menschliche Benutzer für den Zugriff AWS-Services mithilfe temporärer Anmeldeinformationen einen Verbund mit einem Identitätsanbieter verwenden müssen.

Eine *föderierte Identität* ist ein Benutzer aus Ihrem Unternehmensverzeichnis, Ihrem Directory Service Web-Identitätsanbieter oder der AWS-Services mithilfe von Anmeldeinformationen aus einer Identitätsquelle zugreift. Verbundene Identitäten übernehmen Rollen, die temporäre Anmeldeinformationen bereitstellen.

Für die zentrale Zugriffsverwaltung empfehlen wir AWS IAM Identity Center. Weitere Informationen finden Sie unter [Was ist IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

### IAM-Benutzer und -Gruppen
<a name="security_iam_authentication-iamuser"></a>

Ein *[IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* ist eine Identität mit bestimmten Berechtigungen für eine einzelne Person oder Anwendung. Wir empfehlen die Verwendung temporärer Anmeldeinformationen anstelle von IAM-Benutzern mit langfristigen Anmeldeinformationen. Weitere Informationen finden Sie im *IAM-Benutzerhandbuch* unter [Erfordern, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter verwenden müssen, um AWS mithilfe temporärer Anmeldeinformationen darauf zugreifen zu](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) können.

Eine [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spezifiziert eine Sammlung von IAM-Benutzern und erleichtert die Verwaltung von Berechtigungen für große Gruppen von Benutzern. Weitere Informationen finden Sie unter [Anwendungsfälle für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) im *IAM-Benutzerhandbuch*.

### IAM-Rollen
<a name="security_iam_authentication-iamrole"></a>

Eine *[IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* ist eine Identität mit spezifischen Berechtigungen, die temporäre Anmeldeinformationen bereitstellt. Sie können eine Rolle übernehmen, indem Sie [von einer Benutzer- zu einer IAM-Rolle (Konsole) wechseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) AWS CLI oder einen AWS API-Vorgang aufrufen. Weitere Informationen finden Sie unter [Methoden, um eine Rolle zu übernehmen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) im *IAM-Benutzerhandbuch*.

IAM-Rollen sind nützlich für den Verbundbenutzer-Zugriff, temporäre IAM-Benutzerberechtigungen, kontoübergreifenden Zugriff, serviceübergreifenden Zugriff und Anwendungen, die auf Amazon EC2 laufen. Weitere Informationen finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

## Verwalten des Zugriffs mit Richtlinien
<a name="security_iam_access-manage"></a>

Sie kontrollieren den Zugriff, AWS indem Sie Richtlinien erstellen und diese an AWS Identitäten oder Ressourcen anhängen. Eine Richtlinie definiert Berechtigungen, wenn sie mit einer Identität oder Ressource verknüpft sind. AWS bewertet diese Richtlinien, wenn ein Principal eine Anfrage stellt. Die meisten Richtlinien werden AWS als JSON-Dokumente gespeichert. Weitere Informationen zu JSON-Richtliniendokumenten finden Sie unter [Übersicht über JSON-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) im *IAM-Benutzerhandbuch*.

Mit Hilfe von Richtlinien legen Administratoren fest, wer Zugriff auf was hat, indem sie definieren, welches **Prinzipal** welche **Aktionen** auf welchen **Ressourcen**und unter welchen **Bedingungen**durchführen darf.

Standardmäßig haben Benutzer, Gruppen und Rollen keine Berechtigungen. Ein IAM-Administrator erstellt IAM-Richtlinien und fügt sie zu Rollen hinzu, die die Benutzer dann übernehmen können. IAM-Richtlinien definieren Berechtigungen unabhängig von der Methode, die zur Ausführung der Operation verwendet wird.

### Identitätsbasierte Richtlinien
<a name="security_iam_access-manage-id-based-policies"></a>

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität (Benutzer, Gruppe oder Rolle) anfügen können. Diese Richtlinien steuern, welche Aktionen Identitäten für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Identitätsbasierte Richtlinien können *Inline-Richtlinien* (direkt in eine einzelne Identität eingebettet) oder *verwaltete Richtlinien* (eigenständige Richtlinien, die mit mehreren Identitäten verbunden sind) sein. Informationen dazu, wie Sie zwischen verwalteten und Inline-Richtlinien wählen, finden Sie unter [Choose between managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) im *IAM-Benutzerhandbuch*.

### Ressourcenbasierte Richtlinien
<a name="security_iam_access-manage-resource-based-policies"></a>

Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource anfügen. Beispiele hierfür sind *Vertrauensrichtlinien für IAM-Rollen* und Amazon S3*-Bucket-Richtlinien*. In Services, die ressourcenbasierte Richtlinien unterstützen, können Service-Administratoren sie verwenden, um den Zugriff auf eine bestimmte Ressource zu steuern. Sie müssen in einer ressourcenbasierten Richtlinie [einen Prinzipal angeben](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

Ressourcenbasierte Richtlinien sind Richtlinien innerhalb dieses Diensts. Sie können AWS verwaltete Richtlinien von IAM nicht in einer ressourcenbasierten Richtlinie verwenden.

### Weitere Richtlinientypen
<a name="security_iam_access-manage-other-policies"></a>

AWS unterstützt zusätzliche Richtlinientypen, mit denen die maximalen Berechtigungen festgelegt werden können, die durch gängigere Richtlinientypen gewährt werden:
+ **Berechtigungsgrenzen** – Eine Berechtigungsgrenze legt die maximalen Berechtigungen fest, die eine identitätsbasierte Richtlinie einer IAM-Entität erteilen kann. Weitere Informationen finden Sie unter [Berechtigungsgrenzen für IAM-Entitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) im *-IAM-Benutzerhandbuch*.
+ **Richtlinien zur Dienstkontrolle (SCPs)** — Geben Sie die maximalen Berechtigungen für eine Organisation oder Organisationseinheit in an AWS Organizations. Weitere Informationen finden Sie unter [Service-Kontrollrichtlinien](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) im *AWS Organizations -Benutzerhandbuch*.
+ **Richtlinien zur Ressourcenkontrolle (RCPs)** — Legen Sie die maximal verfügbaren Berechtigungen für Ressourcen in Ihren Konten fest. Weitere Informationen finden Sie im *AWS Organizations Benutzerhandbuch* unter [Richtlinien zur Ressourcenkontrolle (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html).
+ **Sitzungsrichtlinien** – Sitzungsrichtlinien sind erweiterte Richtlinien, die als Parameter übergeben werden, wenn Sie eine temporäre Sitzung für eine Rolle oder einen Verbundbenutzer erstellen. Weitere Informationen finden Sie unter [Sitzungsrichtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) im *IAM-Benutzerhandbuch*.

### Mehrere Richtlinientypen
<a name="security_iam_access-manage-multiple-policies"></a>

Wenn für eine Anfrage mehrere Arten von Richtlinien gelten, sind die daraus resultierenden Berechtigungen schwieriger zu verstehen. Informationen darüber, wie AWS bestimmt wird, ob eine Anfrage zulässig ist, wenn mehrere Richtlinientypen betroffen sind, finden Sie unter [Bewertungslogik für Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) im *IAM-Benutzerhandbuch*.

## Zugriffskontrolle
<a name="access-control-sfn"></a>

Sie können über gültige Anmeldeinformationen verfügen, um Ihre Anfragen zu authentifizieren, aber ohne die entsprechenden Berechtigungen können Sie keine Step Functions Functions-Ressourcen erstellen oder darauf zugreifen. Sie benötigen beispielsweise Berechtigungen zum Aufrufen AWS Lambda von Zielen für Amazon Simple Notification Service (Amazon SNS) und Amazon Simple Queue Service (Amazon SQS), die mit Ihren Step Functions Functions-Regeln verknüpft sind.

In den folgenden Abschnitten wird beschrieben, wie Sie Berechtigungen für Step Functions verwalten.
+ [Erstellen einer IAM-Rolle für Ihre Zustandsmaschine in Step Functions](procedure-create-iam-role.md)
+ [Erstellung detaillierter Berechtigungen für Benutzer ohne Administratorrechte in Step Functions](concept-create-iam-advanced.md)
+ [Amazon VPC-Endpoints für Step Functions erstellen](vpc-endpoints.md)
+ [So generiert Step Functions IAM-Richtlinien für integrierte Dienste](service-integration-iam-templates.md)
+ [IAM-Richtlinien für die Verwendung von Distributed Map-Status](iam-policies-eg-dist-map.md)

# Wie AWS Step Functions funktioniert mit IAM
<a name="security_iam_service-with-iam"></a>

Bevor Sie IAM verwenden, um den Zugriff auf Step Functions zu verwalten, sollten Sie sich darüber informieren, welche IAM-Funktionen für die Verwendung mit Step Functions verfügbar sind.

In der folgenden Tabelle sind die IAM-Funktionen aufgeführt, die Sie mit verwenden können: AWS Step Functions


| IAM-Feature | Unterstützung von Step Functions | 
| --- | --- | 
|  [Identitätsbasierte Richtlinien](#security_iam_service-with-iam-id-based-policies)  |   Ja  | 
|  [Ressourcenbasierte Richtlinien](#security_iam_service-with-iam-resource-based-policies)  |   Nein   | 
|  [Richtlinienaktionen](#security_iam_service-with-iam-id-based-policies-actions)  |   Ja  | 
|  [Richtlinienressourcen](#security_iam_service-with-iam-id-based-policies-resources)  |   Ja  | 
|  [Richtlinienbedingungsschlüssel (servicespezifisch)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Ja  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   Nein   | 
|  [ABAC (Tags in Richtlinien)](#security_iam_service-with-iam-tags)  |   Teilweise  | 
|  [Temporäre Anmeldeinformationen](#security_iam_service-with-iam-roles-tempcreds)  |   Ja  | 
|  [Prinzipalberechtigungen](#security_iam_service-with-iam-principal-permissions)  |   Ja  | 
|  [Servicerollen](#security_iam_service-with-iam-roles-service)  |   Ja  | 
|  [Service-verknüpfte Rollen](#security_iam_service-with-iam-roles-service-linked)  |   Nein   | 

Einen allgemeinen Überblick darüber, wie Step Functions und andere AWS Dienste mit den meisten IAM-Funktionen funktionieren, finden Sie im [IAM-Benutzerhandbuch unter AWS Dienste, die mit *IAM* funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).

## Identitätsbasierte Richtlinien für Step Functions
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Unterstützt Richtlinien auf Identitätsbasis:** Ja

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität anfügen können, wie z. B. IAM-Benutzern, -Benutzergruppen oder -Rollen. Diese Richtlinien steuern, welche Aktionen die Benutzer und Rollen für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Mit identitätsbasierten IAM-Richtlinien können Sie angeben, welche Aktionen und Ressourcen zugelassen oder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionen zugelassen oder abgelehnt werden. Informationen zu sämtlichen Elementen, die Sie in einer JSON-Richtlinie verwenden, finden Sie in der [IAM-Referenz für JSON-Richtlinienelemente](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) im *IAM-Benutzerhandbuch*.

### Beispiele für identitätsbasierte Richtlinien für Step Functions
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

Beispiele für identitätsbasierte Richtlinien von Step Functions finden Sie unter. [Beispiele für identitätsbasierte Richtlinien für AWS Step Functions](security_iam_id-based-policy-examples.md)

## Ressourcenbasierte Richtlinien innerhalb von Step Functions
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Unterstützt ressourcenbasierte Richtlinien:** Nein 

Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource anfügen. Beispiele für ressourcenbasierte Richtlinien sind IAM-*Rollen-Vertrauensrichtlinien* und Amazon-S3-*Bucket-Richtlinien*. In Services, die ressourcenbasierte Richtlinien unterstützen, können Service-Administratoren sie verwenden, um den Zugriff auf eine bestimmte Ressource zu steuern. Für die Ressource, an welche die Richtlinie angehängt ist, legt die Richtlinie fest, welche Aktionen ein bestimmter Prinzipal unter welchen Bedingungen für diese Ressource ausführen kann. Sie müssen in einer ressourcenbasierten Richtlinie [einen Prinzipal angeben](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html). Zu den Prinzipalen können Konten, Benutzer, Rollen, Verbundbenutzer oder gehören. AWS-Services

Um kontoübergreifenden Zugriff zu ermöglichen, können Sie ein gesamtes Konto oder IAM-Entitäten in einem anderen Konto als Prinzipal in einer ressourcenbasierten Richtlinie angeben. Weitere Informationen finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

## Richtlinienaktionen für Step Functions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Unterstützt Richtlinienaktionen:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Action` einer JSON-Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Nehmen Sie Aktionen in eine Richtlinie auf, um Berechtigungen zur Ausführung des zugehörigen Vorgangs zu erteilen.

Eine Liste der Step Functions Functions-Aktionen finden Sie unter [Resources Defined by AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) in der *Service Authorization Reference*.

Richtlinienaktionen in Step Functions verwenden das folgende Präfix vor der Aktion:

```
states
```

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie mit Kommata:

```
"Action": [
          "states:action1",
          "states:action2"
             ]
```

Beispiele für identitätsbasierte Richtlinien von Step Functions finden Sie unter. [Beispiele für identitätsbasierte Richtlinien für AWS Step Functions](security_iam_id-based-policy-examples.md)

## Richtlinienressourcen für Step Functions
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Unterstützt Richtlinienressourcen:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das JSON-Richtlinienelement `Resource` gibt die Objekte an, auf welche die Aktion angewendet wird. Als Best Practice geben Sie eine Ressource mit dem zugehörigen [Amazon-Ressourcennamen (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) an. Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, einen Platzhalter (\$1), um anzugeben, dass die Anweisung für alle Ressourcen gilt.

```
"Resource": "*"
```

Eine Liste der Ressourcentypen von Step Functions und deren Eigenschaften ARNs finden Sie unter [Definierte Aktionen von AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) in der *Serviceautorisierungsreferenz*. Informationen darüber, mit welchen Aktionen Sie den ARN jeder Ressource angeben können, finden Sie unter [Ressourcen definiert von AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

Beispiele für identitätsbasierte Richtlinien von Step Functions finden Sie unter. [Beispiele für identitätsbasierte Richtlinien für AWS Step Functions](security_iam_id-based-policy-examples.md)

## Richtlinien-Bedingungsschlüssel für Step Functions
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Unterstützt servicespezifische Richtlinienbedingungsschlüssel:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Condition` gibt an, wann Anweisungen auf der Grundlage definierter Kriterien ausgeführt werden. Sie können bedingte Ausdrücke erstellen, die [Bedingungsoperatoren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter [Kontextschlüssel für AWS globale Bedingungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.

Eine Liste der Bedingungstasten von Step Functions finden Sie unter [Bedingungsschlüssel für AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) in der *Service Authorization Reference*. Informationen zu den Aktionen und Ressourcen, mit denen Sie einen Bedingungsschlüssel verwenden können, finden Sie unter [Ressourcen definiert durch AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html).

 Wenn Ihre Richtlinie vom Prinzipalnamen des Step Functions Functions-Dienstes abhängen muss, empfehlen wir Ihnen, zu überprüfen, ob der `states.amazonaws.com` `aws:PrincipalServiceNamesList` [mehrwertige Kontextschlüssel existiert oder nicht, ob der `aws:PrincipalServiceName` Bedingungsschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-single-vs-multi-valued-context-keys.html#reference_policies_condition-multi-valued-context-keys) existiert oder nicht. Der `aws:PrincipalServiceName` Bedingungsschlüssel enthält nur einen Eintrag aus der Liste der Dienstprinzipalnamen, was möglicherweise nicht immer der Fall ist. `states.amazonaws.com` Der folgende Bedingungsblock veranschaulicht die Überprüfung auf das Vorhandensein von`states.amazonaws.com`. 

```
{
    "Condition": {
        "ForAnyValue:StringEquals": {
            "aws:PrincipalServiceNamesList": "states.amazonaws.com"
        }
    }
}
```

Beispiele für identitätsbasierte Richtlinien von Step Functions finden Sie unter. [Beispiele für identitätsbasierte Richtlinien für AWS Step Functions](security_iam_id-based-policy-examples.md)

## ACLs In-Step-Funktionen
<a name="security_iam_service-with-iam-acls"></a>

**Unterstützt ACLs:** Nein 

Zugriffskontrolllisten (ACLs) steuern, welche Principals (Kontomitglieder, Benutzer oder Rollen) über Zugriffsberechtigungen für eine Ressource verfügen. ACLs ähneln ressourcenbasierten Richtlinien, verwenden jedoch nicht das JSON-Richtliniendokumentformat.

## ABAC mit Step Functions
<a name="security_iam_service-with-iam-tags"></a>

**Unterstützt ABAC (Tags in Richtlinien):** Teilweise

Die attributbasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, bei der Berechtigungen basierend auf Attributen, auch als Tags bezeichnet, definiert werden. Sie können Tags an IAM-Entitäten und AWS -Ressourcen anhängen und dann ABAC-Richtlinien entwerfen, die Operationen zulassen, wenn das Tag des Prinzipals mit dem Tag auf der Ressource übereinstimmt.

Um den Zugriff auf der Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer[ Richtlinie Tag-Informationen ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)an, indem Sie die Schlüssel `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`, oder Bedingung `aws:TagKeys` verwenden.

Wenn ein Service alle drei Bedingungsschlüssel für jeden Ressourcentyp unterstützt, lautet der Wert für den Service **Ja**. Wenn ein Service alle drei Bedingungsschlüssel für nur einige Ressourcentypen unterstützt, lautet der Wert **Teilweise**.

*Weitere Informationen zu ABAC finden Sie unter [Definieren von Berechtigungen mit ABAC-Autorisierung](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) im IAM-Benutzerhandbuch*. Um ein Tutorial mit Schritten zur Einstellung von ABAC anzuzeigen, siehe [Attributbasierte Zugriffskontrolle (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) verwenden im *IAM-Benutzerhandbuch*.

## Temporäre Anmeldeinformationen mit Step Functions verwenden
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Unterstützt temporäre Anmeldeinformationen:** Ja

Temporäre Anmeldeinformationen ermöglichen kurzfristigen Zugriff auf AWS Ressourcen und werden automatisch erstellt, wenn Sie einen Verbund verwenden oder die Rollen wechseln. AWS empfiehlt, temporäre Anmeldeinformationen dynamisch zu generieren, anstatt langfristige Zugriffsschlüssel zu verwenden. Weitere Informationen finden Sie unter [Temporäre Anmeldeinformationen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) und [AWS-Services , die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) im *IAM-Benutzerhandbuch*.

## Serviceübergreifende Prinzipalberechtigungen für Step Functions
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Unterstützt Forward Access Sessions (FAS):** Ja

 Forward Access Sessions (FAS) verwenden die Berechtigungen des Prinzipals, der einen aufruft AWS-Service, kombiniert mit der Anforderung, Anfragen an nachgelagerte Dienste AWS-Service zu stellen. Einzelheiten zu den Richtlinien für FAS-Anforderungen finden Sie unter [Zugriffssitzungen weiterleiten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Servicerollen für Step Functions
<a name="security_iam_service-with-iam-roles-service"></a>

**Unterstützt Servicerollen:** Ja

 Eine Servicerolle ist eine [IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html), die ein Service annimmt, um Aktionen in Ihrem Namen auszuführen. Ein IAM-Administrator kann eine Servicerolle innerhalb von IAM erstellen, ändern und löschen. Weitere Informationen finden Sie unter [Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) im *IAM-Benutzerhandbuch*. 

**Warnung**  
Durch das Ändern der Berechtigungen für eine Servicerolle kann die Funktionalität von Step Functions beeinträchtigt werden. Bearbeiten Sie Servicerollen nur, wenn Step Functions Sie dazu anleitet.

## Serviceverknüpfte Rollen für Step Functions
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Unterstützt serviceverknüpfte Rollen:** Ja 

 Eine serviceverknüpfte Rolle ist eine Art von Servicerolle, die mit einer verknüpft ist. AWS-Service Der Service kann die Rolle übernehmen, um eine Aktion in Ihrem Namen auszuführen. Dienstbezogene Rollen werden in Ihrem Dienst angezeigt AWS-Konto und gehören dem Dienst. Ein IAM-Administrator kann die Berechtigungen für Service-verknüpfte Rollen anzeigen, aber nicht bearbeiten. 

Details zum Erstellen oder Verwalten von serviceverknüpften Rollen finden Sie unter [AWS -Services, die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Suchen Sie in der Tabelle nach einem Service mit einem `Yes` in der Spalte **Service-linked role** (Serviceverknüpfte Rolle). Wählen Sie den Link **Yes** (Ja) aus, um die Dokumentation für die serviceverknüpfte Rolle für diesen Service anzuzeigen.

# Beispiele für identitätsbasierte Richtlinien für AWS Step Functions
<a name="security_iam_id-based-policy-examples"></a>

Standardmäßig sind Benutzer und Rollen nicht berechtigt, Step Functions Functions-Ressourcen zu erstellen oder zu ändern. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern die Berechtigung erteilen, Aktionen für die Ressourcen auszuführen, die sie benötigen.

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eine identitätsbasierte IAM-Richtlinie erstellen, finden Sie unter [Erstellen von IAM-Richtlinien (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) im *IAM-Benutzerhandbuch*.

Einzelheiten zu den von Step Functions definierten Aktionen und Ressourcentypen, einschließlich des Formats der ARNs für jeden Ressourcentyp, finden Sie unter [Aktionen, Ressourcen und Bedingungsschlüssel für AWS Step Functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsstepfunctions.html) in der *Service Authorization Reference*.

**Topics**
+ [Best Practices für Richtlinien](#security_iam_service-with-iam-policy-best-practices)
+ [Verwenden der Step Functions Functions-Konsole](#security_iam_id-based-policy-examples-console)
+ [Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer](#security_iam_id-based-policy-examples-view-own-permissions)

## Best Practices für Richtlinien
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Identitätsbasierte Richtlinien legen fest, ob jemand Step Functions Functions-Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder diese löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Beachten Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Richtlinien und Empfehlungen:
+ **Erste Schritte mit AWS verwalteten Richtlinien und Umstellung auf Berechtigungen mit den geringsten Rechten** — Verwenden Sie die *AWS verwalteten Richtlinien*, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um damit zu beginnen, Ihren Benutzern und Workloads Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie unter [Von AWS verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) oder [Von AWS verwaltete Richtlinien für Auftragsfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) im *IAM-Benutzerhandbuch*.
+ **Anwendung von Berechtigungen mit den geringsten Rechten** – Wenn Sie mit IAM-Richtlinien Berechtigungen festlegen, gewähren Sie nur die Berechtigungen, die für die Durchführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als *die geringsten Berechtigungen*. Weitere Informationen zur Verwendung von IAM zum Anwenden von Berechtigungen finden Sie unter [ Richtlinien und Berechtigungen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von Bedingungen in IAM-Richtlinien zur weiteren Einschränkung des Zugriffs** – Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen zu beschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anforderungen mithilfe von SSL gesendet werden müssen. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese für einen bestimmten Zweck verwendet werden AWS-Service, z. CloudFormation B. Weitere Informationen finden Sie unter [IAM-JSON-Richtlinienelemente: Bedingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von IAM Access Analyzer zur Validierung Ihrer IAM-Richtlinien, um sichere und funktionale Berechtigungen zu gewährleisten** – IAM Access Analyzer validiert neue und vorhandene Richtlinien, damit die Richtlinien der IAM-Richtliniensprache (JSON) und den bewährten IAM-Methoden entsprechen. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Weitere Informationen finden Sie unter [Richtlinienvalidierung mit IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) im *IAM-Benutzerhandbuch*.
+ **Multi-Faktor-Authentifizierung (MFA) erforderlich** — Wenn Sie ein Szenario haben, das IAM-Benutzer oder einen Root-Benutzer in Ihrem System erfordert AWS-Konto, aktivieren Sie MFA für zusätzliche Sicherheit. Um MFA beim Aufrufen von API-Vorgängen anzufordern, fügen Sie Ihren Richtlinien MFA-Bedingungen hinzu. Weitere Informationen finden Sie unter [Sicherer API-Zugriff mit MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) im *IAM-Benutzerhandbuch*.

Weitere Informationen zu bewährten Methoden in IAM finden Sie unter [Best Practices für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

## Verwenden der Step Functions Functions-Konsole
<a name="security_iam_id-based-policy-examples-console"></a>

Um auf die AWS Step Functions Konsole zugreifen zu können, benötigen Sie ein Mindestmaß an Berechtigungen. Diese Berechtigungen müssen es Ihnen ermöglichen, Details zu den Step Functions Functions-Ressourcen in Ihrem aufzulisten und anzuzeigen AWS-Konto. Wenn Sie eine identitätsbasierte Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Entitäten (Benutzer oder Rollen) mit dieser Richtlinie.

Sie müssen Benutzern, die nur die API AWS CLI oder die AWS API aufrufen, keine Mindestberechtigungen für die Konsole gewähren. Stattdessen sollten Sie nur Zugriff auf die Aktionen zulassen, die der API-Operation entsprechen, die die Benutzer ausführen möchten.

Um sicherzustellen, dass Benutzer und Rollen die Step Functions-Konsole weiterhin verwenden können, fügen Sie den Entitäten auch die Step Functions `ConsoleAccess` oder die `ReadOnly` AWS verwaltete Richtlinie hinzu. Weitere Informationen finden Sie unter [Hinzufügen von Berechtigungen zu einem Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) im *IAM-Benutzerhandbuch*.

## Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zum Anzeigen der eingebundenen Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügt sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe der API AWS CLI oder AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# AWS verwaltete Richtlinien für AWS Step Functions
<a name="security-iam-awsmanpol"></a>





Eine AWS verwaltete Richtlinie ist eine eigenständige Richtlinie, die von erstellt und verwaltet wird AWS. AWS Verwaltete Richtlinien sind so konzipiert, dass sie Berechtigungen für viele gängige Anwendungsfälle bereitstellen, sodass Sie damit beginnen können, Benutzern, Gruppen und Rollen Berechtigungen zuzuweisen.

Denken Sie daran, dass AWS verwaltete Richtlinien für Ihre speziellen Anwendungsfälle möglicherweise keine Berechtigungen mit den geringsten Rechten gewähren, da sie für alle AWS Kunden verfügbar sind. Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie [vom Kunden verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind.

Sie können die in AWS verwalteten Richtlinien definierten Berechtigungen nicht ändern. Wenn die in einer AWS verwalteten Richtlinie definierten Berechtigungen AWS aktualisiert werden, wirkt sich das Update auf alle Prinzidentitäten (Benutzer, Gruppen und Rollen) aus, denen die Richtlinie zugeordnet ist. AWS aktualisiert eine AWS verwaltete Richtlinie höchstwahrscheinlich, wenn eine neue Richtlinie eingeführt AWS-Service wird oder neue API-Operationen für bestehende Dienste verfügbar werden.

Weitere Informationen finden Sie unter [Von AWS verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) im *IAM-Benutzerhandbuch*.









## AWS verwaltete Richtlinie: AWSStep FunctionsConsoleFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsConsoleFullAccess"></a>

Sie können die [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsConsoleFullAccess.html)-Richtlinie an Ihre IAM-Identitäten anfügen.

Diese Richtlinie gewährt einem Benutzer *administrator* Berechtigungen, die es einem Benutzer ermöglichen, die Step Functions Functions-Konsole zu verwenden. Für ein vollständiges Konsolenerlebnis benötigt ein Benutzer möglicherweise auch iam: PassRole -Berechtigungen für andere IAM-Rollen, die vom Dienst übernommen werden können.

## AWS verwaltete Richtlinie: AWSStep FunctionsReadOnlyAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess"></a>

Sie können die [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html)-Richtlinie an Ihre IAM-Identitäten anfügen.

Diese Richtlinie gewährt einem Benutzer oder einer Rolle *read-only* Berechtigungen, die es einem Benutzer oder einer Rolle ermöglichen, Zustandsmaschinen, Aktivitäten MapRuns, Tags sowie Alias und Versionen von Zustandsmaschinen aufzulisten und zu beschreiben. Diese Richtlinie gewährt auch die Berechtigung, die Syntax der von Ihnen bereitgestellten Zustandsmaschinendefinitionen zu überprüfen.

## AWS verwaltete Richtlinie: AWSStep FunctionsFullAccess
<a name="security-iam-awsmanpol-AWSStepFunctionsFullAccess"></a>

Sie können die [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsFullAccess.html)-Richtlinie an Ihre IAM-Identitäten anfügen.

Diese Richtlinie gewährt einem Benutzer oder einer Rolle die *full* Erlaubnis, die Step Functions Functions-API zu verwenden. Für den Vollzugriff muss ein Benutzer über *iam:PassRole* Berechtigungen für mindestens eine IAM-Rolle verfügen, die vom Dienst übernommen werden kann.

## Step Functions Functions-Aktualisierungen AWS verwalteter Richtlinien
<a name="security-iam-awsmanpol-updates"></a>

Sehen Sie sich Details zu Aktualisierungen der AWS verwalteten Richtlinien für Step Functions an, seit dieser Dienst begonnen hat, diese Änderungen zu verfolgen. Abonnieren Sie den RSS-Feed auf der Seite Step Functions, um automatische Benachrichtigungen über Änderungen an dieser [Dokumentverlauf](document-history.md) Seite zu erhalten.




| Änderungen | Beschreibung | Datum | 
| --- | --- | --- | 
|  [AWSStepFunctionsReadOnlyAccess](#security-iam-awsmanpol-AWSStepFunctionsReadOnlyAccess) – Aktualisierung auf eine bestehende Richtlinie   |  Step Functions hat neue Berechtigungen hinzugefügt, mit denen `states:ValidateStateMachineDefinition` API-Aktionen aufgerufen werden können, um die Syntax der von Ihnen bereitgestellten Zustandsmaschinendefinitionen zu überprüfen.  | 25. April 2024 | 
|  [AWSStepFunctionsReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSStepFunctionsReadOnlyAccess.html) – Aktualisierung auf eine bestehende Richtlinie  |  Step Functions hat neue Berechtigungen hinzugefügt, um das Auflisten und Lesen von Daten zu folgenden Themen zu ermöglichen: Tags (ListTagsForResource), Distributed Map (ListMapRuns, DescribeMapRun), Versionen und Aliase (DescribeStateMachineAlias, ListStateMachineAliases, ListStateMachineVersions).   | 02. April 2024 | 
|  Step Functions hat begonnen, Änderungen zu verfolgen  |  Step Functions begann, Änderungen für seine AWS verwalteten Richtlinien zu verfolgen.  | 02. April 2024 | 

# Erstellen einer IAM-Rolle für Ihre Zustandsmaschine in Step Functions
<a name="procedure-create-iam-role"></a>

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

Die [Tutorials zum Erlernen von Step Functions](learning-resources.md#tutorials) in diesem Handbuch enthaltenen Funktionen ermöglichen es Ihnen, automatisch generierte IAM-Rollen zu nutzen, die für die AWS Region gültig sind, in der Sie den State Machine erstellen. Sie können jedoch Ihre eigene IAM-Rolle für eine Zustandsmaschine erstellen.

Wenn Sie eine IAM-Richtlinie für Ihre Zustandsmaschinen erstellen, sollte die Richtlinie die Berechtigungen enthalten, die die Zustandsmaschinen annehmen sollen. Sie können eine bestehende AWS verwaltete Richtlinie als Beispiel verwenden oder Sie können eine benutzerdefinierte Richtlinie von Grund auf neu erstellen, die Ihren spezifischen Anforderungen entspricht. Weitere Informationen finden Sie im [IAM-Benutzerhandbuch unter Erstellen von *IAM-Richtlinien*](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)

Gehen Sie wie in diesem Abschnitt beschrieben vor, um Ihre eigene IAM-Rolle für eine Zustandsmaschine zu erstellen.

In diesem Beispiel erstellen Sie eine IAM-Rolle mit der Berechtigung, eine Lambda-Funktion aufzurufen.

## Eine Rolle für Step Functions erstellen
<a name="create-role-for-step-functions"></a>

1. Melden Sie sich bei der [IAM-Konsole](https://console.aws.amazon.com/iam/home) an und wählen Sie dann **Rollen**, **Rolle erstellen** aus.

1. **Wählen Sie auf der Seite Vertrauenswürdige Entität** auswählen unter **AWS Service** die Option **Step Functions** aus der Liste aus, und klicken Sie dann auf **Weiter: Berechtigungen**.

1. Wählen Sie auf der Seite **Attached permissions policy** **Next: Review** aus.

1. 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 wird in der Rollenliste angezeigt.

Weitere Informationen zu IAM-Berechtigungen und -Richtlinien finden Sie unter [Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) im *IAM-Benutzerhandbuch*.

## Vermeiden Sie dienstübergreifende Probleme mit verwirrten Stellvertretern
<a name="prevent-cross-service-confused-deputy"></a>

Das Problem des verwirrten Stellvertreters ist ein Sicherheitsproblem, bei dem eine Entität, die keine Berechtigung zur Durchführung einer Aktion hat, eine privilegiertere Entität zur Durchführung der Aktion zwingen kann. In: AWS Dienststellenübergreifender Identitätswechsel kann zu einem Problem mit dem verwirrten Stellvertreter führen. Ein serviceübergreifender Identitätswechsel kann auftreten, wenn ein Service (der *Anruf-Service*) einen anderen Service anruft (den *aufgerufenen Service*). Diese Art des Identitätswechsels kann konto- und dienstübergreifend erfolgen. 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. 

Um zu verhindern, dass Abgeordnete verwirrt werden, AWS bietet dieses Tool Tools, mit denen Sie Ihre Daten für alle Dienste mit Dienstprinzipalen schützen können, denen Zugriff auf Ressourcen in Ihrem Konto gewährt wurde. *In diesem Abschnitt geht es speziell um die Vermeidung von Problemen mit verwirrten AWS Step Functions Stellvertretern zwischen den einzelnen Diensten. Weitere Informationen zu diesem Thema finden Sie jedoch im IAM-Benutzerhandbuch im Abschnitt „[Probleme mit verwirrten Stellvertretern](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)“.*

Wir empfehlen die Verwendung der Kontextschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)und der [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)globalen Bedingungsschlüssel in Ressourcenrichtlinien, um die Berechtigungen einzuschränken, Step Functions die einem anderen Dienst den Zugriff auf Ihre Ressourcen gewähren. Verwenden Sie `aws:SourceArn`, wenn Sie nur eine Ressource mit dem betriebsübergreifenden Zugriff verknüpfen möchten. Verwenden Sie `aws:SourceAccount`, wenn Sie zulassen möchten, dass Ressourcen in diesem Konto mit der betriebsübergreifenden Verwendung verknüpft werden.

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

Hier ist ein Beispiel für eine *vertrauenswürdige Richtlinie*, das zeigt, wie Sie Step Functions verwenden `aws:SourceArn` können, um das Problem des verwirrten Stellvertreters zu verhindern. `aws:SourceAccount`

****  

```
{
  "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
<a name="attach-inline-policy"></a>

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

1. Öffnen Sie die [IAM-Konsole](https://console.aws.amazon.com/iam/home), wählen Sie **Rollen**, suchen Sie nach Ihrer Step Functions Functions-Rolle und wählen Sie diese Rolle aus.

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

1. 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 Sie andere AWS Dienste steuern können, finden Sie unter[Integration von Diensten mit Step Functions](integrate-services.md).

**Anmerkung**  
Beispiele für IAM-Richtlinien, die von der Step Functions Functions-Konsole erstellt wurden, finden Sie unter[So generiert Step Functions IAM-Richtlinien für integrierte Dienste](service-integration-iam-templates.md).

# Erstellung detaillierter Berechtigungen für Benutzer ohne Administratorrechte in Step Functions
<a name="concept-create-iam-advanced"></a>

Die standardmäßigen verwalteten Richtlinien in IAM, z. B.`ReadOnly`, decken nicht alle Arten von AWS Step Functions Berechtigungen vollständig ab. In diesem Abschnitt werden diese verschiedenen Arten von Berechtigungen beschrieben und Beispielkonfigurationen bereitgestellt. 

Step Functions hat vier Kategorien von Berechtigungen. Je nach der Art des Zugriffs, den Sie einem Benutzer bereitstellen möchten, können Sie den Zugriff anhand der Berechtigungen in diesen Kategorien steuern. 

[Service Level-Berechtigungen](#concept-create-iam-advanced-service)  
Gilt für Komponenten der API, die **nicht** auf eine bestimmte Ressource einwirken.

[Berechtigungen auf Stufe des Zustandsautomaten](#concept-create-iam-advanced-state)  
Wenden Sie sie auf alle API-Komponenten an, die an einem spezifischen Zustandsautomaten agieren.

[Berechtigungen auf Ausführungsebene](#concept-create-iam-advanced-execution)  
Wenden Sie sie auf alle API-Komponenten an, die an einer spezifischen Ausführung agieren.

[Berechtigungen auf Aktivitätsebene](#concept-create-iam-advanced-activity)  
Wenden Sie sie auf alle API-Komponenten an, die an einer spezifischen Aktivität oder auf einer bestimmten Instance einer Aktivität agieren.

## Service Level-Berechtigungen
<a name="concept-create-iam-advanced-service"></a>

Diese Berechtigungsstufe gilt für alle API-Aktionen, die sich **nicht** auf eine bestimmte Ressource auswirken. Dazu gehören`[CreateStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachine.html)`, `[CreateActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateActivity.html)``[ListStateMachines](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListStateMachines.html)`,`[ListActivities](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListActivities.html)`, und`[ValidateStateMachineDefinition](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ValidateStateMachineDefinition.html)`. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "states:ListStateMachines",
                "states:ListActivities",
                "states:CreateStateMachine",
                "states:CreateActivity",
                "states:ValidateStateMachineDefinition"
            ],
            "Resource": [
                "arn:aws:states:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/my-execution-role"
            ]
        }
    ]
}
```

## Berechtigungen auf Stufe des Zustandsautomaten
<a name="concept-create-iam-advanced-state"></a>

Diese Berechtigungsstufe gilt für alle API-Aktionen, die an einem spezifischen Zustandsautomaten agieren. Für diese API-Operationen ist der Amazon-Ressourcenname (ARN) der Zustandsmaschine als Teil der Anfrage erforderlich, z. B. `[DeleteStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteStateMachine.html)``[DescribeStateMachine](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeStateMachine.html)`,`[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)`, und`[ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeStateMachine",
        "states:StartExecution",
        "states:DeleteStateMachine",
        "states:ListExecutions",
        "states:UpdateStateMachine",
        "states:TestState",
        "states:RevealSecrets"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:stateMachine:StateMachinePrefix*" 
      ]
    }
  ]
}
```

## Berechtigungen auf Ausführungsebene
<a name="concept-create-iam-advanced-execution"></a>

Diese Berechtigungsstufe gilt für alle API-Aktionen, die an einer spezifischen Ausführung agieren. Diese API-Vorgänge erfordern die ARN der Ausführung als Teil der Anforderung, wie etwa`[DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)`, `[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)` und `[StopExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StopExecution.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:DescribeStateMachineForExecution",
        "states:GetExecutionHistory",
        "states:StopExecution"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:execution:*:ExecutionPrefix*"
      ]
    }
  ]
}
```

## Berechtigungen auf Aktivitätsebene
<a name="concept-create-iam-advanced-activity"></a>

Diese Berechtigungsstufe gilt für sämtliche API-Aktionen, die an einer spezifischen Aktivität oder auf einer bestimmten Instance davon agieren. Für diese API-Operationen ist der ARN der Aktivität oder das Token der Instanz als Teil der Anfrage erforderlich, z. B. `[DeleteActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteActivity.html)``[DescribeActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeActivity.html)`,`[GetActivityTask](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetActivityTask.html)`, und`[SendTaskHeartbeat](https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskHeartbeat.html)`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeActivity",
        "states:DeleteActivity",
        "states:GetActivityTask",
        "states:SendTaskHeartbeat"
      ],
      "Resource": [
        "arn:aws:states:*:*:activity:ActivityPrefix*"
      ]
    }
  ]
}
```

# Zugreifen auf Ressourcen AWS-Konten in anderen In-Step-Funktionen
<a name="concepts-access-cross-acct-resources"></a>

Step Functions bietet kontoübergreifenden Zugriff auf Ressourcen, die AWS-Konten in Ihren Workflows unterschiedlich konfiguriert sind. Mithilfe der Step Functions Functions-Dienstintegrationen können Sie jede kontoübergreifende AWS Ressource aufrufen, auch wenn diese AWS-Service keine ressourcenbasierten Richtlinien oder kontenübergreifenden Aufrufe unterstützt.

Nehmen wir zum Beispiel an, Sie besitzen zwei Geräte AWS-Konten, die als Entwicklung und Testen bezeichnet werden. 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**  
IAM-Rollen und ressourcenbasierte Richtlinien delegieren den Zugriff auf Konten nur innerhalb einer einzelnen 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 kontoübergreifenden Zugriff finden Sie unter Logik zur [kontenübergreifenden Bewertung von Richtlinien im IAM-Benutzerhandbuch](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html).*

Obwohl jeder die vollständige Kontrolle über seine eigenen Ressourcen AWS-Konto behält, können Sie mit Step Functions 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 [`.sync`](connect-to-resource.md#connect-sync)Serviceintegrationsmuster 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)](connect-to-resource.md#connect-sync).

**Anmerkung**  
Regionsübergreifende AWS SDK-Integration und regionsübergreifender AWS Ressourcenzugriff sind in Step Functions nicht verfügbar.

## Wichtige kontenübergreifende Ressourcenkonzepte
<a name="key-terms-cross-acct-access"></a>

**[Rolle bei der Ausführung](procedure-create-iam-role.md)**  
Eine IAM-Rolle, die Step Functions verwendet, um Code auszuführen und auf AWS Ressourcen zuzugreifen, z. B. die Invoke-Aktion der AWS Lambda Funktion.

**[Serviceintegration](integrate-services.md)**  
Die API-Aktionen für die AWS SDK-Integration, die von einem `Task` Status in Ihren Workflows aus aufgerufen werden können.

**Quellkonto**  
Eine AWS-Konto , die die Zustandsmaschine besitzt und deren Ausführung gestartet hat.

**Zielkonto**  
Ein 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)](connect-to-resource.md#connect-sync)**  
Ein Dienstintegrationsmuster, das zum Aufrufen von Diensten verwendet wird, wie AWS Batch z. 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
<a name="invoke-cross-acct-resource"></a>

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.

1. 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.

1. Ändern Sie die Vertrauensrichtlinie in der Ziel-IAM-Rolle, 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, um die AWS Ressource aufzurufen.

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

Ein Beispiel finden Sie [Zugreifen auf kontenübergreifende AWS Ressourcen in Step Functions](tutorial-access-cross-acct-resources.md) in den Tutorials.

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

![\[Konzept für den Zugriff auf kontenübergreifende Ressourcen\]](http://docs.aws.amazon.com/de_de/step-functions/latest/dg/images/cross-account-support-concept.png)


## Kontoübergreifender Zugriff für das .sync-Integrationsmuster
<a name="concepts-cross-acct-sync-pattern"></a>

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 Ziel-IAM-Rolle benötigt die erforderlichen Berechtigungen für einen `.sync` Aufruf, um diese Abfrageschleife abzuschließen. Zu diesem Zweck muss die Ziel-IAM-Rolle über eine Vertrauensrichtlinie verfügen, die es dem Quellkonto ermöglicht, diese zu übernehmen. Darüber hinaus benötigt die Ziel-IAM-Rolle 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
<a name="cross-acct-sync-pattern-policy-update"></a>

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 die AWS -Security-Token-Service `AssumeRole` API unterstützt. Weitere Informationen finden Sie unter [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) in der *AWS -Security-Token-Service -API-Referenz*.

```
{
  "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
<a name="cross-acct-sync-pattern-perms-update"></a>

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](service-integration-iam-templates.md). 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:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution",
        "states:StopExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
      ]
    }
  ]
}
```

# Amazon VPC-Endpoints für Step Functions erstellen
<a name="vpc-endpoints"></a>

Wenn Sie Amazon Virtual Private Cloud (Amazon VPC) zum Hosten Ihrer AWS Ressourcen verwenden, können Sie eine Verbindung zwischen Ihrer Amazon VPC und AWS Step Functions Workflows herstellen. Sie können diese Verbindung mit Ihren Step Functions Functions-Workflows verwenden, ohne das öffentliche Internet zu überqueren. Amazon VPC-Endpunkte werden von Standard-Workflows, Express-Workflows und synchronen Express-Workflows unterstützt. 

Mit Amazon VPC können Sie AWS Ressourcen in einem benutzerdefinierten virtuellen Netzwerk starten. Mit einer VPC können Sie Netzwerkeinstellungen, wie IP-Adressbereich, Subnetze, Routing-Tabellen und Netzwerk-Gateways, steuern. Weitere Informationen VPCs finden Sie im [Amazon VPC-Benutzerhandbuch](https://docs.aws.amazon.com/vpc/latest/userguide/).

Um Ihre Amazon VPC mit Step Functions zu verbinden, müssen Sie zunächst einen *VPC-Schnittstellen-Endpunkt* definieren, über den Sie Ihre VPC mit anderen Services verbinden können. AWS Der Endpunkt bietet eine zuverlässige, skalierbare Konnektivität, ohne dass ein Internet-Gateway, eine NAT-Instance (Network Address Translation) oder eine VPN-Verbindung erforderlich ist. Weitere Informationen finden Sie unter [Schnittstellen-VPC-Endpunkte (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) im *Amazon-VPC-Benutzerhandbuch*.

## Erstellen des Endpunkts
<a name="vpc-endpoint-create"></a>

Sie können einen AWS Step Functions Endpunkt in Ihrer VPC mit dem AWS-Managementkonsole, dem AWS Command Line Interface (AWS CLI), einem AWS SDK, der AWS Step Functions API oder CloudFormation erstellen.

Informationen zum Erstellen und Konfigurieren eines Endpunkts über die Amazon-VPC-Konsole oder die AWS CLI finden Sie unter [Creating an Interface Endpoint](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) (Erstellen eines Schnittstellenendpunkts) im *Amazon-VPC-Benutzerhandbuch*.

**Anmerkung**  
 Wenn Sie einen Endpunkt erstellen, geben Sie Step Functions als den Service an, zu dem Ihre VPC eine Verbindung herstellen soll. In der Amazon VPC-Konsole variieren die Servicenamen je nach AWS Region. **Wenn Sie beispielsweise USA Ost (Nord-Virginia) wählen, lautet der Service-Name für Standard-Workflows und Express-Workflows com.amazonaws.us-east-1.states und der Servicename für Synchronous Express Workflows ist **com.amazonaws.us-east-1.sync-states**.**

**Anmerkung**  
[Es ist möglich, VPC-Endpunkte über Private DNS zu verwenden, ohne den Endpunkt im SDK zu überschreiben.](https://docs.aws.amazon.com/vpc/latest/privatelink/verify-domains.html) Wenn Sie den Endpunkt im SDK für synchrone Express-Workflows jedoch überschreiben möchten, müssen Sie die Konfiguration auf setzen. `DisableHostPrefixInjection` `true` Beispiel (Java SDK V2):   

```
SfnClient.builder()
  .endpointOverride(URI.create("https://vpce-{vpceId}.sync-states.us-east-1.vpce.amazonaws.com"))
  .overrideConfiguration(ClientOverrideConfiguration.builder()
    .advancedOptions(ImmutableMap.of(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION, true))
    .build())
  .build();
```

Informationen zum Erstellen und Konfigurieren eines Endpunkts mithilfe CloudFormation von finden Sie in der VPCEndpoint Ressource [AWS: :EC2::](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) im *CloudFormation Benutzerhandbuch*.

## Amazon VPC-Endpunktrichtlinien
<a name="vpc-endpoint-policy"></a>

Um den Konnektivitätszugriff auf Step Functions zu kontrollieren, können Sie beim Erstellen eines Amazon VPC-Endpunkts eine AWS Identity and Access Management (IAM-) Endpunktrichtlinie anhängen. Sie können komplexe IAM-Regeln erstellen, indem Sie mehrere Endpunktrichtlinien anhängen. Weitere Informationen finden Sie unter:
+  [Amazon Virtual Private Cloud-Endpunktrichtlinien für Step Functions](#vpc-iam) 
+  [Erstellung detaillierter Berechtigungen für Benutzer ohne Administratorrechte in Step Functions](concept-create-iam-advanced.md) 
+  [Kontrollieren des Zugriffs auf Services mit VPC-Endpunkten](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

## Amazon Virtual Private Cloud-Endpunktrichtlinien für Step Functions
<a name="vpc-iam"></a>

Sie können eine Amazon VPC-Endpunktrichtlinie für Step Functions erstellen, in der Sie Folgendes angeben:
+ Prinzipal, der die Aktionen ausführen kann.
+ Aktionen, die ausgeführt werden können
+ Die Ressourcen, auf denen die Aktionen ausgeführt werden können.

Das folgende Beispiel zeigt eine Amazon VPC-Endpunktrichtlinie, die es einem Benutzer ermöglicht, Zustandsmaschinen zu erstellen, und allen anderen Benutzern die Erlaubnis verweigert, Zustandsmaschinen zu löschen. Die Beispielrichtlinie gewährt auch allen -Benutzern die Ausführungsberechtigung.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
              "states:ListExecutions", "states:StartExecution", "states:StopExecution", "states:DescribeExecution"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Principal": "*"
        },
        {
            "Action": "states:CreateStateMachine",
            "Resource": "*",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::123456789012:user/MyUser"
            }
        },
        {
            "Action": "states:DeleteStateMachine",
            "Resource": "*",
            "Effect": "Deny",
            "Principal": "*"
        }
    ]
}
```

Weitere Informationen zum Erstellen von Endpunktrichtlinien finden Sie unter: 
+  [Erstellung detaillierter Berechtigungen für Benutzer ohne Administratorrechte in Step Functions](concept-create-iam-advanced.md) 
+  [Kontrollieren des Zugriffs auf Services mit VPC-Endpunkten](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) 

# So generiert Step Functions IAM-Richtlinien für integrierte Dienste
<a name="service-integration-iam-templates"></a>

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 basiert, und zwar wie folgt: 
+ Für **optimierte Integrationen** erstellt Step Functions eine Richtlinie mit allen erforderlichen Berechtigungen und Rollen für Ihre Zustandsmaschine.

  Tipp: Beispielrichtlinien finden Sie auf jeder der Serviceseiten unter[Integration optimierter Dienste](integrate-optimized.md). 
+ Für **Standardintegrationen** erstellt Step Functions eine IAM-Rolle mit Teilberechtigungen.

  Sie müssen alle fehlenden Rollenrichtlinien hinzufügen, die Ihr Zustandsmaschine für die Interaktion mit dem Dienst benötigt.

## Dynamische und statische Ressourcen
<a name="connect-iam-dynamic-static"></a>

*Statische Ressourcen* werden **direkt** im Aufgabenstatus Ihrer Zustandsmaschine definiert. Wenn Sie die Informationen zu den Ressourcen, die Sie aufrufen möchten, direkt in Ihren Aufgabenstatus aufnehmen, kann Step Functions eine IAM-Rolle nur für diese Ressourcen erstellen. 

*Dynamische Ressourcen* werden beim Starten Ihrer Zustandsmaschine als Eingabe oder als Eingabe für einen einzelnen Status **übergeben** und mit JSONata oder a JSONPath aufgerufen. Wenn Sie dynamische Ressourcen an Ihre Aufgabe übergeben, kann Step Functions den Umfang der Berechtigungen nicht automatisch reduzieren, sodass Step Functions eine tolerantere Richtlinie erstellt, die Folgendes festlegt:. `"Resource": "*"`

## Zusätzliche Berechtigungen für Aufgaben, die .sync verwenden
<a name="connect-iam-sync-async"></a>

Aufgaben, die das [Run a Job (.sync)](connect-to-resource.md#connect-sync) -Muster verwenden, benötigen zusätzliche Berechtigungen für die Überwachung und den Empfang einer Antwort von der API verbundener Dienste.

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

Für Abfragen ist eine Genehmigung für `Describe` oder `Get` API-Aktionen erforderlich. Für Amazon ECS muss der Zustandsmaschine beispielsweise über die Genehmigungsberechtigung für verfügen`ecs:DescribeTasks`, für AWS Glue den Zustandsmaschine sind Genehmigungsberechtigungen für erforderlich`glue:GetJobRun`. Wenn die erforderlichen Berechtigungen für die Rolle fehlen, kann Step Functions den Status Ihres Jobs möglicherweise nicht ermitteln. Ein Grund für die Verwendung der Abfragemethode ist, dass einige Serviceintegrationen keine EventBridge Ereignisse unterstützen und einige Dienste Ereignisse nur nach bestem Wissen senden. 

Alternativ können Sie Ereignisse verwenden, die von AWS Diensten an Amazon gesendet EventBridge werden. Ereignisse werden EventBridge mit einer verwalteten Regel an Step Functions weitergeleitet, sodass die Rolle Berechtigungen für `events:PutTargets``events:PutRule`, und `events:DescribeRule` benötigt. Wenn diese Berechtigungen in der 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html). 

## Behebung von festgefahrenen .sync-Workflows
<a name="polling-events-troubleshooting"></a>

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 ordnungsgemäß abgeschlossen wird, auch wenn der Rolle die erforderlichen Berechtigungen für Abfragen fehlen.

Im vorherigen Szenario haben Sie möglicherweise nicht bemerkt, dass die Abfrageberechtigungen fehlen oder falsch sind. In dem seltenen Fall, dass ein 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 EventBridge , die für die Weiterleitung von Ereignissen an Step Functions verantwortlich ist. 
**Anmerkung**  
 Da verwaltete Regeln von allen Zustandsmaschinen in Ihrem Konto gemeinsam genutzt werden, sollten Sie ein Test- oder Entwicklungskonto verwenden, 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](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html). 

## Berechtigungen zum Abbrechen von Workflows
<a name="iam-cancel-tasks"></a>

Wenn eine Aufgabe, die das Run a Job (.sync) -Muster verwendet, beendet wird, versucht Step Functions nach besten Kräften, die Aufgabe abzubrechen.

Das Abbrechen einer Aufgabe erfordert die Erlaubnis für `Cancel``Stop`,`Terminate`, oder `Delete` API-Aktionen wie oder. `batch:TerminateJob` `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](connect-to-resource.md#connect-sync).

**Erfahren Sie mehr über Integrationsmuster**  
 Weitere Informationen zu synchronen Aufgaben finden Sie unter[Entdecken Sie Serviceintegrationsmuster in Step Functions](connect-to-resource.md).

## IAM-Richtlinien für Step Functions Functions-Zustandsmaschinen nur für Aktivitäten
<a name="activities-iam"></a>

Verwenden Sie für eine Zustandsmaschine, die nur `Activity` Aufgaben oder gar keine Aufgaben hat, eine IAM-Richtlinie, die den Zugriff auf alle Aktionen und Ressourcen verweigert.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
```

Weitere Hinweise zur Verwendung von ` Activity `-Aufgaben finden Sie unter [Erfahren Sie mehr über Aktivitäten in Step Functions](concepts-activities.md).

# IAM-Richtlinien für die Verwendung von Distributed Map-Status
<a name="iam-policies-eg-dist-map"></a>

Wenn Sie Workflows mit der Step Functions-Konsole erstellen, kann Step Functions automatisch IAM-Richtlinien auf der Grundlage der Ressourcen in Ihrer Workflow-Definition generieren. Generierte Richtlinien beinhalten die geringsten Rechte, die erforderlich sind, damit die State-Machine-Rolle die `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API-Aktion für den *Distributed Map-Status* aufrufen und auf AWS Ressourcen wie Amazon S3 S3-Buckets und -Objekte sowie Lambda-Funktionen zugreifen kann.

Wir empfehlen, nur die erforderlichen Berechtigungen in Ihre IAM-Richtlinien aufzunehmen. Wenn Ihr Workflow beispielsweise einen `Map` Status im Modus „Verteilt“ umfasst, beschränken Sie Ihre Richtlinien auf den spezifischen Amazon S3 S3-Bucket und -Ordner, der Ihre Daten enthält.

**Wichtig**  
Wenn Sie einen Amazon S3 S3-Bucket und ein Objekt oder ein Präfix mit einem [Referenzpfad](amazon-states-language-paths.md#amazon-states-language-reference-paths) zu einem vorhandenen Schlüssel-Wert-Paar in Ihrer *Distributed Map-Statuseingabe* angeben, stellen Sie sicher, dass Sie die IAM-Richtlinien für Ihren Workflow aktualisieren. Beschränken Sie die Richtlinien auf die Bucket- und Objektnamen, zu denen der Pfad zur Laufzeit aufgelöst wird.

## Beispiel für eine IAM-Richtlinie für die Ausführung eines Distributed-Map-Status
<a name="iam-policy-run-dist-map"></a>

Wenn Sie einen *Distributed Map-Status* in Ihre Workflows aufnehmen, benötigt Step Functions die entsprechenden Berechtigungen, damit die Zustandsmaschinenrolle die `[StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)` API-Aktion für den *Distributed-Map-Status* aufrufen kann.

Das folgende Beispiel für eine IAM-Richtlinie gewährt Ihrer State-Machine-Rolle die geringsten Rechte, die für die Ausführung des Status *Distributed Map* erforderlich sind.

**Anmerkung**  
Stellen Sie sicher, dass Sie den Status `stateMachineName` durch den Namen des Zustandsmaschinen ersetzen, in dem Sie den *Status Distributed Map* verwenden. Beispiel, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:StartExecution"
      ],
      "Resource": [
        "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachineName"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "states:DescribeExecution"
      ],
      "Resource": "arn:aws:states:us-east-1:123456789012:execution:myStateMachineName:*"
    }
  ]
}
```

## Beispiel für eine IAM-Richtlinie für redriving eine Distributed Map
<a name="iam-policy-redrive-dist-map"></a>

Sie können erfolglose untergeordnete Workflow-Ausführungen in einem Map Run von [redriving](redrive-executions.md)Ihrem [übergeordneten](state-map-distributed.md#dist-map-orchestrate-parallel-workloads-key-terms) Workflow neu starten. Ein redriven übergeordneter Workflow mit redrives allen erfolglosen Status, einschließlich Distributed Map. Stellen Sie sicher, dass Ihre Ausführungsrolle über die geringsten Rechte verfügt, die erforderlich sind, um die `[RedriveExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_RedriveExecution.html)` API-Aktion für den übergeordneten Workflow aufrufen zu können.

Das folgende Beispiel für eine IAM-Richtlinie gewährt Ihrer State-Machine-Rolle die geringsten Rechte, die für redriving einen *Distributed-Map-Status* erforderlich sind.

**Anmerkung**  
Stellen Sie sicher, dass Sie den Status `stateMachineName` durch den Namen des Zustandsmaschinen ersetzen, in dem Sie den *Status Distributed Map* verwenden. Beispiel, `arn:aws:states:region:account-id:stateMachine:mystateMachine`.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:RedriveExecution"
      ],
      "Resource": "arn:aws:states:us-east-2:123456789012:execution:myStateMachineName/myMapRunLabel:*"
    }
  ]
}
```

## Beispiele für IAM-Richtlinien zum Lesen von Daten aus Amazon S3 S3-Datensätzen
<a name="iam-policy-eg-item-reader"></a>

Die folgenden Beispiele zeigen Techniken zur Gewährung der geringsten Rechte, die für den Zugriff auf Ihre Amazon S3 S3-Datensätze mithilfe der [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) - und [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)API-Aktionen erforderlich sind.

**Example Bedingung, bei der ein Amazon S3 S3-Objekt als Datensatz verwendet wird**  
Die folgende Bedingung gewährt die geringsten Rechte für den Zugriff auf Objekte in einem `processImages` Ordner eines Amazon S3 S3-Buckets.  

```
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": { 
      "s3:prefix": [ "processImages" ]
   }
}
```

**Example eine CSV-Datei als Datensatz verwenden**  
Das folgende Beispiel zeigt die Aktionen, die für den Zugriff auf eine CSV-Datei mit dem Namen erforderlich sind`ratings.csv`.  

```
"Action": [ "s3:GetObject" ],
"Resource": [
   "arn:aws:s3:::amzn-s3-demo-bucket/csvDataset/ratings.csv"
   ]
```

**Example Verwenden eines Amazon S3 S3-Inventars als Datensatz**  
Im Folgenden werden Beispielressourcen für ein Amazon S3 S3-Inventarmanifest und Datendateien gezeigt.  

```
"Resource": [
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/YYYY-MM-DDTHH-MMZ/manifest.json",
   "arn:aws:s3:::myPrefix/amzn-s3-demo-bucket/myConfig-id/data/*"
   ]
```

**Example Verwenden Sie ListObjects V2, um sich auf ein Ordnerpräfix zu beschränken**  
Bei Verwendung von [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) werden zwei Richtlinien generiert. Eine ist erforderlich, um das **Auflisten** des Inhalts des Buckets (`ListBucket`) zu ermöglichen, und eine andere Richtlinie ermöglicht das **Abrufen von Objekten** im Bucket (`GetObject`).   
Im Folgenden werden Beispielaktionen, Ressourcen und eine Bedingung gezeigt:  

```
"Action": [ "s3:ListBucket" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ],
"Condition": {
   "StringLike": {
      "s3:prefix": [ "/path/to/your/json/" ]
   }
}
```

```
"Action": [ "s3:GetObject" ],
"Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/path/to/your/json/*" ]
```
Beachten Sie, dass `GetObject` kein Gültigkeitsbereich angegeben wird und Sie einen Platzhalter (`*`) für das Objekt verwenden.

## Beispiel für eine IAM-Richtlinie zum Schreiben von Daten in einen Amazon S3 S3-Bucket
<a name="iam-policy-eg-result-writer"></a>

Das folgende Beispiel für eine IAM-Richtlinie gewährt die geringsten Rechte, die erforderlich sind, um die Ergebnisse der Workflow-Ausführung Ihres untergeordneten Workflows mithilfe der `[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)` API-Aktion in einen Ordner zu schreiben, der *csvJobs* in einem Amazon S3 S3-Bucket benannt ist.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/csvJobs/*"
            ]
        }
    ]
}
```

### IAM-Berechtigungen für AWS KMS key verschlüsselten Amazon S3 S3-Bucket
<a name="multiupload-dmap-result-policy"></a>

*Distributed Map State* verwendet mehrteilige Uploads, um die Ergebnisse der untergeordneten Workflow-Ausführung in einen Amazon S3 S3-Bucket zu schreiben. Wenn der Bucket mit einem AWS Key Management Service (AWS KMS) Schlüssel verschlüsselt ist, müssen Sie auch Berechtigungen in Ihre IAM Richtlinie aufnehmen, um die `kms:GenerateDataKey` Aktionen `kms:Decrypt``kms:Encrypt`, und für den Schlüssel auszuführen. Diese Berechtigungen sind erforderlich, da Amazon S3 Daten aus den verschlüsselten Teilen der Datei entschlüsseln und lesen muss, bevor es den Multipart-Upload vornehmen kann.

Das folgende Beispiel für eine IAM-Richtlinie erteilt Berechtigungen für die `kms:GenerateDataKey` Aktionen `kms:Decrypt``kms:Encrypt`, und für den Schlüssel, der zur Verschlüsselung Ihres Amazon S3 S3-Buckets verwendet wurde.

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:Encrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:us-east-1:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}
```

Weitere Informationen finden Sie unter [Uploading a large file to Amazon S3 with encryption using an AWS KMS key CMK (Hochladen einer großen Datei zu Amazon S3 mit Verschlüsselung über einen KMS-CMK)](https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-file-encryption-kms-key/) im *AWS -Wissenscenter*.

Wenn Ihr IAM-Benutzer oder Ihre IAM-Rolle der gleiche ist AWS-Konto wie derKMS key, dann müssen Sie über diese Berechtigungen für die Schlüsselrichtlinie verfügen. Wenn Ihr IAM-Benutzer oder Ihre IAM-Rolle zu einem anderen Konto als dem gehörtKMS key, benötigen Sie die entsprechenden Berechtigungen sowohl für die Schlüsselrichtlinie als auch für Ihren IAM-Benutzer oder Ihre IAM-Rolle.

# Tag-basierte IAM-Richtlinien in Step Functions erstellen
<a name="tag-based-policies"></a>

Step Functions unterstützt Richtlinien, die auf Tags basieren. Sie könnten beispielsweise den Zugriff auf alle Step Functions-Ressourcen einschränken, die ein Tag mit dem Schlüssel `environment` und dem Wert enthalten`production`.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "states:TagResource",
                "states:UntagResource",
                "states:DeleteActivity",
                "states:DeleteStateMachine",
                "states:StopExecution"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/environment": "production"}
            }
        }
    ]
}
```

Diese Richtlinie setzt die Möglichkeit zum Löschen von Zustandsautomaten oder Aktivitäten auf `Deny` (Verweigern), stoppt Ausführungen und fügt allen Ressourcen, die als `environment/production` markiert wurden, neue Tags hinzu bzw. löscht diese.

Bei der Tag-basierten Autorisierung erben die Ressourcen zur Ausführung von Zustandsmaschinen, wie im folgenden Beispiel gezeigt, die einem Zustandsmaschine zugewiesenen Tags.

```
arn:partition:states:region:account-id:execution:<StateMachineName>:<ExecutionId>
```

Wenn Sie aufrufen [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)oder eine andere, APIs in der Sie den Ausführungsressourcen-ARN angeben, verwendet Step Functions Tags, die dem Zustandsmaschine zugeordnet sind, um die Anfrage anzunehmen oder abzulehnen, während die Tag-basierte Autorisierung durchgeführt wird. Auf diese Weise können Sie den Zugriff auf Zustandsmaschinenausführungen auf Zustandsmaschinenebene zulassen oder verweigern.

Weitere Informationen zum Tagging finden Sie hier:
+ [Zustandsmaschinen und Aktivitäten in Step Functions kennzeichnen](sfn-best-practices.md#concepts-tagging)
+ [Zugriffssteuerung mit IAM-Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)

# Behebung von Identitäts- und Zugriffsproblemen in Step Functions
<a name="security_iam_troubleshoot"></a>

Verwenden Sie die folgenden Informationen, um häufig auftretende Probleme zu diagnostizieren und zu beheben, die bei der Arbeit mit Step Functions und IAM auftreten können.

**Topics**
+ [Ich bin nicht berechtigt, eine Aktion in Step Functions durchzuführen](#security_iam_troubleshoot-no-permissions)
+ [Ich bin nicht berechtigt, iam auszuführen: PassRole](#security_iam_troubleshoot-passrole)
+ [Ich möchte Personen außerhalb von mir den Zugriff auf meine AWS-Konto Step Functions Functions-Ressourcen ermöglichen](#security_iam_troubleshoot-cross-account-access)

## Ich bin nicht berechtigt, eine Aktion in Step Functions durchzuführen
<a name="security_iam_troubleshoot-no-permissions"></a>

Wenn Sie die Fehlermeldung erhalten, dass Sie nicht zum Durchführen einer Aktion autorisiert sind, müssen Ihre Richtlinien aktualisiert werden, um die Aktion durchführen zu können.

Der folgende Beispielfehler tritt auf, wenn der `mateojackson`-Benutzer versucht, die Konsole zum Anzeigen von Details zu einer fiktiven `my-example-widget`-Ressource zu verwenden, jedoch nicht über `states:GetWidget`-Berechtigungen verfügt.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: states:GetWidget on resource: my-example-widget
```

In diesem Fall muss die Mateo-Richtlinie aktualisiert werden, damit er mit der `states:GetWidget`-Aktion auf die `my-example-widget`-Ressource zugreifen kann.

Wenn Sie Hilfe benötigen, wenden Sie sich an Ihren AWS Administrator. Ihr Administrator hat Ihnen Ihre Anmeldeinformationen zur Verfügung gestellt.

## Ich bin nicht berechtigt, iam auszuführen: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Wenn Sie eine Fehlermeldung erhalten, dass Sie nicht berechtigt sind, die `iam:PassRole` Aktion auszuführen, müssen Ihre Richtlinien aktualisiert werden, damit Sie eine Rolle an Step Functions übergeben können.

Einige AWS-Services ermöglichen es Ihnen, eine bestehende Rolle an diesen Dienst zu übergeben, anstatt eine neue Servicerolle oder eine dienstverknüpfte Rolle zu erstellen. Hierzu benötigen Sie Berechtigungen für die Übergabe der Rolle an den Dienst.

Der folgende Beispielfehler tritt auf, wenn ein IAM-Benutzer mit dem Namen `marymajor` versucht, die Konsole zu verwenden, um eine Aktion in Step Functions auszuführen. Die Aktion erfordert jedoch, dass der Service über Berechtigungen verfügt, die durch eine Servicerolle gewährt werden. Mary besitzt keine Berechtigungen für die Übergabe der Rolle an den Dienst.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

In diesem Fall müssen die Richtlinien von Mary aktualisiert werden, um die Aktion `iam:PassRole` ausführen zu können.

Wenn Sie Hilfe benötigen, wenden Sie sich an Ihren AWS Administrator. Ihr Administrator hat Ihnen Ihre Anmeldeinformationen zur Verfügung gestellt.

## Ich möchte Personen außerhalb von mir den Zugriff auf meine AWS-Konto Step Functions Functions-Ressourcen ermöglichen
<a name="security_iam_troubleshoot-cross-account-access"></a>

Sie können eine Rolle erstellen, mit der Benutzer in anderen Konten oder Personen außerhalb Ihrer Organisation auf Ihre Ressourcen zugreifen können. Sie können festlegen, wem die Übernahme der Rolle anvertraut wird. Für Dienste, die ressourcenbasierte Richtlinien oder Zugriffskontrolllisten (ACLs) unterstützen, können Sie diese Richtlinien verwenden, um Personen Zugriff auf Ihre Ressourcen zu gewähren.

Weitere Informationen dazu finden Sie hier:
+ Informationen darüber, ob Step Functions diese Funktionen unterstützt, finden Sie unter[Wie AWS Step Functions funktioniert mit IAM](security_iam_service-with-iam.md).
+ *Informationen dazu, wie Sie Zugriff auf Ihre Ressourcen gewähren können, AWS-Konten die Ihnen gehören, finden Sie im [IAM-Benutzerhandbuch unter Gewähren von Zugriff für einen IAM-Benutzer in einem anderen AWS-Konto , den Sie besitzen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html).*
+ Informationen dazu, wie Sie Dritten Zugriff auf Ihre Ressourcen gewähren können AWS-Konten, finden Sie [AWS-Konten im *IAM-Benutzerhandbuch* unter Gewähren des Zugriffs für Dritte](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html).
+ Informationen dazu, wie Sie über einen Identitätsverbund Zugriff gewähren, finden Sie unter [Gewähren von Zugriff für extern authentifizierte Benutzer (Identitätsverbund)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) im *IAM-Benutzerhandbuch*.
+ Informationen zum Unterschied zwischen der Verwendung von Rollen und ressourcenbasierten Richtlinien für den kontoübergreifenden Zugriff finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.