

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.

# AWS Secrets Manager Tutorials
<a name="tutorials"></a>

**Topics**
+ [

# Finden Sie mit Amazon CodeGuru Reviewer ungeschützte Geheimnisse in Ihrem Code
](integrating-codeguru.md)
+ [

# Verschieben Sie hartcodierte Geheimnisse nach AWS Secrets Manager
](hardcoded.md)
+ [

# Verschieben Sie hartcodierte Datenbankanmeldedaten nach AWS Secrets Manager
](hardcoded-db-creds.md)
+ [

# Richten Sie eine wechselnde Benutzerrotation ein für AWS Secrets Manager
](tutorials_rotation-alternating.md)
+ [

# Richten Sie die Einzelbenutzerrotation ein für AWS Secrets Manager
](tutorials_rotation-single.md)

# Finden Sie mit Amazon CodeGuru Reviewer ungeschützte Geheimnisse in Ihrem Code
<a name="integrating-codeguru"></a>

Amazon CodeGuru Reviewer ist ein Service, der mithilfe von Programmanalyse und maschinellem Lernen potenzielle Fehler erkennt, die für Entwickler schwer zu finden sind, und der Vorschläge zur Verbesserung Ihres Java- und Python-Codes bietet. CodeGuru Reviewer lässt sich in Secrets Manager integrieren, um ungeschützte Geheimnisse in Ihrem Code zu finden. Informationen zu den Arten von Geheimnissen, die es finden kann, finden Sie unter [Typen von Geheimnissen, die von CodeGuru Reviewer erkannt wurden](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/recommendations.html#secrets-found-types), im *Amazon CodeGuru Reviewer-Benutzerhandbuch*.

Sobald Sie fest codierte Secrets gefunden haben, ersetzen Sie sie:
+ [Verschieben Sie hartcodierte Datenbankanmeldedaten nach AWS Secrets Manager](hardcoded-db-creds.md)
+ [Verschieben Sie hartcodierte Geheimnisse nach AWS Secrets Manager](hardcoded.md)

# Verschieben Sie hartcodierte Geheimnisse nach AWS Secrets Manager
<a name="hardcoded"></a>

Wenn Sie Klartext-Secrets in Ihrem Code haben, empfehlen wir Ihnen, sie zu drehen und in Secrets Manager zu speichern. Das Verschieben des Secrets in Secrets Manager löst das Problem, dass das Secret für jeden sichtbar ist, der den Code sieht, da Ihr Code in Zukunft das Secret direkt aus Secrets Manager abruft. Durch Drehen des Secret wird das aktuelle fest codierte Secret widerrufen, sodass es nicht mehr gültig ist. 

Informationen zu Secrets für Datenbankanmeldeinformationen finden Sie unter [Verschieben Sie hartcodierte Datenbankanmeldedaten nach AWS Secrets Manager](hardcoded-db-creds.md).

Bevor Sie beginnen, müssen Sie ermitteln, wer Zugriff auf das Secret benötigt. Wir empfehlen, die Berechtigung für Ihr Secret von zwei IAM-Rollen verwalten zu lassen:
+ Eine Rolle, die die Secrets in der Organisation verwaltet. Weitere Informationen finden Sie unter [Administratorberechtigungen für den Secrets Manager](auth-and-access.md#auth-and-access_admin). Mit dieser Rolle erstellen und drehen Sie das Secret.
+ Eine Rolle, die das Geheimnis zur Laufzeit verwenden kann, zum Beispiel in diesem Tutorial, das Sie verwenden*RoleToRetrieveSecretAtRuntime*. Ihr Code übernimmt diese Rolle, um das Secret abzurufen. In diesem Tutorial erteilen Sie der Rolle nur die Berechtigung, einen Secret-Wert abzurufen, und Sie erteilen die Berechtigung mithilfe der Ressourcenrichtlinie des Secret. Weitere Alternativen finden Sie unter [Nächste Schritte](#hardcoded_step-next).

**Topics**
+ [

## Schritt 1: Das Secret erstellen
](#hardcoded_step-1)
+ [

## Schritt 2: Ihren Code aktualisieren
](#hardcoded_step-2)
+ [

## Schritt 3: Das Secret aktualisieren
](#hardcoded_step-3)
+ [

## Nächste Schritte
](#hardcoded_step-next)

## Schritt 1: Das Secret erstellen
<a name="hardcoded_step-1"></a>

Der erste Schritt besteht darin, das vorhandene fest codierte Secret in Secrets Manager zu kopieren. Wenn sich das Geheimnis auf eine AWS Ressource bezieht, speichern Sie es in derselben Region wie die Ressource. Andernfalls speichern Sie es in der Region, die für Ihren Anwendungsfall die niedrigste Latenz aufweist.

**Ein Secret erstellen (Konsole)**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Führen Sie auf der Seite **Choose secret type** (Secret-Typ auswählen) die folgenden Schritte aus:

   1. Als **Secret-Typ** wählen Sie **Anderer Secret-Typ** aus.

   1. Geben Sie Ihr Secret als **Schlüssel/Wert-Paare** oder in **Klartext** an. Hier einige Beispiele:

------
#### [ API key ]

      Geben Sie key/value paarweise ein:

      **ClientID** : *my\$1client\$1id*

      **ClientSecret** : *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY*

------
#### [ OAuth token ]

      Geben Sie als Klartext ein:

      *AKIAI44QH8DHBEXAMPLE*

------
#### [ Digital certificate ]

      Geben Sie als Klartext ein:

      ```
      -----BEGIN CERTIFICATE-----
      EXAMPLE
      -----END CERTIFICATE-----
      ```

------
#### [ Private key ]

      Geben Sie als Klartext ein:

      ```
      –--- BEGIN PRIVATE KEY ----
      EXAMPLE
      ––-- END PRIVATE KEY –---
      ```

------

   1. Wählen Sie für **Encryption key** (Verschlüsselungsschlüssel) **aws/secretsmanager** aus, um den Von AWS verwalteter Schlüssel für Secrets Manager zu benutzen. Für die Verwendung dieses Schlüssels fallen keine Kosten an. Sie können auch Ihren eigenen vom Kunden verwalteten Schlüssel verwenden, z. B. um [von einem anderen AWS-Konto aus auf das Secret zuzugreifen](auth-and-access_examples_cross.md). Informationen zu den Kosten der Verwendung eines vom Kunden verwalteten Schlüssels finden Sie unter [Preisgestaltung](intro.md#asm_pricing).

   1. Wählen Sie **Weiter** aus.

1. Führen Sie auf der Seite **Choose secret type** (Secret-Typ auswählen) die folgenden Schritte aus:

   1. Geben Sie einen beschreibenden **Secret-Namen** und eine **Beschreibung** ein. 

   1. Unter **Resource permissions** (Ressourcenberechtigungen) wählen Sie **Edit permissions** (Berechtigungen bearbeiten) aus. Fügen Sie die folgende Richtlinie ein, die das Abrufen des Geheimnisses ermöglicht*RoleToRetrieveSecretAtRuntime*, und wählen Sie dann **Speichern**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/RoleToRetrieveSecretAtRuntime"
                  },
                  "Action": "secretsmanager:GetSecretValue",
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Wählen Sie unten auf der Seite **Next (Weiter)** aus.

1. Lassen Sie auf der Seite **Configure rotation** (Drehung konfigurieren) die Drehung deaktiviert. Wählen Sie **Weiter** aus.

1. Prüfen Sie auf der Seite **Review (Prüfen)** die Secret-Details und wählen Sie **Store (Speichern)**.

## Schritt 2: Ihren Code aktualisieren
<a name="hardcoded_step-2"></a>

Ihr Code muss die IAM-Rolle übernehmen*RoleToRetrieveSecretAtRuntime*, um das Geheimnis abrufen zu können. Weitere Informationen finden Sie unter [Zu einer IAM-Rolle (AWS API) wechseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html).

Als Nächstes aktualisieren Sie Ihren Code, um das Secret aus Secrets Manager mit dem von Secrets Manager bereitgestellten Beispielcode abzurufen. 

**So suchen Sie den Beispielcode**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie auf der Seite **Secrets** Ihr Secret aus.

1. Scrollen Sie nach unten zu **Sample code** (Beispielcode). Wählen Sie Ihre Programmiersprache aus und kopieren Sie dann das Code-Snippet.

Entfernen Sie in Ihrer Anwendung das fest codierte Secret und fügen Sie das Code-Snippet ein. Abhängig von Ihrer Codesprache müssen Sie im Snippet möglicherweise einen Aufruf der Funktion oder Methode hinzufügen.

Testen Sie, ob Ihre Anwendung mit dem Secret anstelle des fest codierten Secret wie erwartet funktioniert.

## Schritt 3: Das Secret aktualisieren
<a name="hardcoded_step-3"></a>

Der letzte Schritt besteht darin, das fest codierte Secret zu widerrufen und zu aktualisieren. Beziehen Sie sich auf die Quelle des Secret, um Anweisungen zum Widerrufen und Aktualisieren des Secret zu finden. Sie müssen beispielsweise möglicherweise das aktuelle Secret deaktivieren und ein neues Secret generieren.

**So aktualisieren Sie das Secret mit dem neuen Wert**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Secrets** und dann das gewünschte Secret aus.

1. Scrollen Sie auf der Seite **Secret details** (Secret-Details) nach unten und wählen Sie **Retrieve secret value** (Secret-Wert abrufen) und dann **Edit**(Bearbeiten) aus.

1. Aktualisieren Sie das Secret und wählen Sie dann **Save** (Speichern) aus. 

Testen Sie anschließend, ob Ihre Anwendung mit dem neuen Secret wie erwartet funktioniert.

## Nächste Schritte
<a name="hardcoded_step-next"></a>

Nachdem Sie ein fest codiertes Secret aus Ihrem Code entfernt haben, sind hier einige Vorschläge für die nächsten Schritte:
+ Um hartcodierte Geheimnisse in Ihren Java- und Python-Anwendungen zu finden, empfehlen wir [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html).
+ Sie können die Leistung verbessern und Kosten senken, indem Sie Secrets zwischenspeichern. Weitere Informationen finden Sie unter [Hol dir Geheimnisse von AWS Secrets Manager](retrieving-secrets.md).
+ Für Secrets, auf die Sie aus mehreren Regionen zugreifen, sollten Sie erwägen, Ihr Secret zu replizieren, um die Latenz zu verbessern. Weitere Informationen finden Sie unter [Replizieren Sie AWS Secrets Manager Geheimnisse in allen Regionen](replicate-secrets.md).
+ In diesem Tutorial haben Sie *RoleToRetrieveSecretAtRuntime* nur die Erlaubnis erteilt, den geheimen Wert abzurufen. Unter [Ressourcenbasierte Richtlinien](auth-and-access_resource-policies.md) erfahren Sie, wie Sie der Rolle mehr Berechtigungen erteilen, z. B. zum Abrufen von Metadaten über das Secret oder Anzeigen einer Liste von Secrets. 
+ In diesem Tutorial haben Sie *RoleToRetrieveSecretAtRuntime* mithilfe der Ressourcenrichtlinie des Geheimnisses die Erlaubnis erteilt. Weitere Möglichkeiten zum Erteilen von Berechtigungen finden Sie unter [Identitätsbasierte Richtlinien](auth-and-access_iam-policies.md).

# Verschieben Sie hartcodierte Datenbankanmeldedaten nach AWS Secrets Manager
<a name="hardcoded-db-creds"></a>

Wenn Sie Anmeldeinformationen für Klartext-Datenbanken in Ihrem Code haben, empfehlen wir Ihnen, die Anmeldeinformationen in Secrets Manager zu verschieben und sie dann sofort zu drehen. Das Verschieben der Anmeldeinformationen in Secrets Manager löst das Problem, dass die Anmeldeinformationen für jeden sichtbar sind, der den Code sieht, da Ihr Code in Zukunft die Anmeldeinformationen direkt aus Secrets Manager abruft. Durch Drehen des Secret wird das Passwort aktualisiert und daraufhin das aktuelle fest codierte Passwort widerrufen, sodass es nicht mehr gültig ist. 

Befolgen Sie für Amazon-RDS-, Amazon-Redshift- und Amazon-DocumentDB-Datenbanken die Schritte auf dieser Seite, um fest codierte Anmeldeinformationen in Secrets Manager zu verschieben. Informationen zu anderen Anmeldeinformationstypen und anderen Secrets finden Sie unter [Verschieben Sie hartcodierte Geheimnisse nach AWS Secrets Manager](hardcoded.md).

Bevor Sie beginnen, müssen Sie ermitteln, wer Zugriff auf das Secret benötigt. Wir empfehlen, die Berechtigung für Ihr Secret von zwei IAM-Rollen verwalten zu lassen:
+ Eine Rolle, die die Secrets in der Organisation verwaltet. Weitere Informationen finden Sie unter [Administratorberechtigungen für den Secrets Manager](auth-and-access.md#auth-and-access_admin). Mit dieser Rolle erstellen und drehen Sie das Secret.
+ Eine Rolle, die die Anmeldeinformationen zur Laufzeit verwenden kann, finden Sie *RoleToRetrieveSecretAtRuntime* in diesem Tutorial. Ihr Code übernimmt diese Rolle, um das Secret abzurufen.

**Topics**
+ [

## Schritt 1: Das Secret erstellen
](#hardcoded-db-creds_step2)
+ [

## Schritt 2: Ihren Code aktualisieren
](#hardcoded-db-creds_step3)
+ [

## Schritt 3: Drehen des Geheimnisses
](#hardcoded-db-creds_step5)
+ [

## Nächste Schritte
](#hardcoded-db-creds_nextsteps)

## Schritt 1: Das Secret erstellen
<a name="hardcoded-db-creds_step2"></a>

Der erste Schritt besteht darin, die vorhandenen fest codierten Anmeldeinformationen in ein Secret in Secrets Manager zu kopieren. Speichern Sie das Secret in derselben Region wie die Datenbank, um die niedrigste Latenz zu erreichen. 

**So erstellen Sie ein Secret**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Führen Sie auf der Seite **Choose secret type** (Secret-Typ auswählen) die folgenden Schritte aus:

   1. Wählen Sie als **Secret-Typ** den Typ der zu speichernden Datenbank-Anmeldeinformation aus:
      + **Amazon-RDS-Datenbank**
      + **Amazon-DocumentDB-Datenbank**
      + **Amazon Redshift Redshift-Datawarehouse**.
      + Weitere Secret-Typen finden Sie unter [Ersetzen von fest codierten Secrets ](https://docs.aws.amazon.com/secretsmanager/latest/userguide/hardcoded.html).

   1. Geben Sie als **Anmeldeinformationen** die vorhandenen fest codierten Anmeldeinformationen für die Datenbank ein.

   1. Wählen Sie für **Encryption key** (Verschlüsselungsschlüssel) **aws/secretsmanager** aus, um den Von AWS verwalteter Schlüssel für Secrets Manager zu benutzen. Für die Verwendung dieses Schlüssels fallen keine Kosten an. Sie können auch Ihren eigenen vom Kunden verwalteten Schlüssel verwenden, z. B. um [von einem anderen AWS-Konto aus auf das Secret zuzugreifen](auth-and-access_examples_cross.md). Informationen zu den Kosten der Verwendung eines vom Kunden verwalteten Schlüssels finden Sie unter [Preisgestaltung](intro.md#asm_pricing).

   1. Als **Datenbank** wählen Sie Ihre Datenbank aus.

   1. Wählen Sie **Weiter** aus.

1. Führen Sie auf der Seite **Configure secret** (Secret konfigurieren) die folgenden Schritte aus:

   1. Geben Sie einen beschreibenden **Secret-Namen** und eine **Beschreibung** ein. 

   1. Unter **Resource permissions** (Ressourcenberechtigungen) wählen Sie **Edit permissions** (Berechtigungen bearbeiten) aus. Fügen Sie die folgende Richtlinie ein, die das Abrufen des Geheimnisses ermöglicht*RoleToRetrieveSecretAtRuntime*, und wählen Sie dann **Speichern**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/RoleToRetrieveSecretAtRuntime"
                  },
                  "Action": "secretsmanager:GetSecretValue",
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. Wählen Sie unten auf der Seite **Next (Weiter)** aus.

1. Lassen Sie auf der Seite **Configure rotation** (Drehung konfigurieren) die Drehung vorerst deaktiviert. Sie werden sie später aktivieren. Wählen Sie **Weiter** aus.

1. Prüfen Sie auf der Seite **Review (Prüfen)** die Secret-Details und wählen Sie **Store (Speichern)**.

## Schritt 2: Ihren Code aktualisieren
<a name="hardcoded-db-creds_step3"></a>

Ihr Code muss die IAM-Rolle übernehmen*RoleToRetrieveSecretAtRuntime*, um das Geheimnis abrufen zu können. Weitere Informationen finden Sie unter [Zu einer IAM-Rolle (AWS API) wechseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html).

Als Nächstes aktualisieren Sie Ihren Code, um das Secret aus Secrets Manager mit dem von Secrets Manager bereitgestellten Beispielcode abzurufen. 

**So suchen Sie den Beispielcode**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie auf der Seite **Secrets** Ihr Secret aus.

1. Scrollen Sie nach unten zu **Sample code** (Beispielcode). Wählen Sie Ihre Sprache aus und kopieren Sie dann das Code-Snippet. 

Entfernen Sie in Ihrer Anwendung die fest codierten Anmeldeinformationen und fügen Sie das Code-Snippet ein. Abhängig von Ihrer Codesprache müssen Sie im Snippet möglicherweise einen Aufruf der Funktion oder Methode hinzufügen.

Testen Sie, ob Ihre Anwendung mit dem Secret anstelle der fest codierten Anmeldeinformationen wie erwartet funktioniert.

## Schritt 3: Drehen des Geheimnisses
<a name="hardcoded-db-creds_step5"></a>

Der letzte Schritt besteht darin, die fest codierten Anmeldeinformationen durch Drehen des Secret zu widerrufen. *Drehung* ist der Prozess der periodischen Aktualisierung eines Secrets. Wenn Sie ein Secret drehen, werden die Anmeldeinformationen sowohl im Secret als auch in der Datenbank aktualisiert. Sie können einen Zeitplan einrichten, zu dem Secrets Manager Ihr Secret automatisch dreht.

Ein Teil der Einrichtung der Drehung besteht darin, sicherzustellen, dass die Lambda-Drehungsfunktion sowohl auf Secrets Manager als auch auf Ihre Datenbank zugreifen kann. Wenn Sie die automatische Drehung aktivieren, erstellt Secrets Manager die Lambda-Drehungsfunktion in derselben VPC wie Ihre Datenbank, damit sie Netzwerkzugriff auf die Datenbank erhält. Die Lambda-Drehungsfunktion muss auch in der Lage sein, Aufrufe an Secrets Manager zu tätigen, um das Secret zu aktualisieren. Wir empfehlen, dass Sie einen Secrets Manager-Endpunkt in der VPC erstellen, damit Aufrufe von Lambda an Secrets Manager die Infrastruktur nicht verlassen AWS . Detaillierte Anweisungen finden Sie unter [Verwenden eines AWS Secrets Manager VPC-Endpunkts](vpc-endpoint-overview.md).

**So aktivieren Sie die Drehung**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie auf der Seite **Secrets** Ihr Secret aus.

1. Klicken Sie auf der Seite mit den **Secret-Details** im Abschnitt **Rotation configuration (Rotationskonfiguration)** auf **Edit rotation (Rotation bearbeiten)**.

1. Führen Sie im Dialogfeld **Edit rotation configuration (Rotationskonfiguration bearbeiten)** die folgenden Schritte aus:

   1. Schalten Sie die **automatische Rotation** ein.

   1. Geben Sie unter **Rotation schedule** (Rotationszeitplan) den Zeitplan in der UTC-Zeitzone ein. 

   1. Wählen Sie **Rotate immediately when the secret is stored** (Sofort rotieren, wenn das Secret gespeichert ist) aus, um Ihr Secret zu drehen, wenn Sie Ihre Änderungen speichern.

   1. Wählen Sie unter **Rotation function** (Rotationsfunktion) **Create a new Lambda function** (Eine neue Lambda-Funktion erstellen) aus und geben Sie einen Namen für die neue Funktion ein. Secrets Manager fügt „SecretsManager“ am Anfang Ihres Funktionsnamens hinzu.

   1. Wählen Sie für die **Rotationsstrategie** **Einzelbenutzer** aus.

   1. Wählen Sie **Speichern**.

**So überprüfen Sie, ob das Secret gedreht wurde**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Secrets** und dann das gewünschte Secret aus.

1. Scrollen Sie auf der Seite **Secret details** (Geheimnis-Details) nach unten und wählen Sie **Retrieve secret value** (Geheimnis-Wert abrufen) aus.

   Wenn sich der Secret-Wert geändert hat, war die Drehung erfolgreich. Wenn sich der geheime Wert nicht geändert hat, müssen Sie in den CloudWatch Protokollen [Fehlerbehebung bei der Rotation](troubleshoot_rotation.md) nach der Rotationsfunktion nachsehen.

Testen Sie, ob Ihre Anwendung mit dem gedrehten Secret wie erwartet funktioniert.

## Nächste Schritte
<a name="hardcoded-db-creds_nextsteps"></a>

Nachdem Sie ein fest codiertes Secret aus Ihrem Code entfernt haben, sind hier einige Vorschläge für die nächsten Schritte:
+ Sie können die Leistung verbessern und Kosten senken, indem Sie Secrets zwischenspeichern. Weitere Informationen finden Sie unter [Hol dir Geheimnisse von AWS Secrets Manager](retrieving-secrets.md).
+ Sie können einen anderen Drehungszeitplan auswählen. Weitere Informationen finden Sie unter [Rotationspläne](rotate-secrets_schedule.md).
+ Um hartcodierte Geheimnisse in Ihren Java- und Python-Anwendungen zu finden, empfehlen wir [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html).

# Richten Sie eine wechselnde Benutzerrotation ein für AWS Secrets Manager
<a name="tutorials_rotation-alternating"></a>

In diesem Lernprogramm erfahren Sie, wie Sie die Drehung von wechselnden Benutzern für ein Geheimnis einrichten, das Datenbank-Anmeldeinformationen enthält. *Drehung wechselnder Benutzer* ist eine Drehungsstrategie, bei der Secrets Manager den Benutzer klont und dann wechselt, welche Anmeldeinformationen des Benutzers aktualisiert werden. Diese Strategie ist eine gute Wahl, wenn Sie eine hohe Verfügbarkeit für Ihr Secret benötigen, da einer der alternierenden Benutzer über aktuelle Anmeldeinformationen für die Datenbank verfügt, während der andere aktualisiert wird. Weitere Informationen finden Sie unter [Rotationsstrategie: wechselnde Benutzer](rotation-strategy.md#rotating-secrets-two-users). 

Um die Drehung alternativer Benutzer einzurichten, benötigen Sie zwei Geheimnisse:
+ Ein Geheimnis mit den Anmeldeinformationen, die Sie drehen möchten.
+ Ein zweites Secret mit Administratoranmeldeinformationen. 

  Dieser Benutzer ist berechtigt, den ersten Benutzer zu klonen und das Passwort des ersten Benutzers zu ändern. In diesem Tutorial lassen Sie Amazon RDS dieses Secret für einen Admin-Benutzer erstellen. Amazon RDS verwaltet auch die Admin-Passwortrotation. Weitere Informationen finden Sie unter [Verwaltete Rotation von AWS Secrets Manager Geheimnissen](rotate-secrets_managed.md).

Im ersten Teil dieses Tutorials geht es um das Einrichten einer realistischen Umgebung. Um Ihnen die Funktionsweise der Drehung zu zeigen, verwendet dieses Tutorial ein beispielshafte MySQL-Datenbank von Amazon RDS. Aus Sicherheitsgründen befindet sich die Datenbank in einer VPC, die eingehenden Internetzugriff beschränkt. Um von Ihrem lokalen Computer über das Internet eine Verbindung zur Datenbank herzustellen, verwenden Sie einen *Bastion-Host*, einen Server in der VPC, der eine Verbindung zur Datenbank herstellen kann, aber auch SSH-Verbindungen aus dem Internet erlaubt. Der Bastion-Host in diesem Tutorial ist eine Amazon-EC2-Instance und die Sicherheitsgruppen für die Instance verhindern andere Arten von Verbindungen. 

Nachdem Sie das Tutorial abgeschlossen haben, empfehlen wir, dass Sie die Ressourcen aus dem Tutorial bereinigen. Verwenden Sie sie nicht in einer Produktionsumgebung.

Die Secrets Manager Manager-Rotation verwendet eine AWS Lambda Funktion, um das Geheimnis und die Datenbank zu aktualisieren. Hinweise zu den Kosten der Verwendung einer Lambda-Funktion finden Sie unter [Preisgestaltung](intro.md#asm_pricing).

**Topics**
+ [

## Berechtigungen
](#tutorials_rotation-alternating-permissions)
+ [

## Voraussetzungen
](#tutorials_rotation-alternating-step-setup)
+ [

## Schritt 1: Erstellen eines Amazon-RDS-Datenbankbenutzers
](#tutorials_rotation-alternating-step-database)
+ [

## Schritt 2: Erstellen Sie ein Geheimnis für die Benutzer-Anmeldeinformationen
](#tutorials_rotation-alternating_step-rotate)
+ [

## Schritt 3: Testen des gedrehten Geheimnisses
](#tutorials_rotation-alternating_step-test-secret)
+ [

## Schritt 4: Bereinigen von Ressourcen
](#tutorials_rotation-alternating_step-cleanup)
+ [

## Nächste Schritte
](#tutorials_rotation-alternating_step-next)

## Berechtigungen
<a name="tutorials_rotation-alternating-permissions"></a>

Als Teil der Voraussetzungen für das Tutorial benötigen Sie Administratorberechtigungen für Ihr AWS-Konto. In einer Produktionsumgebung ist es eine bewährte Methode, für jeden der Schritte verschiedene Rollen zu verwenden. Beispielsweise würde eine Rolle mit Datenbank-Administratorberechtigungen die Amazon-RDS-Datenbank erstellen, und eine Rolle mit Netzwerk-Administratorberechtigungen würde die VPC und Sicherheitsgruppen einrichten. Für die Tutorial-Schritte empfehlen wir Ihnen, weiterhin dieselbe Identität zu verwenden.

Informationen zum Einrichten von Berechtigungen in einer Produktionsumgebung finden Sie unter [Authentifizierung und Zugriffskontrolle für AWS Secrets Manager](auth-and-access.md).

## Voraussetzungen
<a name="tutorials_rotation-alternating-step-setup"></a>

**Topics**
+ [

### Voraussetzung A: Amazon VPC
](#tutorials_rotation-alternating-step-vpc)
+ [

### Voraussetzung B: Amazon-EC2-Instance
](#tutorials_rotation-alternating-step-setup_ec2)
+ [

### Voraussetzung C: Amazon-RDS-Datenbank und ein Secrets-Manager-Secret für die Administrator-Anmeldeinformationen
](#tutorials_rotation-alternating-step-database)
+ [

### Voraussetzung D: Ihrem lokalen Computer gestatten, eine Verbindung mit der EC2-Instance herzustellen
](#tutorials_rotation-alternating-step-ec2connect)

### Voraussetzung A: Amazon VPC
<a name="tutorials_rotation-alternating-step-vpc"></a>

In diesem Schritt erstellen Sie eine VPC, in die Sie eine Amazon-RDS-Datenbank und eine Amazon-EC2-Instance starten können. In einem späteren Schritt verwenden Sie Ihren Computer, um über das Internet eine Verbindung zur Bastion und dann zur Datenbank herzustellen. Sie müssen also Datenverkehr aus der VPC zulassen. Dazu fügt Amazon VPC ein Internet-Gateway an die VPC an und fügt eine Route in der Routing-Tabelle hinzu, sodass Datenverkehr, der für außerhalb der VPC bestimmt ist, an das Internet-Gateway gesendet wird.

Innerhalb der VPC erstellen Sie einen Secrets-Manager-Endpunkt und einen Amazon-RDS-Endpunkt. Wenn Sie die automatische Rotation einrichten, erstellt Secrets Manager die Lambda-Rotationsfunktion innerhalb der VPC, sodass sie Zugriff auf die Datenbank hat. Die Lambda-Rotationsfunktion ruft auch Secrets Manager auf, um das Secret zu aktualisieren, und sie ruft Amazon RDS auf, um die Datenbankverbindungsinformationen abzurufen. Durch die Erstellung von Endpunkten innerhalb der VPC stellen Sie sicher, dass Aufrufe der Lambda-Funktion an Secrets Manager und Amazon RDS die Infrastruktur nicht verlassen. AWS Stattdessen werden sie an die Endpunkte innerhalb der VPC weitergeleitet.

**So erstellen Sie eine VPC**

1. Öffnen Sie die Amazon-VPC-Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Wählen Sie **VPC erstellen** aus.

1. Wählen Sie auf der Seite **Create VPC** (VPC erstellen) die Option **VPC and more** (VPC und mehr) aus.

1. Geben Sie unter **Name tag auto-generation** (Automatische Generierung des Nametags) unter **Auto-generate** (Automatisch generieren) **SecretsManagerTutorial** ein.

1. Wählen Sie für **DNS options** (DNS-Optionen) sowohl **Enable DNS hostnames** als auch **Enable DNS resolution** aus.

1. Wählen Sie **VPC erstellen** aus.

**So erstellen Sie einen Secrets-Manager-Endpunkt innerhalb der VPC**

1. Wählen Sie in der Amazon-VPC-Konsole unter **Endpoints** (Endpunkte) die Option **Create Endpoint** (Endpunkt erstellen) aus.

1. Geben Sie unter **Endpoint settings** (Endpunkt-Einstellungen) als **Name** (Name) **SecretsManagerTutorialEndpoint** ein.

1. Geben Sie unter **Services** **secretsmanager** ein, um die Liste zu filtern, und wählen Sie dann den Secrets-Manager-Endpunkt in Ihrer AWS-Region aus. Wählen Sie zum Beispiel in USA-Ost (Nord-Virginia) `com.amazonaws.us-east-1.secretsmanager` aus. 

1. Wählen Sie für **VPC** **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)** aus.

1. Wählen Sie für **Subnets** (Subnetze) alle **Availability Zones** aus und wählen Sie dann für jede einzelne eine einzuschließende **Subnetz-ID** aus.

1. Wählen Sie für **IP address type** (Typ der IP-Adresse) die Option **IPv4** aus.

1. Wählen Sie unter **Security groups** (Sicherheitsgruppen) die Standard-Sicherheitsgruppe aus.

1. Wählen Sie für **Policy** (Richtlinie) **Full access** aus. 

1. Wählen Sie **Endpunkt erstellen** aus.

**So erstellen Sie einen Amazon-RDS-Endpunkt innerhalb der VPC**

1. Wählen Sie in der Amazon-VPC-Konsole unter **Endpoints** (Endpunkte) die Option **Create Endpoint** (Endpunkt erstellen) aus.

1. Geben Sie unter **Endpoint settings** (Endpunkt-Einstellungen) als **Name** (Name) **RDSTutorialEndpoint** ein.

1. Geben Sie unter **Services** **rds** ein, um die Liste zu filtern, und wählen Sie dann den Amazon-RDS-Endpunkt in Ihrer AWS-Region aus. Wählen Sie zum Beispiel in USA-Ost (Nord-Virginia) `com.amazonaws.us-east-1.rds` aus. 

1. Wählen Sie für **VPC** **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)** aus.

1. Wählen Sie für **Subnets** (Subnetze) alle **Availability Zones** aus und wählen Sie dann für jede einzelne eine einzuschließende **Subnetz-ID** aus.

1. Wählen Sie für **IP address type** (Typ der IP-Adresse) die Option **IPv4** aus.

1. Wählen Sie unter **Security groups** (Sicherheitsgruppen) die Standard-Sicherheitsgruppe aus.

1. Wählen Sie für **Policy** (Richtlinie) **Full access** aus. 

1. Wählen Sie **Endpunkt erstellen** aus.

### Voraussetzung B: Amazon-EC2-Instance
<a name="tutorials_rotation-alternating-step-setup_ec2"></a>

Die Amazon RDS-Datenbank, die Sie in einem späteren Schritt erstellen, befindet sich in der VPC. Um darauf zuzugreifen, benötigen Sie also einen Bastion-Host. Der Bastion-Host befindet sich ebenfalls in der VPC, aber in einem späteren Schritt konfigurieren Sie eine Sicherheitsgruppe, sodass Ihr lokaler Computer eine Verbindung mit SSH mit dem Bastion-Host herstellen kann. 

**So erstellen Sie eine EC2-Instance für einenen Bastion-Host**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie **Instances** und dann **Launch instances** (Instances launchen) aus.

1. Geben Sie unter **Name and tags** (Name und Tags) als **Name** den Namen **SecretsManagerTutorialInstance** ein.

1. Behalten Sie unter **Application and OS Images** (Anwendungs- und Betriebssystemabbilder) die Standardeinstellung **Amazon Linux 2 AMI (HMV) Kernel 5.10** bei.

1. Behalten Sie unter **Instance type** (Typ der Instance) die Standardeinstellung **t2.micro** bei.

1. Wählen Sie unter **Key pair** (Schlüsselpaar) die Option **Create key pair** (Schlüsselpaar erstellen) aus.

   Geben Sie im Dialogfeld **Create Key Pair** (Schlüsselpaar erstellen) im Feld **Key pair name** (Schlüsselpaarname) als Namen **SecretsManagerTutorialKeyPair** ein und klicken Sie auf **Create key pair** (Schlüsselpaar erstellen).

   Das Schlüsselpaar wird automatisch heruntergeladen.

1. Wählen Sie unter **Network settings** (Netzwerkeinstellungen) die Option **Edit** (Bearbeiten) und gehen Sie wie folgt vor:

   1. Wählen Sie für **VPC** **vpc-\$1\$1\$1\$1 SecretsManagerTutorial** aus.

   1. Wählen Sie für **Auto-assign public IP** (Öffentliche IP automatisch zuweisen) **Enable** aus.

   1. Wählen Sie bei **Firewall** (Firewall) **Select existing security group** (Vorhandene Sicherheitsgruppe auswählen) aus.

   1. Wählen Sie bei **Common security groups** (Allgemeine Sicherheitsgruppen) **default** aus. 

1. Wählen Sie **Launch Instance (Instance starten)** aus.

### Voraussetzung C: Amazon-RDS-Datenbank und ein Secrets-Manager-Secret für die Administrator-Anmeldeinformationen
<a name="tutorials_rotation-alternating-step-database"></a>

In diesem Schritt erstellen Sie eine Amazon-RDS-MySQL-Datenbank und konfigurieren sie so, dass Amazon RDS ein Secret erstellt, das die Administrator-Anmeldeinformationen enthält. Dann verwaltet Amazon RDS automatisch die Rotation des Admin-Secrets für Sie. Weitere Informationen finden Sie unter [Verwaltete Rotation](rotate-secrets_managed.md).

Im Rahmen der Erstellung Ihrer Datenbank geben Sie den Bastion-Host an, den Sie im vorherigen Schritt erstellt haben. Dann richtet Amazon RDS Sicherheitsgruppen ein, sodass die Datenbank und die Instance aufeinander zugreifen können. Sie fügen der Sicherheitsgruppe, die an die Instance angehängt ist, eine Regel hinzu, damit auch Ihr lokaler Computer eine Verbindung zu ihr herstellen kann. 

**So erstellen Sie eine Amazon-RDS-Datenbank mit einem Secrets-Manager-Secret, das die Administratoranmeldeinformationen enthält**

1. Wählen Sie in der Amazon-RDS-Konsole **Databases** (Datenbanken) aus.

1. Wählen Sie im Abschnitt **Engine options** (Engine-Optionen) bei **Engine type** (Engine-Typ) die Option **MySQL** aus.

1. Wählen Sie im Abschnitt **Templates** (Vorlagen) die Option **Free tier** aus.

1. Gehen Sie im Abschnitt **Settings** (Einstellungen) wie folgt vor:

   1. Geben Sie als **DB instance identifier** (DB-Instance-ID) **SecretsManagerTutorial** ein.

   1. Wählen Sie unter **Einstellungen für Anmeldeinformationen** die Option Masteranmeldedaten **verwalten** in aus. AWS Secrets Manager

1. Wählen Sie im Abschnitt **Connectivity** (Konnektivität) für **Computer resource** (Computerressource) die Option **Connect to an EC2 computer resource** (Mit einer EC2-Computerressource verbinden) aus, und wählen Sie dann bei **EC2 Instance** (EC2-Instance) die Option **SecretsManagerTutorialInstance**.

1. Wählen Sie **Datenbank erstellen** aus.

### Voraussetzung D: Ihrem lokalen Computer gestatten, eine Verbindung mit der EC2-Instance herzustellen
<a name="tutorials_rotation-alternating-step-ec2connect"></a>

In diesem Schritt konfigurieren Sie die EC2-Instance, die Sie in Voraussetzung B erstellt haben, so, dass Ihr lokaler Computer eine Verbindung zu ihr herstellen kann. Dazu bearbeiten Sie die Sicherheitsgruppe, die Amazon RDS in Voraussetzung C hinzugefügt hat, sodass sie eine Regel enthält, die es der IP-Adresse Ihres Computers ermöglicht, eine Verbindung mit SSH herzustellen. Die Regel ermöglicht es Ihrem lokalen Computer (identifiziert anhand Ihrer aktuellen IP-Adresse), mithilfe von SSH über das Internet eine Verbindung mit dem Bastion-Host herzustellen.

**So gestatten Sie Ihrem lokalen Computer, eine Verbindung mit der EC2-Instance herzustellen**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie auf der EC2-Instance **SecretsManagerTutorialInstance**auf der Registerkarte **Sicherheit** unter **Sicherheitsgruppen** die Option. **sg-\$1\$1\$1 (ec2-rds-X)**

1. Wählen Sie auf der Registerkarte **Inbound rules** (Regeln für eingehenden Datenverkehr) die Option **Edit inbound rules** (Regeln für eingehenden Datenverkehr bearbeiten) aus.

1. Wählen Sie **Add rule** (Regel hinzufügen) und gehen Sie wie folgt vor:

   1. Wählen Sie für **Type (Typ)** die Option **SSH** aus.

   1. Wählen Sie im Feld **Source type** (Quelltyp) die Option **My IP** aus. 

## Schritt 1: Erstellen eines Amazon-RDS-Datenbankbenutzers
<a name="tutorials_rotation-alternating-step-database"></a>

Zuerst benötigen Sie einen Benutzer, dessen Anmeldeinformationen im Geheimnis gespeichert werden. Um den Benutzer zu erstellen, melden Sie sich mit Administratoranmeldeinformationen bei der Amazon-RDS-Datenbank an. Der Einfachheit halber erstellen Sie im Tutorial einen Benutzer mit voller Berechtigung für eine Datenbank. In einer Produktionsumgebung ist dies nicht typisch, und wir empfehlen, dem Prinzip der geringsten Berechtigung zu folgen.

Um eine Verbindung mit der Datenbank herzustellen, verwenden Sie ein MySQL-Client-Tool. In diesem Tutorial verwenden Sie MySQL Workbench, eine GUI-basierte Anwendung. Informationen zum Installieren von MySQL Workbench finden Sie unter [MySQL Workbench herunterladen](http://dev.mysql.com/downloads/workbench/).

Um eine Verbindung mit der Datenbank herzustellen, erstellen Sie eine Verbindungskonfiguration in MySQL Workbench. Für die Konfiguration benötigen Sie einige Informationen sowohl von Amazon EC2 als auch von Amazon RDS.

**So erstellen Sie eine Datenbankverbindung in MySQL Workbench**

1. Wählen Sie in MySQL Workbench neben **MySQL Connections** (MySQL-Verbindungen) die Schaltfläche (\$1) aus.

1. Gehen Sie im Dialogfeld **Setup New Connection** (Neue Verbindung einrichten) wie folgt vor:

   1. Geben Sie für **Connection name** (Verbindungsname) **SecretsManagerTutorial** ein.

   1. Wählen Sie für **Connection method** (Verbindungsmethode) **Standard TCP/IP over SSH** aus.

   1. Gehen Sie auf der Registerkarte **Parameters** (Parameter) folgendermaßen vor:

      1. Geben Sie für **SSH-Hostname** die öffentliche IP-Adresse der Amazon-EC2-Instance ein.

         Sie finden die IP-Adresse auf der Amazon EC2 EC2-Konsole, indem Sie die Instance **SecretsManagerTutorialInstance**auswählen. Kopieren Sie die IP-Adresse unter **Public IPv4 DNS**.

      1. Geben Sie für **SSH user name** (SSH-Benutzername) **ec2-user** ein.

      1. Wählen Sie für **SSH Keyfile** die Schlüsselpaardatei **SecretsManagerTutorialKeyPair.pem aus, die Sie in der vorherigen** Voraussetzung heruntergeladen haben. 

      1. Geben Sie für **MySQL Hostname** (MySQL-Hostname) die Amazon-RDS-Endpunktadresse ein.

         Sie finden die Endpunktadresse in der Amazon-RDS-Konsole, indem Sie die Datenbank-Instance **secretsmanagertutorialdb** auswählen. Kopieren Sie die Adresse unter **Endpoint** (Endpunkt).

      1. Geben Sie für **Username** (Benutzername) **admin** ein.

   1. Wählen Sie **OK** aus.

**So rufen Sie das Admin-Passwort ab**

1. Gehen Sie in der Amazon-RDS-Konsole zu Ihrer Datenbank.

1. Wählen Sie auf der Registerkarte **Configuration** (Konfiguration) unter **Master Credentials ARN** (Master-Anmeldeinformationen-ARN) die Option **Manage in Secrets Manager** (In Secrets Manager verwalten) aus.

   Die Secrets-Manager-Konsole wird geöffnet.

1. Wählen Sie auf der Seite „Secret details“ (Secret-Details) die Option **Retrieve secret value** (Secret-Wert abrufen) aus.

1. Das Passwort wird im Abschnitt **Secret value** (Secret-Wert) angezeigt.

**So erstellen Sie einen Datenbankbenutzer**

1. Wählen Sie in MySQL Workbench die Verbindung **SecretsManagerTutorial**aus. 

1. Geben Sie das Admin-Passwort ein, das Sie aus dem Secret abgerufen haben. 

1.  Geben Sie in MySQL Workbench im Fenster **Query** (Abfragen) die folgenden Befehle (einschließlich eines sicheren Passworts) ein und wählen Sie dann **Execute** (Ausführen) aus. Die Rotationsfunktion testet das aktualisierte Geheimnis mithilfe von SELECT, sodass sie mindestens über dieses Recht verfügen **appuser** müssen.

   ```
   CREATE DATABASE myDB;
   CREATE USER 'appuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD';
   GRANT SELECT ON myDB . * TO 'appuser'@'%';
   ```

   Im Fenster **Output** (Ausgabe) sehen Sie, dass die Befehle erfolgreich sind.

## Schritt 2: Erstellen Sie ein Geheimnis für die Benutzer-Anmeldeinformationen
<a name="tutorials_rotation-alternating_step-rotate"></a>

Als Nächstes erstellen Sie ein Geheimnis zum Speichern der Anmeldeinformationen des gerade erstellten Benutzers. Das ist das Geheimnis, das Sie drehen werden. Sie aktivieren die automatische Drehung und, um die Strategie für alternative Benutzer anzugeben, wählen Sie ein separates Superuser-Geheimnis aus, das berechtigt ist, das Passwort des ersten Benutzers zu ändern.

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Führen Sie auf der Seite **Choose secret type** (Secret-Typ auswählen) die folgenden Schritte aus:

   1. Wählen Sie für **Secret type** (Geheimnistyp) **Credentials for Amazon RDS database** (Anmeldedaten für die Amazon-RDS-Datenbank) aus.

   1. Geben Sie für **Credentials** (Anmeldeinformationen) den Benutzernamen **appuser** und das Passwort ein, das Sie für den Datenbankbenutzer eingegeben haben, den Sie mit MySQL Workbench erstellt haben.

   1. Wählen Sie für **Database** (Datenbank) **secretsmanagertutorialdb** aus.

   1. Wählen Sie **Weiter** aus.

1. Geben Sie auf der Seite **Configure secret** (Secret konfigurieren) für **Secret name** (Secret-Name) **SecretsManagerTutorialAppuser** ein und wählen Sie dann **Next** (Weiter) aus.

1. Führen Sie auf der Seite **Configure rotation** (Drehung konfigurieren) die folgenden Schritte aus:

   1. Schalten Sie die **automatische Rotation** ein.

   1. Legen Sie für **Rotation schedule** (Drehungsplan) einen Zeitplan von **Days** (Tagen) fest: **2** Tage mit **Duration** (Dauer): **2h**. Behalten Sie die Auswahl **Rotate immediately** (Sofort drehen) bei. 

   1. Wählen Sie für **Rotation function** (Drehungsfunktion) **Create a rotation function** (Drehungsfunktion erstellen) und geben Sie dann als Funktionsnamen **tutorial-alternating-users-rotation** ein.

   1. Wählen Sie für **Rotationsstrategie** die Option **Alternierende Benutzer** aus und wählen Sie dann unter **Administrator-Anmeldeinformations-Secret** das Secret mit dem Namen **rds\$1cluster…** aus, dessen **Beschreibung** den Namen der Datenbank enthält, die Sie in diesem Tutorial **secretsmanagertutorial** erstellt haben, z. B. `Secret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial`.

   1. Wählen Sie **Weiter** aus.

1. Wählen Sie auf der Seite **Review** (Überprüfung) **Store** (Speichern) aus.

   Secrets Manager kehrt zur Seite mit den geheimen Details zurück. Oben auf der Seite sehen Sie den Status der Drehungskonfiguration. Secrets Manager erstellt CloudFormation damit Ressourcen wie die Lambda-Rotationsfunktion und eine Ausführungsrolle, die die Lambda-Funktion ausführt. Wenn der Vorgang CloudFormation abgeschlossen ist, ändert sich das Banner in **Secret, das zur Rotation geplant ist**. Die erste Drehung ist abgeschlossen.

## Schritt 3: Testen des gedrehten Geheimnisses
<a name="tutorials_rotation-alternating_step-test-secret"></a>

Nachdem das Secret rotiert wurde, können Sie überprüfen, ob es gültige Anmeldeinformationen enthält. Das Passwort im Geheimnis hat sich gegenüber den ursprünglichen Anmeldeinformationen geändert.

**So rufen Sie das neue Passwort aus dem Geheimnis ab**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Secrets** (Geheimnisse) und dann das Geheimnis **SecretsManagerTutorialAppuser** aus.

1. Scrollen Sie auf der Seite **Secret details** (Geheimnis-Details) nach unten und wählen Sie **Retrieve secret value** (Geheimnis-Wert abrufen) aus.

1. Kopieren Sie in der Tabelle **Key/value** (Schlüssel/Wert) den **Secret value** (Geheimnis-Wert) für **password**.

**So testen Sie die Anmeldeinformationen**

1. Klicken Sie in MySQL Workbench mit der rechten Maustaste auf die Verbindung **SecretsManagerTutorial**und wählen Sie dann **Verbindung bearbeiten**.

1. Geben Sie im Dialogfeld **Manage Server Connections** (Serververbindungen verwalten) für **Username** (Benutzername) **appuser** ein und wählen Sie dann **Close** (Schließen) aus.

1. Zurück in MySQL Workbench wählen Sie die Verbindung **SecretsManagerTutorial**aus.

1. Fügen Sie im Dialogfeld **Open SSH Connection** (SSH-Verbindung öffnen) für **Password** (Passwort) das Passwort ein, das Sie aus dem Geheimnis abgerufen haben, und wählen Sie dann **OK** aus.

   Wenn die Anmeldeinformationen gültig sind, wird MySQL Workbench zur Entwurfsseite für die Datenbank geöffnet.

Dies zeigt, dass die Geheimnis-Drehung erfolgreich ist. Die Anmeldeinformationen im Geheimnis wurden aktualisiert und es ist ein gültiges Passwort für die Verbindung mit der Datenbank vorhanden. 

## Schritt 4: Bereinigen von Ressourcen
<a name="tutorials_rotation-alternating_step-cleanup"></a>

Wenn Sie eine andere Rotationsstrategie ausprobieren möchten, *single user rotation* (Rotation eines einzelnen Benutzers), überspringen Sie die Bereinigung von Ressourcen und gehen Sie zu [Richten Sie die Einzelbenutzerrotation ein für AWS Secrets Manager](tutorials_rotation-single.md). 

Andernfalls, um mögliche Kosten zu vermeiden und die EC2-Instance, die Zugriff auf das Internet hat, zu entfernen, löschen Sie die folgenden Ressourcen, die Sie in diesem Tutorial und seinen Voraussetzungen erstellt haben:
+ Amazon-RDS-Datenbank-Instance. Eine Anleitung finden Sie unter [Löschen einer DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html) im *Amazon-RDS-Benutzerhandbuch*.
+ Amazon-EC2-Instance. Anweisungen finden Sie unter [Eine Instance beenden](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console) im *Amazon EC2 EC2-Benutzerhandbuch*.
+ Secrets-Manager-Geheimnis `SecretsManagerTutorialAppuser`. Detaillierte Anweisungen finden Sie unter [Ein AWS Secrets Manager Geheimnis löschen](manage_delete-secret.md).
+ Secrets-Manager-Endpunkt. Weitere Informationen finden Sie unter [Löschen eines VPC-Endpunkts](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-vpc-endpoint.html) im *AWS PrivateLink -Handbuch*.
+ VPC-Endpunkt. Weitere Informationen finden Sie unter [Löschen Ihrer VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting) im *AWS PrivateLink -Handbuch*.

## Nächste Schritte
<a name="tutorials_rotation-alternating_step-next"></a>
+ Erfahren Sie, wie Sie [Secrets in Ihren Anwendungen abrufen](retrieving-secrets.md).
+ Erfahren Sie mehr über [andere Rotationspläne](rotate-secrets_schedule.md).

# Richten Sie die Einzelbenutzerrotation ein für AWS Secrets Manager
<a name="tutorials_rotation-single"></a>

In diesem Tutorial erfahren Sie, wie Sie eine Einzelbenutzerrotation für ein Secret einrichten, das Datenbankanmeldeinformationen enthält. *Einzelbenutzerrotation* ist eine Rotationsstrategie, bei der Secrets Manager die Anmeldeinformationen eines einzelnen Benutzers sowohl im Secret als auch in der Datenbank aktualisiert. Weitere Informationen finden Sie unter [Rotationsstrategie: Einzelbenutzer](rotation-strategy.md#rotating-secrets-one-user-one-password). 

Nachdem Sie das Tutorial abgeschlossen haben, empfehlen wir, dass Sie die Ressourcen aus dem Tutorial bereinigen. Verwenden Sie sie nicht in einer Produktionsumgebung.

Die Secrets Manager Manager-Rotation verwendet eine AWS Lambda Funktion, um das Geheimnis und die Datenbank zu aktualisieren. Hinweise zu den Kosten der Verwendung einer Lambda-Funktion finden Sie unter [Preisgestaltung](intro.md#asm_pricing).

**Contents**
+ [

## Berechtigungen
](#tutorials_rotation-single_permissions)
+ [

## Voraussetzungen
](#tutorials_rotation-single_step-setup)
+ [

## Schritt 1: Erstellen eines Amazon-RDS-Datenbankbenutzers
](#tutorials_rotation-single_step-dbuser)
+ [

## Schritt 2: Erstellen eines Secrets für die Benutzer-Anmeldeinformationen
](#tutorials_rotation-single_step-rotate)
+ [

## Schritt 3: Testen des rotierten Passworts
](#tutorials_rotation-single_step-connect-again)
+ [

## Schritt 4: Bereinigen von Ressourcen
](#tutorials_rotation-single_step-cleanup)
+ [

## Nächste Schritte
](#tutorials_rotation-single_step-next)

## Berechtigungen
<a name="tutorials_rotation-single_permissions"></a>

Als Teil der Voraussetzungen für das Tutorial benötigen Sie Administratorberechtigungen für Ihr AWS-Konto. In einer Produktionsumgebung ist es eine bewährte Methode, für jeden der Schritte verschiedene Rollen zu verwenden. Beispielsweise würde eine Rolle mit Datenbank-Administratorberechtigungen die Amazon-RDS-Datenbank erstellen, und eine Rolle mit Netzwerk-Administratorberechtigungen würde die VPC und Sicherheitsgruppen einrichten. Für die Tutorial-Schritte empfehlen wir Ihnen, weiterhin dieselbe Identität zu verwenden.

Informationen zum Einrichten von Berechtigungen in einer Produktionsumgebung finden Sie unter [Authentifizierung und Zugriffskontrolle für AWS Secrets Manager](auth-and-access.md).

## Voraussetzungen
<a name="tutorials_rotation-single_step-setup"></a>

Voraussetzung für dieses Tutorial ist [Richten Sie eine wechselnde Benutzerrotation ein für AWS Secrets Manager](tutorials_rotation-alternating.md). Bereinigen Sie die Ressourcen am Ende des ersten Tutorials nicht. Nach diesem Tutorial haben Sie eine realistische Umgebung mit einer Amazon-RDS-Datenbank und einem Secrets-Manager-Secret, das Admin-Anmeldeinformationen für die Datenbank enthält. Sie haben auch ein zweites Secret, das Anmeldeinformationen für einen Datenbankbenutzer enthält, aber Sie verwenden dieses Secret in diesem Tutorial nicht.

Sie haben auch eine Verbindung in MySQL Workbench konfiguriert, um sich mit den Administrator-Anmeldeinformationen mit der Datenbank zu verbinden.

## Schritt 1: Erstellen eines Amazon-RDS-Datenbankbenutzers
<a name="tutorials_rotation-single_step-dbuser"></a>

Zuerst benötigen Sie einen Benutzer, dessen Anmeldeinformationen im Geheimnis gespeichert werden. Um den Benutzer zu erstellen, melden Sie sich bei der Amazon-RDS-Datenbank mit Admin-Anmeldeinformationen an, die in einem Secret gespeichert sind. Der Einfachheit halber erstellen Sie im Tutorial einen Benutzer mit voller Berechtigung für eine Datenbank. In einer Produktionsumgebung ist dies nicht typisch, und wir empfehlen, dem Prinzip der geringsten Berechtigung zu folgen.

**So rufen Sie das Admin-Passwort ab**

1. Gehen Sie in der Amazon-RDS-Konsole zu Ihrer Datenbank.

1. Wählen Sie auf der Registerkarte **Configuration** (Konfiguration) unter **Master Credentials ARN** (Master-Anmeldeinformationen-ARN) die Option **Manage in Secrets Manager** (In Secrets Manager verwalten) aus.

   Die Secrets-Manager-Konsole wird geöffnet.

1. Wählen Sie auf der Seite „Secret details“ (Secret-Details) die Option **Retrieve secret value** (Secret-Wert abrufen) aus.

1. Das Passwort wird im Abschnitt **Secret value** (Secret-Wert) angezeigt.

**So erstellen Sie einen Datenbankbenutzer**

1. Klicken Sie in MySQL Workbench mit der rechten Maustaste auf die Verbindung **SecretsManagerTutorial**und wählen Sie dann **Verbindung bearbeiten**.

1. Geben Sie im Dialogfeld **Manage Server Connections** (Serververbindungen verwalten) für **Username** (Benutzername) **admin** ein und wählen Sie dann **Close** (Schließen) aus.

1. Zurück in MySQL Workbench wählen Sie die Verbindung **SecretsManagerTutorial**aus.

1. Geben Sie das Admin-Passwort ein, das Sie aus dem Secret abgerufen haben. 

1.  Geben Sie in MySQL Workbench im Fenster **Query** (Abfragen) die folgenden Befehle (einschließlich eines sicheren Passworts) ein und wählen Sie dann **Execute** (Ausführen) aus. Die Rotationsfunktion testet das aktualisierte Geheimnis mithilfe von SELECT, sodass sie mindestens über dieses Privileg verfügen **dbuser** müssen.

   ```
   CREATE USER 'dbuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD';
   GRANT SELECT ON myDB . * TO 'dbuser'@'%';
   ```

   Im Fenster **Output** (Ausgabe) sehen Sie, dass die Befehle erfolgreich sind.

## Schritt 2: Erstellen eines Secrets für die Benutzer-Anmeldeinformationen
<a name="tutorials_rotation-single_step-rotate"></a>

Als Nächstes erstellen Sie ein Secret zum Speichern der Anmeldeinformationen des gerade erstellten Benutzers. Secrets Manager rotiert das Geheimnis, was bedeutet, dass das Passwort programmgesteuert generiert wird — kein Mensch hat dieses neue Passwort gesehen. Da die Rotation sofort beginnt, können Sie auch feststellen, ob die Rotation richtig eingerichtet ist.

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Führen Sie auf der Seite **Choose secret type** (Secret-Typ auswählen) die folgenden Schritte aus:

   1. Wählen Sie für **Secret type** (Geheimnistyp) **Credentials for Amazon RDS database** (Anmeldedaten für die Amazon-RDS-Datenbank) aus.

   1. Geben Sie für **Credentials** (Anmeldeinformationen) den Benutzernamen **dbuser** und das Passwort ein, das Sie für den Datenbankbenutzer eingegeben haben, den Sie mit MySQL Workbench erstellt haben.

   1. Wählen Sie für **Database** (Datenbank) **secretsmanagertutorialdb** aus.

   1. Wählen Sie **Weiter** aus.

1. Geben Sie auf der Seite **Configure secret** (Secret konfigurieren) für **Secret name** (Secret-Name) **SecretsManagerTutorialDbuser** ein und wählen Sie dann **Next** (Weiter) aus.

1. Führen Sie auf der Seite **Configure rotation** (Drehung konfigurieren) die folgenden Schritte aus:

   1. Schalten Sie die **automatische Rotation** ein.

   1. Legen Sie für **Rotation schedule** (Drehungsplan) einen Zeitplan von **Days** (Tagen) fest: **2** Tage mit **Duration** (Dauer): **2h**. Behalten Sie die Auswahl **Rotate immediately** (Sofort drehen) bei. 

   1. Wählen Sie für **Rotation function** (Drehungsfunktion) **Create a rotation function** (Drehungsfunktion erstellen) und geben Sie dann als Funktionsnamen **tutorial-single-user-rotation** ein.

   1. Wählen Sie für die **Rotationsstrategie** **Einzelbenutzer** aus.

   1. Wählen Sie **Weiter** aus.

1. Wählen Sie auf der Seite **Review** (Überprüfung) **Store** (Speichern) aus.

   Secrets Manager kehrt zur Seite mit den geheimen Details zurück. Oben auf der Seite sehen Sie den Status der Drehungskonfiguration. Secrets Manager erstellt CloudFormation damit Ressourcen wie die Lambda-Rotationsfunktion und eine Ausführungsrolle, die die Lambda-Funktion ausführt. Wenn der Vorgang CloudFormation abgeschlossen ist, wechselt das Banner zu **Secret, das zur Rotation geplant ist**. Die erste Drehung ist abgeschlossen.

## Schritt 3: Testen des rotierten Passworts
<a name="tutorials_rotation-single_step-connect-again"></a>

Nach der ersten Geheimnis-Drehung, die einige Sekunden dauern kann, können Sie überprüfen, ob das Geheimnis immer noch gültige Anmeldeinformationen enthält. Das Passwort im Geheimnis hat sich gegenüber den ursprünglichen Anmeldeinformationen geändert.

**So rufen Sie das neue Passwort aus dem Geheimnis ab**

1. Öffnen Sie die Secrets Manager Manager-Konsole unter [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Secrets** (Geheimnisse) und dann das Geheimnis **SecretsManagerTutorialDbuser** aus.

1. Scrollen Sie auf der Seite **Secret details** (Geheimnis-Details) nach unten und wählen Sie **Retrieve secret value** (Geheimnis-Wert abrufen) aus.

1. Kopieren Sie in der Tabelle **Key/value** (Schlüssel/Wert) den **Secret value** (Geheimnis-Wert) für **password**.

**So testen Sie die Anmeldeinformationen**

1. Klicken Sie in MySQL Workbench mit der rechten Maustaste auf die Verbindung **SecretsManagerTutorial**und wählen Sie dann **Verbindung bearbeiten**.

1. Geben Sie im Dialogfeld **Manage Server Connections** (Serververbindungen verwalten) für **Username** (Benutzername) **dbuser** ein und wählen Sie dann **Close** (Schließen) aus.

1. Zurück in MySQL Workbench wählen Sie die Verbindung **SecretsManagerTutorial**aus.

1. Fügen Sie im Dialogfeld **Open SSH Connection** (SSH-Verbindung öffnen) für **Password** (Passwort) das Passwort ein, das Sie aus dem Geheimnis abgerufen haben, und wählen Sie dann **OK** aus.

   Wenn die Anmeldeinformationen gültig sind, wird MySQL Workbench zur Entwurfsseite für die Datenbank geöffnet.

## Schritt 4: Bereinigen von Ressourcen
<a name="tutorials_rotation-single_step-cleanup"></a>

Um mögliche Gebühren zu vermeiden, löschen Sie das Geheimnis, das Sie in diesem Tutorial erstellt haben. Detaillierte Anweisungen finden Sie unter [Ein AWS Secrets Manager Geheimnis löschen](manage_delete-secret.md).

Informationen zum Bereinigen von Ressourcen, die im vorherigen Tutorial erstellt wurden, finden Sie unter [Schritt 4: Bereinigen von Ressourcen](tutorials_rotation-alternating.md#tutorials_rotation-alternating_step-cleanup).

## Nächste Schritte
<a name="tutorials_rotation-single_step-next"></a>
+ Erfahren Sie, wie Sie Geheimnisse in Ihren Anwendungen abrufen. Siehe [Hol dir Geheimnisse von AWS Secrets Manager](retrieving-secrets.md).
+ Erfahren Sie mehr über andere Drehungspläne. Siehe [Rotationspläne](rotate-secrets_schedule.md).