Automatische Rotation für AWS Secrets Manager Nicht-Datenbankgeheimnisse einrichten - 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.

Automatische Rotation für AWS Secrets Manager Nicht-Datenbankgeheimnisse einrichten

In diesem Tutorial wird beschrieben, wie Sie geheime Daten einrichten, Rotation durch Lambda-Funktion die keine Datenbanken sind. Rotation ist der Prozess der periodischen Aktualisierung eines Secrets. 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.

Informationen zu Datenbank-Secrets finden Sie unter Automatische Rotierung für Datenbank-Secrets (Konsole).

Warnung

Um die automatische Rotation zu aktivieren, benötigen Sie die Berechtigung, eine IAM-Ausführungsrolle für die Lambda-Rotationsfunktion zu erstellen und ihr eine Berechtigungsrichtlinie anzuhängen. Sie brauchen sowohl iam:CreateRole und iam:AttachRolePolicy-Berechtigungen. Durch die Gewährung dieser Berechtigungen kann sich eine Identität selbst alle Berechtigungen gewähren.

Schritt 1: Erstellen Sie eine generische Rotationsfunktion

Erstellen Sie zunächst eine Lambda-Rotationsfunktion. Sie wird nicht den Code enthalten, mit dem Sie Ihr Geheimnis rotieren können. Sie werden ihn also in einem späteren Schritt schreiben. Hinweise zur Funktionsweise einer Rotationsfunktion finden Sie unterLambda-Rotationsfunktionen.

In unterstützten Regionen können Sie sie verwenden, AWS Serverless Application Repository um die Funktion aus einer Vorlage zu erstellen. Eine Liste der unterstützten Regionen finden Sie unter AWS Serverless Application Repository Häufig gestellte Fragen. In anderen Regionen erstellen Sie die Funktion von Grund auf neu und kopieren den Vorlagencode in die Funktion.

Um eine generische Rotationsfunktion zu erstellen
  1. Informationen darüber, ob sie in Ihrer Region unterstützt AWS Serverless Application Repository wird, finden Sie in der AWS allgemeinen Referenz unter AWS Serverless Application Repository Endpunkte und Kontingente.

  2. Führen Sie eine der folgenden Aktionen aus:

    • AWS Serverless Application Repository Was in Ihrer Region unterstützt wird:

      1. Wählen Sie in der Lambda-Konsole Applications und anschließend Create Application aus.

      2. Wählen Sie auf der Seite „Anwendung erstellen“ die Registerkarte Serverlose Anwendung aus.

      3. Geben SecretsManagerRotationTemplate Sie im Suchfeld unter Öffentliche Anwendungen den Text ein.

      4. Wählen Sie Apps anzeigen, die benutzerdefinierte IAM-Rollen oder Ressourcenrichtlinien erstellen.

      5. Wählen Sie die SecretsManagerRotationTemplateKachel aus.

      6. Füllen Sie auf der Seite Überprüfen, konfigurieren und bereitstellen in der Kachel Anwendungseinstellungen die erforderlichen Felder aus.

        • Geben Sie als Endpunkt den Endpunkt für Ihre Region ein, einschließlichhttps://. Eine Liste der Endpunkte finden Sie unter AWS Secrets Manager Endpunkte.

        • Um die Lambda-Funktion in eine VPC zu integrieren, schließen Sie die vpcSecurityGroupIDs und ein. vpcSubnetIds

      7. Wählen Sie Bereitstellen.

    • Falls in Ihrer Region AWS Serverless Application Repository nicht unterstützt wird:

      1. Wählen Sie in der Lambda-Konsole Funktionen und dann Funktion erstellen aus.

      2. Gehen Sie auf der Seite Create function (Funktion erstellen) wie folgt vor:

        1. Wählen Sie Von Grund auf neu schreiben aus.

        2. Geben Sie unter Function name (Funktionsname) einen Namen für Ihre Drehungsfunktion ein.

        3. Wählen Sie für Runtime (Laufzeit) die Option Python 3.9 aus.

        4. Wählen Sie Funktion erstellen.

Schritt 2: Schreiben Sie den Drehungsfunktionscode

In diesem Schritt schreiben Sie den Code, der das Geheimnis aktualisiert, und den Dienst oder die Datenbank, für den das Geheimnis bestimmt ist. Hinweise zur Funktionsweise einer Rotationsfunktion, einschließlich Tipps zum Schreiben Ihrer eigenen Rotationsfunktion, finden Sie unterLambda-Rotationsfunktionen. Sie können die auch Rotationsfunktionsvorlagen als Referenz verwenden.

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

In diesem Schritt legen Sie einen Rotationsplan für Ihr Geheimnis fest und verbinden die Rotationsfunktion mit dem Geheimnis.

