Richten Sie die automatische Rotation ein mit dem AWS CLI - AWS Secrets Manager

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.

Richten Sie die automatische Rotation ein mit dem AWS CLI

In diesem Tutorial wird beschrieben, wie Sie mit Rotation durch Lambda-Funktion dem einrichten AWS CLI. Wenn Sie ein Secret drehen, werden die Anmeldeinformationen sowohl im Secret als auch in der Datenbank oder im Service, für die bzw. den das Secret bestimmt ist, aktualisiert.

Sie können die Rotation auch über die Konsole einrichten. Informationen zu Datenbank-Secrets finden Sie unter Automatische Rotierung für Datenbank-Secrets (Konsole). Informationen zu allen anderen Secret-Typen finden Sie unter Automatische Rotation für Nicht-Datenbankgeheimnisse (Konsole).

Um die Rotation mithilfe von einzurichten AWS CLI, müssen Sie, wenn Sie ein Datenbankgeheimnis rotieren, zunächst eine Rotationsstrategie wählen. Wenn Sie die Strategie für alternierende Benutzer wählen, müssen Sie ein separates Secret mit Anmeldeinformationen für einen Datenbank-Superuser speichern. Als Nächstes schreiben Sie den Drehungsfunktionscode. Secrets Manager bietet Vorlagen, auf denen Sie Ihre Funktion aufbauen können. Anschließend erstellen Sie eine Lambda-Funktion mit Ihrem Code und legen Berechtigungen sowohl für die Lambda-Funktion als auch für die Lambda-Ausführungsrolle fest. Der nächste Schritt besteht darin, sicherzustellen, dass die Lambda-Funktion über das Netzwerk sowohl auf Secrets Manager als auch auf Ihre Datenbank oder Ihren Dienst zugreifen kann. Schließlich konfigurieren Sie das Secret für die Drehung.

Voraussetzung für Datenbankgeheimnisse: Wählen Sie eine Rotationsstrategie

Informationen zu den von Secrets Manager angebotenen Strategien finden Sie unterStrategien zur Rotation von Lambda-Funktionen.

Option 1: Strategie für einen einzelnen Benutzer

Wenn Sie sich für die Einzelbenutzerstrategie entscheiden, können Sie mit Schritt 1 fortfahren.

Option 2: Strategie für wechselnde Benutzer

Wenn Sie sich für die Strategie mit wechselnden Benutzern entscheiden, müssen Sie:

  • Erstellen Sie ein Datenbankgeheimnis und speichern Sie darin die Anmeldeinformationen für den Datenbank-Superuser. Sie benötigen einen geheimen Schlüssel mit Superuser-Anmeldeinformationen, da der erste Benutzer abwechselnd geklont wird und die meisten Benutzer nicht über diese Berechtigung verfügen.

  • Fügen Sie den ARN des Superuser-Geheimnisses zum ursprünglichen Geheimnis hinzu. Weitere Informationen finden Sie unter JSON-Struktur von AWS Secrets Manager Geheimnissen .

Beachten Sie, dass Amazon RDS Proxy die Strategie für wechselnde Benutzer nicht unterstützt.

Schritt 1: Schreiben Sie den Code für die Rotationsfunktion

Um ein Secret zu drehen, benötigen Sie eine Drehungsfunktion. Eine Drehungsfunktion ist eine Lambda-Funktion, die Secrets Manager aufruft, um Ihr Secret zu drehen. Weitere Informationen finden Sie unter Rotation durch Lambda-Funktion. In diesem Schritt schreiben Sie den Code, der das Geheimnis aktualisiert, und den Dienst oder die Datenbank, für den das Geheimnis bestimmt ist.

Secrets Manager bietet Vorlagen für Amazon RDS-, Amazon Aurora-, Amazon Redshift- und Amazon DocumentDB DocumentDB-Datenbankgeheimnisse in. Rotationsfunktionsvorlagen

Um den Code für die Rotationsfunktion zu schreiben
  1. Führen Sie eine der folgenden Aktionen aus:

    • Überprüfen Sie die Liste der Vorlagen für Rotationsfunktionen. Wenn es eine gibt, die Ihrer Service- und Rotationsstrategie entspricht, kopieren Sie den Code.

    • Für andere Arten von Geheimnissen schreiben Sie Ihre eigene Rotationsfunktion. Anweisungen finden Sie unter Lambda-Rotationsfunktionen.

  2. Speichern Sie die Datei zusammen mit allen erforderlichen Abhängigkeiten in einer ZIP-Datei my-function.zip.

Schritt 2: Lambda-Funktion erstellen

In diesem Schritt erstellen Sie die Lambda-Funktion mithilfe der ZIP-Datei, die Sie in Schritt 1 erstellt haben. Sie legen auch die Lambda-Ausführungsrolle fest, die Lambda übernimmt, wenn die Funktion aufgerufen wird.

Erstellen Sie eine Lambda-Drehungsfunktion und Ausführungsrolle wie folgt:
  1. Erstellen Sie eine Vertrauensrichtlinie für die Lambda-Ausführungsrolle und speichern Sie sie als JSON-Datei. Beispiele und weitere Informationen finden Sie unter. Rollenberechtigungen für die Ausführung der Lambda-Rotationsfunktion für AWS Secrets Manager Die Richtlinie muss:

    • Der Rolle erlauben, Secrets-Manager-Vorgänge für das Secret aufzurufen.

    • Erlauben Sie der Rolle, den Dienst aufzurufen, für den das Geheimnis bestimmt ist, z. B. um ein neues Passwort zu erstellen.

  2. Erstellen Sie die Lambda-Ausführungsrolle und wenden Sie die Vertrauensrichtlinie an, die Sie im vorherigen Schritt erstellt haben, indem Sie aufrufen iam create-role.

    aws iam create-role \ --role-name rotation-lambda-role \ --assume-role-policy-document file://trust-policy.json
  3. Die Lambda-Funktion aus der ZIP-Datei erstellen, indem sie lambda create-function aufruft.

    aws lambda create-function \ --function-name my-rotation-function \ --runtime python3.7 \ --zip-file fileb://my-function.zip \ --handler .handler \ --role arn:aws:iam::123456789012:role/service-role/rotation-lambda-role
  4. Eine Ressourcenrichtlinie für die Lambda-Funktion festlegen, damit Secrets Manager sie durch Aufrufen von lambda add-permission aufrufen kann.

    aws lambda add-permission \ --function-name my-rotation-function \ --action lambda:InvokeFunction \ --statement-id SecretsManager \ --principal secretsmanager.amazonaws.com \ --source-account 123456789012

Schritt 3: Netzwerkzugriff einrichten

Weitere Informationen finden Sie unter Netzwerkzugriff für die Lambda-Rotationsfunktion.

Schritt 4: Konfigurieren Sie das Geheimnis für die Rotation

Um die automatische Drehung für Ihr Secret zu aktivieren, rufen Sie rotate-secret an. Sie können einen Drehungszeitplan mit einem cron()- oder rate()-Zeitplanausdruck festlegen, und Sie können die Dauer eines Drehungsfensters festlegen. Weitere Informationen finden Sie unter Rotationspläne.

aws secretsmanager rotate-secret \ --secret-id MySecret \ --rotation-lambda-arn arn:aws:lambda:Region:123456789012:function:my-rotation-function \ --rotation-rules "{\"ScheduleExpression\": \"cron(0 16 1,15 * ? *)\", \"Duration\": \"2h\"}"

Nächste Schritte

Siehe Fehlerbehebung bei der AWS Secrets Manager Rotation.