Rollenberechtigungen für die Ausführung der Lambda-Rotationsfunktion für AWS Secrets Manager - 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.

Rollenberechtigungen für die Ausführung der Lambda-Rotationsfunktion für AWS Secrets Manager

Denn wenn Secrets Manager eine Lambda-Funktion verwendetRotation durch Lambda-Funktion, um ein Geheimnis zu rotieren, nimmt Lambda eine IAM-Ausführungsrolle an und stellt diese Anmeldeinformationen für den Lambda-Funktionscode bereit. Anweisungen zum Einrichten der automatischen Rotation finden Sie unter:

Die folgenden Beispiele zeigen Inline-Richtlinien für Ausführungsrollen von Lambda-Drehungsfunktionen. Informationen zum Erstellen einer Ausführungsrolle und Anfügen einer Berechtigungsrichtlinie finden Sie unter AWS Lambda -Ausführungsrolle.

Richtlinie für eine Lambda-Drehungsfunktion und Ausführungsrolle

Die folgende Beispielrichtlinie erlaubt der Drehungsfunktion folgende Tätigkeiten:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "SecretARN" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" }, { "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface" ], "Resource": "*", "Effect": "Allow" } ] }

Richtlinienanweisung für einen kundenverwalteten Schlüssel

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. Das folgende Beispiel zeigt eine Anweisung, die zur Ausführungsrollenrichtlinie hinzugefügt werden soll, um das Secret mithilfe des KMS-Schlüssels zu entschlüsseln.

{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey" ], "Resource": "KMSKeyARN" "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "SecretARN" } } }

Um die Rotationsfunktion für mehrere Secrets zu verwenden, die mit einem vom Kunden verwalteten Schlüssel verschlüsselt sind, fügen Sie eine Anweisung wie im folgenden Beispiel hinzu, damit die Ausführungsrolle das Secret entschlüsseln kann.

{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey" ], "Resource": "KMSKeyARN" "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": [ "arn1", "arn2" ] } } }

Richtlinienanweisung für die Strategie für wechselnde Benutzer

Weitere Informationen zu Drehungsstrategie für alternierende Benutzer finden Sie unter Strategien zur Rotation von Lambda-Funktionen.

Wenn Sie für ein Secret, das Amazon-RDS-Anmeldeinformationen enthält, die Strategie für wechselnde Benutzer verwenden und das Superuser-Geheimnis von Amazon RDS verwaltet wird, müssen Sie der Rotationsfunktion auch erlauben, schreibgeschützte APIs auf Amazon RDS aufzurufen, damit sie die Verbindungsinformationen für die Datenbank abrufen kann. Wir empfehlen Ihnen, die AWS verwaltete Richtlinie AmazonRDS ReadOnlyAccess beizufügen.

Die folgende Beispielrichtlinie erlaubt der Funktion folgende Tätigkeiten:

  • Ausführen von Secrets-Manager-Vorgängen für SecretARN.

  • Abrufen von Anmeldeinformationen im Superuser-Secret. Secrets Manager verwendet die Anmeldeinformationen im Superuser-Secret, um die Anmeldeinformationen im gedrehten Secret zu aktualisieren.

  • Erstellen eines Passworts.

  • Einrichten der erforderlichen Konfiguration, wenn Ihre Datenbank oder Ihr Service in einer VPC ausgeführt wird. Weitere Informationen finden Sie unter Konfigurieren einer Lambda-Funktion für den Zugriff auf Ressourcen in einer VPC.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "SecretARN" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "SuperuserSecretARN" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" }, { "Action": [ "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DetachNetworkInterface" ], "Resource": "*", "Effect": "Allow" } ] }