

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.

# Zentralisieren Sie die Verwaltung von IAM-Zugriffsschlüsseln in AWS Organizations mithilfe von Terraform
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform"></a>

*Aarti Rajput, Chintamani Aphale, T.V.R.L.Phani Kumar Dadi, Pratap Kumar Nanda, Pradip Kumar Pandey und Mayuri Shinde, Amazon Web Services*

## Zusammenfassung
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-summary"></a>

Die Durchsetzung von Sicherheitsregeln für Schlüssel und Passwörter**** ist eine wichtige Aufgabe für jedes Unternehmen. Eine wichtige Regel besteht darin, die Schlüssel von AWS Identity and Access Management (IAM) in regelmäßigen Abständen zu rotieren, um die Sicherheit zu gewährleisten. AWS-Zugriffsschlüssel werden in der Regel lokal erstellt und konfiguriert, wann immer Teams über die AWS-Befehlszeilenschnittstelle**** (AWS-CLI) oder über Anwendungen außerhalb von AWS auf AWS zugreifen möchten. Um eine hohe Sicherheit im gesamten Unternehmen aufrechtzuerhalten, müssen alte Sicherheitsschlüssel geändert oder gelöscht werden, nachdem die Anforderung erfüllt wurde, oder in regelmäßigen Abständen. Die Verwaltung von Schlüsselrotationen für mehrere Konten in einem Unternehmen ist zeitaufwändig und mühsam. Dieses Muster hilft Ihnen, den Rotationsprozess zu automatisieren, indem Sie Account Factory for Terraform (AFT) und AWS-Services verwenden.

Das Muster bietet die folgenden Vorteile:
+ Verwaltet Ihren Zugriffsschlüssel IDs und Ihre geheimen Zugangsschlüssel für alle Konten in Ihrer Organisation von einem zentralen Standort aus.
+ Die Umgebungsvariablen `AWS_ACCESS_KEY_ID` und die `AWS_SECRET_ACCESS_KEY` Umgebungsvariablen werden automatisch rotiert.
+ Erzwingt eine Verlängerung, wenn Benutzeranmeldedaten kompromittiert werden.

