

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.

# Automatisieren Sie die Kontoerstellung mit dem Landing Zone Accelerator auf AWS
<a name="automate-account-creation-lza"></a>

*Justin Kuskowski, Joe Behrens und Nathan Scott, Amazon Web Services*

## Zusammenfassung
<a name="automate-account-creation-lza-summary"></a>

Dieses Muster erklärt, wie Sie mit der [Landing Zone AWS Accelerator-Lösung](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) automatisch eine neue Lösung bereitstellen, AWS-Konto wenn ein autorisierter Benutzer eine Anfrage einreicht. Es dient AWS Step Functions zur Orchestrierung einer Reihe von AWS Lambda Funktionen. Die Lambda-Funktionen fügen die Kontoinformationen einem Git-Repository hinzu, initiieren eine AWS CodePipeline Pipeline und überprüfen, ob die erforderlichen AWS Ressourcen bereitgestellt wurden. Wenn der Vorgang abgeschlossen ist, erhält der Benutzer eine Benachrichtigung, dass das Konto erstellt wurde.

Optional können Sie Microsoft Entra ID-Gruppen integrieren und während der Kontoerstellung AWS IAM Identity Center Berechtigungssätze zuweisen. Wenn Ihre Organisation Microsoft Entra ID als Identitätsquelle verwendet, hilft Ihnen diese optionale Funktion dabei, den Zugriff auf das neue Konto automatisch zu verwalten und zu konfigurieren.

## Voraussetzungen und Einschränkungen
<a name="automate-account-creation-lza-prereqs"></a>