Konfigurieren Sie die Drehung und erstellen Sie eine leere Drehungsfunktion wie folgt:
  1. Öffnen Sie die Secrets-Manager-Konsole unter https://console.aws.amazon.com/secretsmanager/.

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

  3. Klicken Sie auf der Seite mit den Secret-Details im Abschnitt Rotation configuration (Rotationskonfiguration) auf Edit rotation (Rotation bearbeiten). Führen Sie im Dialogfeld Edit rotation configuration (Rotationskonfiguration bearbeiten) die folgenden Schritte aus:

    1. Schalten Sie die automatische Rotation ein.

    2. Geben Sie unter Rotation schedule (Drehungszeitplan) Ihren Zeitplan in der UTC-Zeitzone entweder im Schedule expression builder (Zeitplanausdruck-Generator) oder als Schedule expression (Zeitplanausdruck) ein. Secrets Manager speichert Ihren Zeitplan als rate()- oder cron()-Ausdruck. Das Rotationsfenster beginnt automatisch um Mitternacht, es sei denn, Sie geben eine Startzeitan. Sie können ein Secret bis zu alle vier Stunden rotieren. Weitere Informationen finden Sie unter Rotationspläne.

    3. (Optional) Wählen Sie für Dauer des Fensters die Länge des Fensters aus, in dem Secrets Manager Ihr Secret rotieren soll, z. B. 3h für ein Drei-Stunden-Fenster. Das Fenster darf nicht in das nächste Rotationsfenster übergehen. Wenn Sie keine Fensterdauer angeben, wird das Fenster für einen Rotationsplan in Stunden automatisch nach einer Stunde geschlossen. Bei einem Rotationsplan in Tagen wird das Fenster am Ende des Tages automatisch geschlossen.

    4. (Optional) Wählen Sie Sofort rotieren, wenn das Secret gespeichert ist, um Ihr Secret zu rotieren, wenn Sie Ihre Änderungen speichern. Wenn Sie das Kontrollkästchen deaktivieren, beginnt die erste Rotation nach dem von Ihnen festgelegten Zeitplan.

    5. Wählen Sie unter Rotationsfunktion die Lambda-Funktion aus, die Sie in Schritt 1 erstellt haben.

    6. Wählen Sie Speichern.

Schritt 4: Erlauben Sie der Rotationsfunktion den Zugriff auf Secrets Manager und Ihre Datenbank oder Ihren Dienst

Die Lambda-Drehungsfunktion benötigt die Berechtigung, auf das Secret in Secrets Manager zuzugreifen, und sie benötigt die Berechtigung, auf Ihre Datenbank oder Ihren Service zuzugreifen. In diesem Schritt erteilen Sie diese Berechtigungen der Lambda-Ausführungsrolle. Wenn das Secret mit einem anderen KMS-Schlüssel als den Von AWS verwalteter Schlüssel aws/secretsmanager verschlüsselt wird, müssen Sie der Lambda-Ausführungsrolle die Berechtigung erteilen, den Schlüssel zu verwenden. Sie können den SecretARN-Verschlüsselungskontext verwenden, um die Verwendung der Entschlüsselungsfunktion einzuschränken, sodass die Rolle der Rotationsfunktion nur Zugriff auf das Secret hat, für dessen Rotation diese verantwortlich ist. Richtlinienbeispiele finden Sie unter Berechtigungen für Rotation.

Anweisungen dazu finden Sie unter Lambda-Ausführungsrolle im AWS Lambda -Entwicklerhandbuch.

Schritt 5: Erlauben Sie Secrets Manager, die Rotationsfunktion aufzurufen

Damit Secrets Manager die Rotationsfunktion auf dem von Ihnen eingerichteten Rotationsplan aufrufen kann, müssen Sie dem Secrets Manager Manager-Dienstprinzipal in der Ressourcenrichtlinie der Lambda-Funktion die lambda:InvokeFunction Erlaubnis erteilen.

Wir empfehlen, in die Ressourcenrichtlinie für Ihre Drehungsfunktion den Kontextschlüssel aws:SourceAccount aufzunehmen, um zu verhindern, dass Lambda als verwirrter Stellvertreter verwendet wird. Für einige AWS Dienste AWS empfiehlt es sich, sowohl den Bedingungsschlüssel als auch den aws:SourceAccountglobalen Bedingungsschlüssel zu verwenden, um ein verwirrtes aws:SourceArnDeputy-Szenario zu vermeiden. Wenn Sie jedoch die aws:SourceArn-Bedingung in Ihre Drehungsfunktions-Richtlinie einschließen, kann die Drehungsfunktion nur verwendet werden, um das von diesem ARN angegebene Secret zu rotieren. Es wird empfohlen, nur den Kontextschlüssel aws:SourceAccount anzugeben, damit Sie die Drehungsfunktion für mehrere Geheimnisse verwenden können.

Informationen zum Anfügen einer Ressourcenrichtlinie an eine Lambda-Funktion finden Sie unter Verwenden von ressourcenbasierten Richtlinien für Lambda.

Die folgende Richtlinie ermöglicht Secrets Manager, eine Lambda-Funktion aufzurufen.

{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "secretsmanager.amazonaws.com" }, "Action": "lambda:InvokeFunction", Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } }, "Resource": "LambdaRotationFunctionARN" } ] }

Schritt 6: Richten Sie den Netzwerkzugriff für die Rotationsfunktion ein

In diesem Schritt erlauben Sie der Rotationsfunktion, eine Verbindung sowohl mit Secrets Manager als auch mit dem Dienst oder der Datenbank herzustellen, für den das Geheimnis bestimmt ist. Die Rotationsfunktion muss Zugriff auf beide haben, um das Geheimnis rotieren zu können. Siehe Netzwerkzugriff für die Lambda-Rotationsfunktion.

Nächste Schritte

Bei der Konfiguration der Rotation in Schritt 3 haben Sie einen Zeitplan für die Rotation des Secrets festgelegt. Wenn die Rotation zum geplanten Zeitpunkt fehlschlägt, versucht Secrets Manager die Rotation mehrmals. Sie können eine Rotation auch sofort starten, indem Sie den Anweisungen unter folgenSecret sofort drehen.

Falls die Rotation fehlschlägt, finden Sie weitere Informationen unterFehlerbehebung bei der -Rotation.