Das Muster verwendet Terraform, um AWS Lambda Lambda-Funktionen, EventBridge Amazon-Regeln und IAM-Rollen bereitzustellen. Eine EventBridge Regel wird in regelmäßigen Abständen ausgeführt und ruft eine Lambda-Funktion auf, die alle Benutzerzugriffsschlüssel auflistet, je nachdem, wann sie erstellt wurden. Zusätzliche Lambda-Funktionen erstellen eine neue Zugriffsschlüssel-ID und einen neuen geheimen Zugriffsschlüssel, wenn der vorherige Schlüssel älter ist als der von Ihnen definierte Rotationszeitraum (z. B. 45 Tage), und benachrichtigen einen Sicherheitsadministrator mithilfe von Amazon Simple Notification Service (Amazon SNS) und Amazon Simple Email Service (Amazon SES). Secrets werden in AWS Secrets Manager für diesen Benutzer erstellt, der alte geheime Zugriffsschlüssel wird in Secrets Manager gespeichert und die Berechtigungen für den Zugriff auf den alten Schlüssel werden konfiguriert. Um sicherzustellen, dass der alte Zugriffsschlüssel nicht mehr verwendet wird, wird er nach einer inaktiven Zeit deaktiviert (z. B. 60 Tage, was in unserem Beispiel 15 Tage nach der Rotation der Schlüssel wäre). Nach einer inaktiven Pufferzeit (z. B. 90 Tage oder 45 Tage nach der Rotation der Schlüssel in unserem Beispiel) werden die alten Zugriffsschlüssel aus AWS Secrets Manager gelöscht. Eine detaillierte Architektur und ein detaillierter Arbeitsablauf finden Sie im Abschnitt [Architektur](#centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-architecture).

## Voraussetzungen und Einschränkungen
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-prereqs"></a>
+ Eine landing zone für Ihr Unternehmen, die mithilfe von [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html) (Version 3.1 oder höher) erstellt wurde
+  [Account Factory for Terraform (AFT),](https://catalog.workshops.aws/control-tower/en-US/customization/aft) konfiguriert mit drei Konten:
  + Das [Organisationsverwaltungskonto](https://catalog.workshops.aws/control-tower/en-US/customization/aft/repositories/global-customizations) verwaltet die gesamte Organisation von einem zentralen Standort aus.
  + Das [AFT-Verwaltungskonto](https://catalog.workshops.aws/control-tower/en-US/customization/aft/repositories/account-customizations) hostet die Terraform-Pipeline und stellt die Infrastruktur im Bereitstellungskonto bereit.
  + Das [Bereitstellungskonto](https://catalog.workshops.aws/control-tower/en-US/customization/aft/repositories/provisioning-customizations) stellt diese Komplettlösung bereit und verwaltet die IAM-Schlüssel von einem zentralen Standort aus.
+ Terraform Version 0.15.0 oder höher für die Bereitstellung der Infrastruktur im Bereitstellungskonto.
+ Eine E-Mail-Adresse, die in [Amazon Simple Email Service (Amazon SES)](https://aws.amazon.com/ses/) konfiguriert ist.
+ (Empfohlen) Um die Sicherheit zu erhöhen, stellen Sie diese Lösung in einem [privaten Subnetz](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html) (Bereitstellungskonto) innerhalb einer [Virtual Private Cloud (VPC](https://registry.terraform.io/modules/terraform-aws-modules/vpc/aws/latest)) bereit. Sie können die Details der VPC und des Subnetzes angeben, wenn Sie die Variablen anpassen (siehe *Anpassen der Parameter für die Code-Pipeline* im Abschnitt [Epics](#centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-epics)).

## Architektur
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-architecture"></a>

**AFT-Repositorien**

Dieses Muster verwendet Account Factory for Terraform (AFT), um alle erforderlichen AWS-Ressourcen und die Code-Pipeline für die Bereitstellung der Ressourcen in einem Bereitstellungskonto zu erstellen. Die Code-Pipeline läuft in zwei Repositorys:
+ **Die globale Anpassung** enthält Terraform-Code, der auf allen bei AFT registrierten Konten ausgeführt wird.
+ **Kontoanpassungen** enthalten Terraform-Code, der im Bereitstellungskonto ausgeführt wird.

**Einzelheiten zur Ressource**

 CodePipeline AWS-Jobs erstellen die folgenden Ressourcen im Bereitstellungskonto:
+  EventBridge AWS-Regel und konfigurierte Regel
+ `account-inventory`-Lambda-Funktion
+ `IAM-access-key-rotation`-Lambda-Funktion
+ `Notification`-Lambda-Funktion
+ Amazon Simple Storage Service (Amazon S3) -Bucket, der eine E-Mail-Vorlage enthält
+ Erforderliche IAM-Richtlinie

**Architektur**

![Architektur für die Zentralisierung der Verwaltung von IAM-Zugriffsschlüsseln in AWS Organizations](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0217275c-cb4c-4bdf-b105-ad9abfd4fded/images/844512f0-67b3-4d41-aaaa-fbd9e341c438.png)


Das Diagramm veranschaulicht folgende Vorgänge:

1. Eine EventBridge Regel ruft die `account-inventory` Lambda-Funktion alle 24 Stunden auf.

1. Die `account-inventory` Lambda-Funktion fragt AWS Organizations nach einer Liste aller AWS-Konten IDs, Kontonamen und Konto-E-Mails ab. 

1. Die `account-inventory` Lambda-Funktion initiiert eine `IAM-access-key-auto-rotation` Lambda-Funktion für jedes AWS-Konto und leitet die Metadaten zur weiteren Verarbeitung an dieses weiter.

1. Die `IAM-access-key-auto-rotation` Lambda-Funktion verwendet eine angenommene IAM-Rolle, um auf das AWS-Konto zuzugreifen. Das Lambda-Skript führt eine Prüfung aller Benutzer und ihrer IAM-Zugriffsschlüssel im Konto durch.

1. Der Schwellenwert für die IAM-Schlüsselrotation (Rotationsperiode) wird als Umgebungsvariable konfiguriert, wenn die `IAM-access-key-auto-rotation` Lambda-Funktion bereitgestellt wird. Wenn die Rotationsperiode geändert wird, wird die `IAM-access-key-auto-rotation` Lambda-Funktion mit einer aktualisierten Umgebungsvariablen erneut bereitgestellt. Sie können Parameter konfigurieren, um den Rotationsperiode, den inaktiven Zeitraum für alte Schlüssel und den inaktiven Puffer festzulegen, nach dessen Ablauf alte Schlüssel gelöscht werden (siehe *Anpassen der Parameter für die Code-Pipeline* im Abschnitt [Epics](#centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-epics)).

1. Die `IAM-access-key-auto-rotation` Lambda-Funktion validiert das Alter des Zugriffsschlüssels anhand seiner Konfiguration. Wenn das Alter des IAM-Zugriffsschlüssels den von Ihnen definierten Rotationszeitraum nicht überschritten hat, ergreift die Lambda-Funktion keine weiteren Maßnahmen.

1. Wenn das Alter des IAM-Zugriffsschlüssels den von Ihnen definierten Rotationszeitraum überschritten hat, erstellt die `IAM-access-key-auto-rotation` Lambda-Funktion einen neuen Schlüssel und rotiert den vorhandenen Schlüssel.

1. Die Lambda-Funktion speichert den alten Schlüssel in Secrets Manager und beschränkt die Berechtigungen auf den Benutzer, dessen Zugriffsschlüssel von den Sicherheitsstandards abgewichen sind. Die Lambda-Funktion erstellt außerdem eine ressourcenbasierte Richtlinie, die es nur dem angegebenen IAM-Prinzipal ermöglicht, auf das Geheimnis zuzugreifen und es abzurufen.

1. Die `IAM-access-key-rotation` Lambda-Funktion ruft die `Notification` Lambda-Funktion auf.

1. Die `Notification` Lambda-Funktion fragt den S3-Bucket nach einer E-Mail-Vorlage ab und generiert dynamisch E-Mail-Nachrichten mit den entsprechenden Aktivitätsmetadaten.

1. Die `Notification` Lambda-Funktion ruft Amazon SES zur weiteren Aktion auf.

1.  Amazon SES sendet eine E-Mail mit den entsprechenden Informationen an die E-Mail-Adresse des Kontoinhabers.

## Tools
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-tools"></a>

**AWS-Services**
+ [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. Für dieses Muster sind IAM-Rollen und -Berechtigungen erforderlich.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) hilft Ihnen dabei, hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Passwörter, durch einen API-Aufruf an Secrets Manager zu ersetzen, um das Geheimnis programmgesteuert abzurufen.
+ [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.

**Andere Tools**
+ [Terraform](https://www.terraform.io/) ist ein IaC-Tool (Infrastructure as Code) HashiCorp , mit dem Sie Cloud- und lokale Ressourcen erstellen und verwalten können.

**Code-Repository**

Die Anweisungen und der Code für dieses Muster sind im Repository für die GitHub [IAM-Zugriffsschlüsselrotation](https://github.com/aws-samples/centralized-iam-key-management-aws-organizations-terraform.git) verfügbar. Sie können den Code im zentralen Bereitstellungskonto von AWS Control Tower bereitstellen, um die Schlüsselrotation von einem zentralen Standort aus zu verwalten.

## Best Practices
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-best-practices"></a>
+ Informationen zu IAM finden Sie in der IAM-Dokumentation unter [Bewährte Sicherheitsmethoden](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).
+ Informationen zur Schlüsselrotation finden Sie in den [Richtlinien für die Aktualisierung von Zugriffsschlüsseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials) in der IAM-Dokumentation.

## Epen
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-epics"></a>

### Richten Sie Quelldateien ein
<a name="set-up-source-files"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das Repository | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 

### Konfigurieren Sie Konten
<a name="configure-accounts"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie das Bootstrapping-Konto. | Im Rahmen des [AFT-Bootstrapping-Vorgangs](https://catalog.workshops.aws/control-tower/en-US/customization/aft/deploy) sollte `aft-bootstrap` auf Ihrem lokalen Computer ein Ordner aufgerufen werden.[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 
| Konfigurieren Sie globale Anpassungen. | Als Teil der Einrichtung des [AFT-Ordners](https://catalog.workshops.aws/control-tower/en-US/customization/aft/repositories/global-customizations) sollten Sie `aft-global-customizations` auf Ihrem lokalen Computer einen Ordner namens haben.[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 
| Konfigurieren Sie Kontoanpassungen. | Im Rahmen der [Einrichtung des AFT-Ordners](https://catalog.workshops.aws/control-tower/en-US/customization/aft/repositories/account-customizations) haben Sie einen Ordner namens `aft-account-customizations` auf Ihrem lokalen Computer eingerichtet.[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 

### Passen Sie die Parameter für die Code-Pipeline an
<a name="customize-parameters-for-the-code-pipeline"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Passen Sie die Pipeline-Parameter für Nicht-Terraform-Codes für alle Konten an. | Erstellen Sie eine Datei mit dem Namen `input.auto.tfvars` im `aft-global-customizations/terraform/` Ordner und geben Sie die erforderlichen Eingabedaten ein. [Die Standardwerte finden Sie in der Datei im GitHub Repository](https://github.com/aws-samples/centralized-iam-key-management-aws-organizations-terraform/blob/main/global-account-customization/input.auto.tfvars). | DevOps Ingenieur | 
| Passen Sie die Code-Pipeline-Parameter für das Bereitstellungskonto an. | Erstellen Sie eine Datei mit dem Namen `input.auto.tfvars` im `aft-account-customizations/<AccountName>/terraform/` Ordner und übertragen Sie den Code an AWS CodeCommit. Durch das Übertragen von Code an AWS CodeCommit wird die Code-Pipeline automatisch initiiert.<br />Geben Sie Werte für Parameter an, die auf den Anforderungen Ihrer Organisation basieren, einschließlich der folgenden Werte (Standardwerte finden Sie [in der Datei im Github-Repository](https://github.com/aws-samples/centralized-iam-key-management-aws-organizations-terraform/blob/main/account-customization/input.auto.tfvars)): [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | DevOps — Ingenieur | 

### Überprüfen Sie die Schlüsselrotation
<a name="validate-key-rotation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Lösung. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 

### Erweitern Sie die Lösung
<a name="extend-the-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Passen Sie das Datum der E-Mail-Benachrichtigung an. | Wenn Sie an einem bestimmten Tag, bevor Sie den Zugriffsschlüssel deaktivieren, E-Mail-Benachrichtigungen senden möchten, können Sie die `IAM-access-key-auto-rotation` Lambda-Funktion mit diesen Änderungen aktualisieren:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | DevOps Ingenieur | 

## Fehlerbehebung
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Der `account-inventory` Lambda-Job schlägt `AccessDenied` beim Auflisten von Konten fehl. | Wenn dieses Problem auftritt, müssen Sie die Berechtigungen überprüfen:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/centralize-iam-access-key-management-in-aws-organizations-by-using-terraform.html) | 

## Zugehörige Ressourcen
<a name="centralize-iam-access-key-management-in-aws-organizations-by-using-terraform-resources"></a>
+ [Von Terraform empfohlene Vorgehensweisen](https://developer.hashicorp.com/terraform/cloud-docs/recommended-practices) (Terraform-Dokumentation)
+ Bewährte [Sicherheitsmethoden in IAM (IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html))
+ [Bewährte Methoden für die Schlüsselrotation](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials) (IAM-Dokumentation)