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.
Schritte:
- Schritt 1: Erstellen Sie eine generische Rotationsfunktion
- Schritt 2: Schreiben Sie den Drehungsfunktionscode
- Schritt 3: Konfigurieren Sie das Geheimnis für die Rotation
- Schritt 4: Erlauben Sie der Rotationsfunktion den Zugriff auf Secrets Manager und Ihre Datenbank oder Ihren Dienst
- Schritt 5: Erlauben Sie Secrets Manager, die Rotationsfunktion aufzurufen
- Schritt 6: Richten Sie den Netzwerkzugriff für die Rotationsfunktion ein
- Nächste Schritte
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 FAQs
Um eine generische Rotationsfunktion zu erstellen
-
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.
-
Führen Sie eine der folgenden Aktionen aus:
AWS Serverless Application Repository Wird in Ihrer Region unterstützt:
Wählen Sie in der Lambda-Konsole Applications und anschließend Create Application aus.
Wählen Sie auf der Seite „Anwendung erstellen“ die Registerkarte Serverlose Anwendung aus.
Geben
SecretsManagerRotationTemplate
Sie im Suchfeld unter Öffentliche Anwendungen den Text ein.Wählen Sie Apps anzeigen, die benutzerdefinierte IAM Rollen oder Ressourcenrichtlinien erstellen.
Wählen Sie die SecretsManagerRotationTemplateKachel aus.
-
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ßlich
https://
. Eine Liste der Endpunkte finden Sie unter AWS Secrets Manager Endpunkte.Um die Lambda-Funktion in a einzufügenVPC, schließen Sie vpcSecurityGroupIds und vpcSubnetIdsein.
Wählen Sie Bereitstellen.
Falls in Ihrer Region AWS Serverless Application Repository nicht unterstützt wird:
Wählen Sie in der Lambda-Konsole Funktionen und dann Funktion erstellen aus.
Gehen Sie auf der Seite Create function (Funktion erstellen) wie folgt vor:
Wählen Sie Von Grund auf neu schreiben aus.
Geben Sie unter Function name (Funktionsname) einen Namen für Ihre Drehungsfunktion ein.
Wählen Sie für Runtime (Laufzeit) die Option Python 3.9 aus.
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:
Öffnen Sie die Secrets Manager Manager-Konsole unter https://console.aws.amazon.com/secretsmanager/
. -
Wählen Sie auf der Seite Secrets Ihr Secret aus.
-
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:
Schalten Sie die automatische Rotation ein.
-
Geben Sie unter Rotationszeitplan Ihren Zeitplan in UTC Zeitzone entweder im Zeitplanausdrucks-Generator oder als Zeitplanausdruck ein. Secrets Manager speichert Ihren Zeitplan als
rate()
- odercron()
-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. -
(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. (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.
Wählen Sie unter Rotationsfunktion die Lambda-Funktion aus, die Sie in Schritt 1 erstellt haben.
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 Geheimnis mit einem anderen KMS Schlüssel als dem verschlüsselt ist Von AWS verwalteter Schlüssel
aws/secretsmanager
, müssen Sie der Lambda-Ausführungsrolle die Berechtigung zur Verwendung des Schlüssels erteilen. Sie können den ARNVerschlüsselungskontext Secret verwenden, um die Verwendung der Entschlüsselungsfunktion einzuschränken, sodass die Rolle der Rotationsfunktion nur Zugriff auf die Entschlüsselung des Geheimnisses hat, für dessen Rotation sie zuständig 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:SourceAccount
globalen Bedingungsschlüssel zu verwenden, um ein verwirrtes aws:SourceArn
Deputy-Szenario zu vermeiden. Wenn Sie die aws:SourceArn
Bedingung jedoch in Ihre Rotationsfunktionsrichtlinie aufnehmen, kann die Rotationsfunktion nur verwendet werden, um das darin angegebene Geheimnis zu rotierenARN. 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.