**Voraussetzungen**
+ Zugriff auf das Verwaltungskonto in AWS Organizations
+ AWS Cloud Development Kit (AWS CDK) [[Version 2.118.0 oder höher, installiert und konfiguriert](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_configure)](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ Python Version 3.9 oder höher, [installiert](https://www.python.org/downloads/)
+ AWS Command Line Interface [(AWS CLI) Version 2.13.19 oder höher, installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ [Docker Version 24.0.6 oder höher, installiert](https://docs.docker.com/get-started/get-docker/)
+ Landing Zone Accelerator auf AWS Lösung, [bereitgestellt](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/deploy-the-solution.html) im Verwaltungskonto
+ [(Optional) Microsoft Entra ID und IAM Identity Center, integriert](https://docs.aws.amazon.com/singlesignon/latest/userguide/idp-microsoft-entra.html)

**Einschränkungen**

Der Workflow zur Kontoerstellung unterstützt sequentielle Ausführungen zur Bereitstellung eines einzelnen Kontos. AWS-Konto Diese Einschränkung stellt sicher, dass der Workflow zur Kontoerstellung erfolgreich abgeschlossen wurde, ohne dass während eines parallel Laufs um Ressourcen konkurriert werden muss.

## Architektur
<a name="automate-account-creation-lza-architecture"></a>

**Zielarchitektur**

Die folgende Abbildung zeigt die allgemeine Architektur der Automatisierung der Erstellung einer neuen Datei AWS-Konto mithilfe des Landing Zone Accelerators. AWS AWS Step Functions orchestriert die Automatisierung. Jede Aufgabe im Step Functions Functions-Workflow wird von einer oder mehreren AWS Lambda Funktionen ausgeführt.

![Workflow zur Automatisierung der Erstellung eines neuen Kontos mithilfe des Landing Zone Accelerators auf AWS.](https://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/dfd6503d-a4ed-43df-82d4-082f8153d473.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Benutzer fordert ein Konto an, indem er entweder ein Python-Skript ausführt oder Amazon API Gateway verwendet.

1. Der Orchestrator-Workflow zur Kontoerstellung beginnt in AWS Step Functions.

1. Der Workflow aktualisiert die `account-config.yaml` Datei im Quellcode-Repository. Außerdem wird der Landing Zone Accelerator in der AWS Pipeline gestartet und der Status der Pipeline überprüft. Diese Pipeline erstellt und richtet das neue Konto ein. Weitere Informationen dazu, wie das funktioniert, finden Sie in der [Architekturübersicht](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/architecture-overview.html) für den Landing Zone Accelerator unter AWS.

1. (Optional) Wenn die Pipeline abgeschlossen ist, überprüft der Workflow, ob die Gruppe in Microsoft Entra ID vorhanden ist. Wenn die Gruppe nicht in Microsoft Entra ID vorhanden ist, fügt der Workflow die Gruppe zu Microsoft Entra ID hinzu.

1. Der Workflow führt zusätzliche Schritte durch, die der Landing Zone Accelerator auf der AWS Lösung nicht ausführen kann. Zu den Standardschritten gehören:
   + Erstellen eines [Kontoalias](https://docs.aws.amazon.com/IAM/latest/UserGuide/console-account-alias.html) in AWS Identity and Access Management (IAM)
   + Hinzufügen von [Tags](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html) an das Konto in AWS Organizations
   + Erstellen von Parametern im [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) auf der Grundlage der dem Konto zugewiesenen Tags

1. (Optional) Der Workflow weist der Microsoft Entra ID-Gruppe, die Sie zuvor angegeben haben, einen oder mehrere [Berechtigungssätze](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) zu. Die Berechtigungssätze ermöglichen es Benutzern in der Gruppe, auf das neue Konto zuzugreifen und die von Ihnen konfigurierten Aktionen auszuführen.

1. Eine AWS Lambda Funktion führt QA- und Validierungstests durch. Sie validiert die Erstellung von Ressourcen, prüft, ob Tags erstellt wurden, und überprüft, ob Sicherheitsressourcen bereitgestellt wurden.

1. Der Workflow gibt das Konto frei und verwendet Amazon Simple Email Service (Amazon SES), um den Benutzer darüber zu informieren, dass der Vorgang erfolgreich abgeschlossen wurde.

Weitere Informationen zum Step Functions-Workflow finden Sie unter *Step Functions Functions-Workflow-Diagramm* im Abschnitt [Zusätzliche Informationen](#automate-account-creation-lza-additional) dieses Musters.

**Microsoft Entra ID-Anwendungen**

Wenn Sie sich für die Integration mit Microsoft Entra ID entscheiden, erstellen Sie bei der Bereitstellung dieses Musters die folgenden beiden Anwendungen:
+ Eine Anwendung, die mit IAM Identity Center verknüpft ist und sicherstellt, dass Microsoft Entra ID-Gruppen in IAM Identity Center verfügbar sind. In diesem Beispiel wird diese Microsoft Entra ID-Anwendung benannt`LZA2`.
+ Eine Anwendung, die es einer Lambda-Funktion ermöglicht, mit Microsoft Entra ID zu kommunizieren und [Microsoft](https://learn.microsoft.com/en-us/graph/identity-network-access-overview) Graph aufzurufen. APIs In diesem Muster wird diese Anwendung benannt. `create_aws_account`

Diese Anwendungen sammeln Daten, die zum Synchronisieren der Microsoft Entra ID-Gruppe und zum Zuweisen von Berechtigungssätzen verwendet werden.

## Tools
<a name="automate-account-creation-lza-tools"></a>

**AWS-Services**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) unterstützt Sie bei der Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung von REST, HTTP und WebSocket APIs in jeder Größenordnung. In diesem Muster verwenden Sie API Gateway, um die Verfügbarkeit von AWS-Konto Namen zu überprüfen, den AWS Step Functions Workflow zu initiieren und den Status der Ausführung von Step Functions zu überprüfen.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)ist ein Softwareentwicklungs-Framework, das Ihnen hilft, AWS Cloud Infrastruktur im Code zu definieren und bereitzustellen.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)hilft Ihnen bei der Einrichtung und Verwaltung einer Umgebung AWS mit mehreren Konten und folgt dabei den vorgeschriebenen Best Practices.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen. AWS-Konten Diese Lösung verwendet eine [EventBridge Regel](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html), die eine Lambda-Funktion startet, wenn sich der Status des Step Functions Functions-Workflows auf `Failed``Timed-out`, oder `Aborted` ändert.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)hilft Ihnen dabei, den Single Sign-On (SSO) -Zugriff auf all Ihre Anwendungen AWS-Konten und Cloud-Anwendungen zentral zu verwalten.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen. In diesem Muster werden AWS KMS Schlüssel verwendet, um Daten zu verschlüsseln, z. B. Daten, die in Amazon Simple Storage Service (Amazon S3) gespeichert sind, Lambda-Umgebungsvariablen und Daten in Step Functions.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)ist ein Kontoverwaltungsservice, mit dem Sie mehrere Konten zu einer Organisation AWS-Konten zusammenfassen können, die Sie erstellen und zentral verwalten.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) unterstützt Sie beim Senden und Empfangen von E-Mails mithilfe Ihrer eigenen E-Mail-Adressen und Domains. Nachdem ein neues Konto erfolgreich erstellt wurde, erhalten Sie eine Benachrichtigung über Amazon SES.
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen. Wenn bei der Kontoerstellung ein Fehler auftritt, sendet Amazon SNS eine Benachrichtigung an die von Ihnen konfigurierten E-Mail-Adressen.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)ist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Funktionen und andere Funktionen kombinieren können, um geschäftskritische Anwendungen AWS-Services zu erstellen.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) bietet sicheren, hierarchischen Speicher für die Verwaltung von Konfigurationsdaten und Geheimnissen.

**Andere Tools**
+ [awscurl](https://pypi.org/project/awscurl/0.6/) automatisiert den Prozess des Signierens von AWS API-Anfragen und hilft Ihnen, Anfragen als Standard-Curl-Befehl zu stellen.
+ [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/fundamentals/whatis), früher bekannt als *Azure Active Directory*, ist ein cloudbasierter Identitäts- und Zugriffsverwaltungsdienst.
+ [Microsoft Graph APIs](https://learn.microsoft.com/en-us/graph/graph-explorer/graph-explorer-overview) hilft Ihnen beim Zugriff auf Daten und Informationen in Microsoft-Cloud-Diensten wie Microsoft Entra und Microsoft 365.

**Code-Repository**

Der Code für dieses Muster ist im GitHub [lza-account-creation-workflow](https://github.com/aws-samples/lza-account-creation-workflow)Repository verfügbar.

Das Verzeichnis [lambda\_layer](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer) enthält die folgenden Ebenen, auf die in mehr als einer Lambda-Funktion verwiesen wird:
+ [account\_creation\_helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/account_creation_helper) — Diese Ebene enthält die Module zur Übernahme von Rollen und zur Überprüfung des Fortschritts. AWS Service Catalog
+ [boto3](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/boto3) — Diese Ebene enthält das [AWS SDK für Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)Modul, um sicherzustellen, dass die neueste Version installiert ist. AWS Lambda 
+ [identity\_center\_helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/identity_center_helper) — Diese Ebene unterstützt Aufrufe von IAM Identity Center.

Das Verzeichnis [lambda\_src](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src) enthält die folgenden Lambda-Funktionen:
+ [AccountTagToSsmParameter](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/event/AccountTagToSsmParameter)— Diese Funktion verwendet die an das Konto angehängten Tags, um Parameter AWS Organizations im Parameter Store zu erstellen. Jeder Parameter beginnt mit einem `/account/tags/` Präfix.
+ [AttachPermissionSet](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AttachPermissionSet)— Diese Funktion fügt einer IAM Identity Center-Gruppe einen Berechtigungssatz hinzu.
+ [Azure ADGroup Sync](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AzureADGroupSync) — Diese Funktion synchronisiert die Microsoft Entra ID-Zielgruppe mit dem IAM Identity Center.
+ [CheckForRunningProcesses](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CheckForRunningProcesses)— Diese Funktion prüft, ob die `AWSAccelerator-Pipeline` Pipeline derzeit läuft. Wenn die Pipeline läuft, verzögert die Funktion den AWS Step Functions Workflow.
+ [CreateAccount](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAccount)— Diese Funktion verwendet AWS Service Catalog und AWS Control Tower , um das Neue zu erstellen AWS-Konto.
+ [CreateAdditionalResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAdditionalResources)— Diese Funktion erstellt die AWS Ressourcen, die nicht von Landing Zone Accelerator oder verwaltet werden AWS CloudFormation, wie z. B. der Alias und die AWS Service Catalog Tags des Kontos.
+ [GetAccountStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/GetAccountStatus)— Diese Funktion sucht nach dem bereitgestellten Produkt, AWS Service Catalog um festzustellen, ob der Kontoerstellungsprozess abgeschlossen ist.
+ [GetExecutionStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/GetExecutionStatus)— Diese Funktion ruft den Status einer laufenden oder abgeschlossenen AWS Step Functions Ausführung ab.
+ [NameAvailability](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/NameAvailability)— Diese Funktion prüft, ob ein AWS-Konto Name bereits in AWS Organizations existiert.
+ [ReturnResponse](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ReturnResponse)— Wenn die Kontoerstellung erfolgreich war, gibt diese Funktion die ID des neuen Kontos zurück. Wenn die Kontoerstellung nicht erfolgreich war, wird eine Fehlermeldung zurückgegeben.
+ [RunStepFunction](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/RunStepFunction)— Diese Funktion führt den AWS Step Functions Workflow aus, der das Konto erstellt.
+ [SendEmailWithSES](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/SendEmailWithSES) — Diese Funktion sendet E-Mails an die Benutzer, die darauf warten, dass die Kontoerstellung abgeschlossen ist.
+ [ADGroupSyncToSSO validieren](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateAdGroupSyncToSSO) — Diese Funktion überprüft, ob die angegebenen Microsoft Entra ID-Gruppen mit IAM Identity Center synchronisiert sind.
+ [ValidateResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateResources)— Diese Funktion überprüft, ob alle AWS Control Tower Anpassungen erfolgreich ausgeführt wurden.

## Best Practices
<a name="automate-account-creation-lza-best-practices"></a>

Wir empfehlen die folgenden Benennungskonventionen für: AWS CDK 
+ Starten Sie alle Parameter mit einem `p` Präfix.
+ Starten Sie alle Bedingungen mit einem `c` Präfix.
+ Starten Sie alle Ressourcen mit einem `r` Präfix.
+ Startet alle Ausgaben mit einem `o` Präfix.

## Epen
<a name="automate-account-creation-lza-epics"></a>

### Stellen Sie die IAM-Rollen für Validierung und Tagging bereit
<a name="deploy-the-iam-roles-for-validation-and-tagging"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereite den Landing Zone Accelerator auf AWS die Anpassung vor. | 1. Erstellen Sie im AWS Code-Repository von Landing Zone Accelerator eine Datei mit dem Namen`customizations-config.yaml`. Sie verwenden diese Datei, um Anpassungen für die Kernlösung zu definieren. Weitere Informationen finden Sie unter [Anpassen der Lösung](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/customizing-the-solution.html).<br />2. Erstellen Sie in der `customizations-config.yaml` Datei einen Abschnitt mit dem Namen`cloudFormationStacks`. | AWS DevOps | 
| Bereiten Sie sich auf die Bereitstellung der `lza-account-creation-validation` Rolle vor. | Jetzt passen Sie die Lösung so an, dass die `lza-account-creation-validation` IAM-Rolle in allen Konten außer dem Verwaltungskonto bereitgestellt wird. Diese Rolle bietet der `ValidateResources` Lambda-Funktion schreibgeschützten Zugriff auf die neuen Konten.1. Laden Sie die [account-creation-validation-role.yaml-Datei](https://github.com/aws-samples/lza-account-creation-workflow/blob/main/dependencies/account-creation-validation-role.yaml) von herunter. GitHub<br />2. Speichern Sie die Datei an dem Speicherort, der im Abschnitt „Vorlagen“ der `customizations-config.yaml` Datei angegeben ist.<br />3. Öffnen Sie die `customizations-config.yaml` Datei.<br />4. Fügen Sie in dem `cloudFormationStacks` Abschnitt den folgenden Code hinzu. Aktualisiere das Ziel nach AWS-Region Bedarf für deine landing zone:<pre>        - deploymentTargets:<br />            organizationalUnits:<br />              - Root<br />            excludedAccounts:<br />              - Management              <br />          description: IAM Role to allow Account Validation<br />          name: lza-account-creation-validation<br />          regions:<br />            - us-east-1<br />          template: cloudformation/account-creation-validation-role.yaml<br />          runOrder: 1 <br />          terminationProtection: true<br />          parameters:<br />            - name: pManagementAccountId<br />              value: "{{ account Management }}"</pre><br />5. Speichern und schließen Sie die Datei `customizations-config.yaml`. | AWS DevOps | 
| Bereiten Sie sich auf die Bereitstellung der `account-tagging-to-ssm-parameter-role` Rolle vor. | Jetzt passen Sie die Lösung so an, dass die `account-tagging-to-ssm-parameter-role` IAM-Rolle in allen Konten außer dem Verwaltungskonto bereitgestellt wird. Diese Rolle wird verwendet, um die Parameter im AWS Systems Manager Parameter Store zu erstellen.1. Laden Sie die Datei [account-tagging-to-ssm-parameter-role.yaml](https://github.com/aws-samples/lza-account-creation-workflow/blob/main/dependencies/account-tagging-to-ssm-parameter-role.yaml) von herunter. GitHub<br />2. Speichern Sie die Datei an dem Speicherort, der im Abschnitt „Vorlagen“ der Datei angegeben ist. `customizations-config.yaml`<br />3. Öffnen Sie die `customizations-config.yaml` Datei.<br />4. Fügen Sie in dem `cloudFormationStacks` Abschnitt den folgenden Code hinzu. Aktualisiere das Ziel nach AWS-Region Bedarf für deine landing zone:<pre>        - deploymentTargets:<br />            organizationalUnits:<br />              - Root<br />            excludedAccounts:<br />              - Management<br />          description: IAM Role to create SSM Parameters based on Account Tagging<br />          name: lza-account-tagging-to-ssm-parameter<br />          regions:<br />            - us-east-1<br />          template: cloudformation/account-tagging-to-ssm-parameter-role.yaml<br />          runOrder: 1 <br />          terminationProtection: true          <br />          parameters:<br />            - name: pManagementAccountId<br />              value: "{{ account Management }}"</pre><br />5. Speichern und schließen Sie die Datei `customizations-config.yaml`. | AWS DevOps | 
| Bereiten Sie sich auf die Bereitstellung der `config-log-validation-role` Rolle vor. | Jetzt passen Sie die Lösung an, um die `config-log-validation-role` IAM-Rolle im Protokollarchivkonto bereitzustellen. Diese Rolle ermöglicht der `ValidateResources` Lambda-Funktion den Zugriff auf den Amazon S3 S3-Bucket für Protokollierung und AWS Config Zugriffsregeln.1. Laden Sie die [config-log-validation-role.yaml-Datei](https://github.com/aws-samples/lza-account-creation-workflow/blob/main/dependencies/config-log-validation-role.yaml) von herunter. GitHub<br />2. Speichern Sie die Datei an dem Speicherort, der im Abschnitt „Vorlagen“ der `customizations-config.yaml` Datei angegeben ist.<br />3. Öffnen Sie die `customizations-config.yaml` Datei.<br />4. Fügen Sie in dem `cloudFormationStacks` Abschnitt den folgenden Code hinzu. Aktualisiere das Ziel nach AWS-Region Bedarf für deine landing zone:<pre>        - deploymentTargets:<br />            accounts:<br />              - LogArchive<br />          description: IAM Role to validate Config and Logs<br />          name: lza-config-log-validation-role<br />          regions:<br />            - us-east-1<br />          template: cloudformation/config-log-validation-role.yaml<br />          runOrder: 1 <br />          terminationProtection: true          <br />          parameters:<br />            - name: pManagementAccountId<br />              value: "{{ account Management }}"</pre><br />5. Speichern, schließen und übernehmen Sie die an der `customizations-config.yaml` Datei vorgenommenen Änderungen. | AWS DevOps | 

### (Optional) Daten von Microsoft Entra ID abrufen
<a name="optional-get-data-from-microsoft-entra-id"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Anwendung, die es einer Lambda-Funktion ermöglicht, mit Microsoft Entra ID zu kommunizieren. | 1. Registrieren Sie die `create_aws_account` Anwendung im Microsoft Entra ID Admin Center. Anweisungen finden Sie in der Microsoft-Dokumentation unter [Registrieren einer Anwendung](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app).<br />2. Folgen Sie den Anweisungen unter [Aktualisieren der angeforderten Berechtigungen einer App](https://learn.microsoft.com/en-us/entra/identity-platform/howto-update-permissions) in der Microsoft-Dokumentation, um die folgenden Microsoft Graph-Berechtigungen für die `create_aws_account` Anwendung zu konfigurieren:[Anwendung.Lesen.Alles](https://learn.microsoft.com/en-us/graph/permissions-reference#applicationreadall)Typ: AnwendungZustimmung des Administrators erforderlich: Ja[AppRoleAssignment. ReadWrite. Alle](https://learn.microsoft.com/en-us/graph/permissions-reference#approleassignmentreadwriteall)Typ: AnwendungZustimmung des Administrators erforderlich: Ja[Gruppe. ReadWrite. Alle](https://learn.microsoft.com/en-us/graph/permissions-reference#groupreadwriteall)Typ: AnwendungZustimmung des Administrators erforderlich: Ja[ServicePrincipalEndpoint.Lesen.Alle](https://learn.microsoft.com/en-us/graph/permissions-reference#serviceprincipalendpointreadall)Typ: AnwendungZustimmung des Administrators erforderlich: Ja[Synchronisation. ReadWrite. Alle](https://learn.microsoft.com/en-us/graph/permissions-reference#synchronizationreadwriteall)Typ: AnwendungZustimmung des Administrators erforderlich: Ja[Benutzer.Lesen](https://learn.microsoft.com/en-us/graph/permissions-reference#userread)Typ: DelegiertZustimmung des Administrators erforderlich: Nein | Microsoft Entra ID | 
| Ruft Werte für die `create_aws_account` Anwendung ab. | Jetzt rufen Sie die Werte ab, die Sie für die `create_aws_account` Anwendung benötigen.1. Navigieren Sie im Microsoft Entra ID Admin Center zu **App-Registrierungen** und wählen Sie `create_aws_account` dann.<br />2. Wählen Sie im linken Bereich „**Übersicht**“ aus.<br />3. Notieren Sie sich auf der **Übersichtsseite** die folgenden Werte:Anwendungs-ID (Client)Verzeichnis-ID (Mandanten-ID)<br />4. Wählen Sie im linken Bereich unter **Verwalten** die Option **Certificates & Secrets** aus.<br />5. Wählen Sie auf der Seite **Certificates & Secrets** den Tab **Client Secrets** aus und notieren Sie sich dann die folgenden Werte:Wert für den geheimen ClientschlüsselGeheime Kunden-ID | Microsoft Entra ID | 
| Erstellen Sie die Anwendung, die Microsoft Entra ID mit IAM Identity Center integriert. | Registrieren Sie die `LZA2` Anwendung im Microsoft Entra ID Admin Center. Anweisungen finden Sie in der Microsoft-Dokumentation unter [Registrieren einer Anwendung](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app). | Microsoft Entra ID | 
| Ruft Werte für die `LZA2` Anwendung ab. | Jetzt rufen Sie die Werte ab, die Sie für die `LZA2` Anwendung benötigen.1. Navigieren Sie im Microsoft Entra ID Admin Center zu **Unternehmensanwendungen** und wählen Sie `LZA2` dann.<br />2. Wählen Sie im linken Bereich „**Übersicht**“ aus.<br />3. Notieren Sie sich auf der **Übersichtsseite** die folgenden Werte:NameObjekt-ID<br />4. Wählen Sie im linken Bereich unter **Verwalten** die Option **Manifest** aus.<br />5. Suchen Sie in der JSON-Datei im `appRoles` Abschnitt nach der benannten App-Rolle`User`.<br />6. Notieren Sie sich den `id` Wert für diese App-Rolle. | Microsoft Entra ID | 
| Erstellen Sie ein Geheimnis. | 1. Geben Sie in der AWS CLI den folgenden Befehl ein, um die Variablen zu erstellen. Verwenden Sie die Werte, die Sie für die `LZA2` Anwendungen `create_aws_account` und abgerufen haben:<pre># Variables for create_aws_account app<br />  TENANT_ID='<Directory ID>'<br />  CLIENT_ID='<Application ID>'<br />  SECRET_ID='<Client secret ID>'<br />  SECRET_VALUE='<Client secret value>'<br /><br /># Variables for LZA2 app<br />  OBJECT_ID='<Object ID>'<br />  APP_ROLE_ID='<App role ID>'<br />  ENTERPRISE_APP_NAME='<Name>'</pre><br />2. Geben Sie den folgenden Befehl ein, um ein Geheimnis mit dem Namen `GraphApiSecret` in zu erstellen AWS Secrets Manager:<pre>aws secretsmanager create-secret \<br />  --name GraphApiSecret \<br />  --secret-string "{\"client_id\": \"${CLIENT_ID}\", \"tenant_id\": \"${TENANT_ID}\", \"object_id\": \"${OBJECT_ID}\", \"app_role_id\": \"${APP_ROLE_ID}\", \"secret_value\": \"${SECRET_VALUE}\", \"secret_id\": \"${SECRET_ID}\"}"</pre><br />Wenn Sie das Geheimnis in future aktualisieren müssen, können Sie die Variablen aktualisieren und den folgenden Befehl ausführen:<pre>aws secretsmanager update-secret \<br />  --secret-id GraphApiSecret \<br />  --secret-string "{\"client_id\": \"${CLIENT_ID}\", \"tenant_id\": \"${TENANT_ID}\", \"object_id\": \"${OBJECT_ID}\", \"app_role_id\": \"${APP_ROLE_ID}\", \"secret_value\": \"${SECRET_VALUE}\", \"secret_id\": \"${SECRET_ID}\"}"</pre> | AWS DevOps | 

### Bereitstellen der Lösung
<a name="deploy-the-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie den Quellcode. | 1. Geben Sie den folgenden Befehl ein, um das [lza-account-creation-workflow](https://github.com/aws-samples/lza-account-creation-workflow)Repository zu klonen:<pre>git clone https://github.com/aws-samples/lza-account-creation-workflow</pre><br />2. Geben Sie den folgenden Befehl ein, um in das `config` Verzeichnis des geklonten Repositorys zu navigieren:<pre>cd lza-account-creation-workflow/config</pre> | DevOps Ingenieur | 
| Aktualisieren Sie die `deploy-config.yaml` Datei. | 1. Öffnen Sie die `deploy-config.yaml` Datei.<br />2. Überprüfen Sie die Vorlage und aktualisieren Sie die Werte nach Bedarf für die Bereitstellung in Ihrer AWS Umgebung. Aktualisieren Sie beispielsweise Werte für Folgendes:`accountCreationFailure``accountCompletionFromEmail``ssoLoginUrl``rootEmailPrefix``rootEmailDomain`<br />3. Wenn Sie mit Microsoft Entra ID integrieren, gehen Sie wie folgt vor:Setzen Sie `enableAzureADIntegration` auf `true`.Geben Sie als `graphApiSecretName` Wert das Geheimnis ein, das Sie zuvor erstellt haben (`GraphApiSecret`).<br />4. Speichern und schließen Sie die Datei `deploy-config.yaml`. | AWS DevOps | 
| Stellen Sie die Lösung in Ihrer AWS Umgebung bereit. | 1. Geben Sie den folgenden Befehl ein:<pre>cdk bootstrap <account-number>/<Region></pre><br />Weitere Informationen finden Sie in der [Dokumentation unter Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html). AWS CDK <br />2. Geben Sie den folgenden Befehl ein, um die Vorlage zu synthetisieren: CloudFormation <pre>cdk synth</pre><br />Weitere Informationen finden Sie in der AWS CDK Dokumentation unter [Konfiguration und Durchführung der AWS CDK Stack-Synthese](https://docs.aws.amazon.com/cdk/v2/guide/configure-synth.html).<br />3. Geben Sie den folgenden Befehl ein, um die Lösung bereitzustellen.<pre>cdk deploy</pre><br />Weitere Informationen finden Sie in der AWS CDK Dokumentation unter [Bereitstellen von AWS CDK Anwendungen](https://docs.aws.amazon.com/cdk/v2/guide/deploy.html).Diese Lösung verwendet einen Amazon S3 S3-Bucket, um den Quellcode für diese Lösung zu speichern. Sie können das Skript [upload\_to\_source\_bucket.py](https://github.com/aws-samples/gen-ai-trivia/blob/main/scripts/upload_to_source_bucket.py) verwenden, um ein Archiv des Quellcodes zu erstellen und eine aktualisierte Version hochzuladen. | AWS DevOps | 

### Option 1 — Erstellen Sie ein Konto mit Python
<a name="option-1-create-an-account-using-python"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie, welche Argumente verwendet werden sollen. | Wählen Sie aus, welche Argumente verwendet werden sollen, wenn Sie das Python-Skript ausführen, das den Step Functions-Workflow initiiert. Eine vollständige Liste der Argumente finden Sie im Abschnitt [Zusätzliche Informationen](#automate-account-creation-lza-additional) dieses Musters. | AWS DevOps, Python | 
| Starten Sie das Python-Skript. | 1. Geben Sie den folgenden Befehl ein, um zum geklonten Repository zu navigieren:<pre>cd lza-account-creation-workflow</pre><br />2. Führen Sie das Python-Skript aus, das den Step Functions Functions-Workflow initiiert. Im Folgenden finden Sie einen Beispielbefehl, der Beispielargumente und Werte enthält:<pre>python ./run-stepfunction.py \<br />  --account-name "lza-test-01" \<br />  --support-dl "johnsmith@example.com" \<br />  --managed-org-unit "Workloads/Workload-1" \<br />  --purpose "Testing new micro service" \<br />  --force-update true \<br />  --ad-integration "{\"CustomerAccountAdmin\": \"platform-admin\", \"CustomerAccountDev\": \"workload1-app1\"}" \<br />  --bypass-creation true \<br />  --tags APPLICATION=TestingMicroService</pre><br />3. Warten Sie, bis Sie eine Benachrichtigung erhalten, dass das Konto erfolgreich erstellt wurde.Wenn die Kontoerstellung fehlschlägt, sendet Amazon SNS eine Benachrichtigung an die E-Mail-Adressen, die Sie `accountCreationFailure` in der `deploy-config.yaml` Datei definiert haben. Der Kontoanforderer wird nicht benachrichtigt. | DevOps Ingenieur, Python | 

### Option 2 — Erstellen Sie ein Konto mit API Gateway und awscurl
<a name="option-2-create-an-account-using-api-gateway-and-awscurl"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie die Variablen für awscurl ein. | 1. Geben Sie den folgenden Befehl ein, um in das Quellcodeverzeichnis zu navigieren:<pre>cd lza-account-creation-workflow</pre><br />2. Geben Sie den folgenden Befehl ein, um die AWS Zugriffsschlüsselvariablen festzulegen. Sie können die Variablen aus dem [AWS Access Portal](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html) kopieren und sie dann in eine Shell einfügen. Im Folgenden wird ein Beispiel gezeigt:<pre>export AWS_ACCESS_KEY_ID="<id>"<br />export AWS_SECRET_ACCESS_KEY="<key>"<br />export AWS_SESSION_TOKEN="<token>"</pre><br />3. Geben Sie den folgenden Befehl ein, um die AWS-Region für API-Aufrufe festzulegen:<pre>export AWS_REGION=$(aws configure get region)</pre><br />4. Geben Sie den folgenden Befehl ein, um den API-Gateway-Endpunkt aus der `lza-account-creation-workflow-application` CloudFormation Ausgabe abzurufen:<pre>export API_GATEWAY_ENDPOINT=$(aws cloudformation describe-stacks --stack-name "lza-account-creation-workflow-application" --query 'Stacks[*].Outputs[?OutputKey==`oApiGatewayCreateAccountEndpoint`].OutputValue' --output text)</pre> | AWS DevOps | 
| Überprüfen Sie die Verfügbarkeit von Namen. | Geben Sie den folgenden Befehl ein, um zu überprüfen, ob der Name für verfügbar ist AWS-Konto. Durch `<AWS_ACCOUNT_NAME>` den Namen des Zielkontos ersetzen:<pre>awscurl --service execute-api \<br />    --region ${AWS_REGION} \<br />    --access_key ${AWS_ACCESS_KEY_ID} \<br />    --secret_key ${AWS_SECRET_ACCESS_KEY} \<br />    --security_token ${AWS_SESSION_TOKEN} \<br />    -X POST ${API_GATEWAY_ENDPOINT}check_name?account_name=<AWS_ACCOUNT_NAME></pre> | AWS DevOps | 
| Führen Sie den Workflow zur Kontoerstellung aus. | 1. Öffnen Sie die `api_example.json` Datei im Stammordner des geklonten Repositorys.<br />2. Aktualisieren Sie die Parameter mit Ihren Konfigurationswerten:<pre>{<br />    "account_name": "lza-test-01",<br />    "account_email": "johnsmith+lzatest01@example.com",<br />    "support_dl": "johnsmith@example.com",<br />    "managed_org_unit": "Workloads/Workload-1",<br />    "ad_integration": [<br />        {<br />            "PermissionSetName": "CustomerAccountAdmin",<br />            "ActiveDirectoryGroupName": "platform-admin"<br />        },<br />        {<br />            "PermissionSetName": "CustomerAccountDev",<br />            "ActiveDirectoryGroupName": "workload1-app1"<br />        }<br />    ],<br />    "force_update": "true",<br />    "bypass_creation": "false",<br />    "account_tags": [<br />        {<br />            "Key": "Environment",<br />            "Value": "Dev"<br />        }, {<br />            "Key": "DeploymentMethod",<br />            "Value": "ApiGateway"<br />        }<br />    ]<br />}</pre><br />3. Speichern und schließen Sie die Datei `api_example.json`.<br />4. Geben Sie den folgenden Befehl ein, um den Step Functions Functions-Workflow zu starten:<pre>awscurl --service execute-api \<br />    --data @api-example.json \<br />    --region ${AWS_REGION} \<br />    --access_key ${AWS_ACCESS_KEY_ID} \<br />    --secret_key ${AWS_SECRET_ACCESS_KEY} \<br />    --security_token ${AWS_SESSION_TOKEN} \<br />    -X POST ${API_GATEWAY_ENDPOINT}execute</pre><br />5. Notieren Sie sich in der Ausgabe des vorherigen Befehls den Amazon Resource Name (ARN) für die Ausführung von Step Functions.<br />6. Wenn Sie den Status des Step Functions Functions-Workflows überprüfen möchten, geben Sie den folgenden Befehl ein. `<STEP_FUNCTION_EXECUTION_NAME>`Ersetzen Sie durch den Ausführungs-ARN oder den Namen der Step Functions Functions-Ausführung:<pre>awscurl --service execute-api \<br />  --region ${AWS_REGION} \<br />  --access_key ${AWS_ACCESS_KEY_ID} \<br />  --secret_key ${AWS_SECRET_ACCESS_KEY} \<br />  --security_token ${AWS_SESSION_TOKEN} \<br />  -X GET ${API_GATEWAY_ENDPOINT}get_execution_status?execution=<STEP_FUNCTION_EXECUTION_NAME></pre><br />7. Warten Sie, bis Sie eine Benachrichtigung erhalten, dass das Konto erfolgreich erstellt wurde.Wenn die Kontoerstellung fehlschlägt, sendet Amazon SNS eine Benachrichtigung an die E-Mail-Adressen, die Sie `accountCreationFailure` in der `deploy-config.yaml` Datei definiert haben. Der Kontoanforderer wird nicht benachrichtigt. | AWS DevOps | 

### (Optional) Bereinigen Sie die Lösung
<a name="optional-clean-up-the-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Objekte aus den Amazon S3 S3-Buckets entfernen. | Entfernen Sie alle Objekte in den folgenden Amazon S3 S3-Buckets:+ `lza-account-creation-work-<CDK_UNIQUE_ID>`<br />+ `lza-account-creation-workflow-src-<AWS_REGION>-<AWS_ACCOUNT>`<br />+ `lza-account-creation-workflow-<AWS_REGION>-<AWS_ACCOUNT>` | AWS DevOps | 
| Löschen Sie den CloudFormation Stack. | Geben Sie den folgenden Befehl ein, um den CloudFormation Stack zu löschen:<pre>aws cloudformation delete-stack \<br />  --stack-name lza-account-creation-workflow-application<br />aws cloudformation wait stack-delete-complete \<br />  --stack-name lza-account-creation-workflow-application</pre> | AWS DevOps | 
| Löschen der Pipeline. | Geben Sie den folgenden Befehl ein, um die `lza-account-creation-workflow-pipeline` Pipeline zu löschen:<pre>cdk destroy lza-account-creation-workflow-pipeline --force</pre> | AWS DevOps | 

## Zugehörige Ressourcen
<a name="automate-account-creation-lza-resources"></a>
+ [Landing Zone Accelerator aktiviert AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) (AWS Lösungsbibliothek)
+ [Behebung häufig AWS CDK auftretender Probleme](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) (AWS CDK Dokumentation)

## Zusätzliche Informationen
<a name="automate-account-creation-lza-additional"></a>

**Workflow-Diagramm von Step Functions**

Die folgende Abbildung zeigt die Status im Step Functions Functions-Workflow.

![Staaten im Step Functions Functions-Workflow.](https://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/d93aa7bf-1144-4f25-9488-aacc534a7813.png)


**Argumente**

Die folgenden Argumente können Sie verwenden, wenn Sie das Python-Skript ausführen, das den Step Functions Functions-Workflow initiiert.

Die folgenden Argumente sind erforderlich:
+ `account-name (-a)`(string) — Der Name des neuen AWS-Konto.
+ `support-dl (-s)`(string) — Die E-Mail-Adresse, die benachrichtigt wird, wenn der Kontoerstellungsprozess abgeschlossen ist.
+ `managed-org-unit (-m)`(string) — Die verwaltete [Organisationseinheit (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit), die das neue Konto enthalten wird.

Die folgenden Argumente sind optional:
+ `ad-integration (-ad)`(Zeichenkettenwörterbuch) — Die Microsoft Entra ID-Gruppe und der zugewiesene Berechtigungssatz. Im Folgenden finden Sie ein Beispiel für die Verwendung dieses Arguments:

  ```
  --ad-integration "{\"<PermissionSetName>\": \"<EntraIdGroupName>\"}"
  ```
+ `account-email (-e)`****(string) — Die E-Mail-Adresse für den Root-Benutzer des neuen AWS-Konto.
**Anmerkung**  
Wenn dieses Argument nicht verwendet wird, wird anhand der Werte `rootEmailPrefix` und `rootEmailDomain` aus der `configs/deploy-config.yaml` Datei eine E-Mail-Adresse generiert. Wenn keine E-Mail-Adresse angegeben wird, wird eine E-Mail-Adresse im folgenden Format generiert:`rootEmailPrefix+accountName@rootEmailDomain`.
+ `region (-r)`(string) — Der AWS-Region Ort, an dem der Step Functions Functions-Workflow bereitgestellt wurde. Der Standardwert ist `us-east-1`.
+ `force-update (-f)`(string Boolean) — Geben Sie die Eingabetaste ein`true`, um die Aktualisierung des bereitgestellten Produkts AWS Service Catalog zu erzwingen.
+ `bypass-creation (-b)`(string Boolean) — Geben Sie `true` diese Option ein, um das Hinzufügen des Kontos zur `accounts-config.yaml` Datei und die Ausführung der Pipeline zu umgehen. `AWSAccelerator-Pipeline` Dieses Argument wird normalerweise verwendet, um den Workflow-Prozess zur Kontoerstellung zu testen oder um die restlichen Step Functions-Schritte auszuführen, falls in der `Landing Zone Accelerator` Pipeline ein Fehler auftritt.
+ `tags (-t)`(string) — Zusätzliche Tags, die Sie dem hinzufügen möchten AWS-Konto. Standardmäßig werden die folgenden Tags hinzugefügt: `account-name``support-dl`, und`purpose`. Im Folgenden finden Sie ein Beispiel für die Verwendung dieses Arguments:

  ```
  --tags TEST1=VALUE1 TEST2=VALUE2
  ```