Automatisches Rotieren von Passwörtern für Benutzer - Amazon ElastiCache

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.

Automatisches Rotieren von Passwörtern für Benutzer

Mit AWS Secrets Manager können Sie hartcodierte Anmeldeinformationen in Ihrem Code (einschließlich Kennwörtern) durch einen API Aufruf von Secrets Manager ersetzen, um das Geheimnis programmgesteuert abzurufen. Dadurch wird sichergestellt, dass das Secret nicht kompromittiert werden kann, wenn jemand Ihren Code durchsucht, da es sich gar nicht dort befindet. Außerdem können Sie Secrets Manager so konfigurieren, dass er das Secret automatisch nach einem von Ihnen festgelegten Zeitplan rotiert. So können Sie Secrets mit langer Einsatzdauer durch Secrets mit kurzer Einsatzdauer ersetzen und damit das Risiko einer Kompromittierung erheblich verringern.

Mit Secrets Manager können Sie Ihre ElastiCache (Redis-OSS) Passwörter (d. h. Secrets) mithilfe einer von Secrets Manager AWS Lambda bereitgestellten Funktion automatisch rotieren.

Weitere Informationen zu finden Sie AWS Secrets Manager unter Was ist AWS Secrets Manager?

Wie ElastiCache verwendet Secrets

Valkey 7.2 hat einen äquivalenten Funktionsumfang wie Redis 7.0OSS. In Redis OSS 6, ElastiCache eingeführt, Rollenbasierte Zugriffskontrolle () RBAC um den Valkey- oder Redis-Cluster zu sichern. OSS Mit dieser Funktion können bestimmte Verbindungen bezüglich der ausführbaren Befehle und der Tasten, auf die zugegriffen werden kann, eingeschränkt werden. Während der Kunde einen Benutzer mit Passwörtern erstellt, müssen die Passwortwerte manuell im Klartext eingegeben werden und sind für den Bediener sichtbar. RBAC

Mit Secrets Manager wird das Passwort von Anwendungen aus Secrets Manager abgerufen, anstatt es manuell einzugeben und in der Anwendungskonfiguration zu speichern. Weitere Informationen hierzu finden Sie unter Wie werden ElastiCache Benutzer mit dem Geheimnis verknüpft.

Für die Verwendung von Secrets fallen Kosten an. Preisinformationen finden Sie unter AWS Secrets Manager – Preise.

Wie werden ElastiCache Benutzer mit dem Geheimnis verknüpft

Secrets Manager speichert eine Referenz für den zugehörigen Benutzer im SecretString-Feld des Secrets. Von der ElastiCache Seite wird es keinen Hinweis auf das Geheimnis geben.

{ "password": "strongpassword", "username": "user1", "user_arn": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" //this is the bond between the secret and the user }

Lambda-Rotationsfunktion

Um die automatische Passwortrotation von Secrets Manager zu aktivieren, erstellen Sie eine Lambda-Funktion, die mit dem Modify-Benutzer interagiert, um die Passwörter des Benutzers API zu aktualisieren.

Informationen zur Funktionsweise finden Sie unter Funktionsweise der Drehung.

Anmerkung

Für einige AWS Dienste AWS empfiehlt es sich, sowohl den Bedingungsschlüssel als auch den globalen Bedingungsschlüssel zu verwenden, um das Szenario eines verwirrten Stellvertreters zu vermeiden. aws:SourceArn aws:SourceAccount 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 zu Problemen, auf die Sie möglicherweise stoßen, finden Sie unter Fehlerbehebung bei der AWS Secrets Manager Manager-Rotation.

So erstellen Sie einen ElastiCache Benutzer und verknüpfen ihn mit Secrets Manager

Die folgenden Schritte veranschaulichen, wie Sie einen Benutzer erstellen und ihn mit Secrets Manager verknüpfen:

  1. Einen inaktiven Benutzer erstellen

    Für Linux, macOS oder Unix:

    aws elasticache create-user \ --user-id user1 \ --user-name user1 \ --engine "REDIS" \ --no-password \ // no authentication is required --access-string "*off* +get ~keys*" // this disables the user

    Für Windows:

    aws elasticache create-user ^ --user-id user1 ^ --user-name user1 ^ --engine "REDIS" ^ --no-password ^ // no authentication is required --access-string "*off* +get ~keys*" // this disables the user

    Es wird eine Antwort ähnlich dem folgenden Beispiel angezeigt:

    { "UserId": "user1", "UserName": "user1", "Status": "active", "Engine": "redis", "AccessString": "off ~keys* -@all +get", "UserGroupIds": [], "Authentication": { "Type": "no_password" }, "ARN": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" }
  2. Erstellen eines -Secrets

    Für Linux, macOS oder Unix:

    aws secretsmanager create-secret \ --name production/ec/user1 \ --secret-string \ '{ "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", "username":"user1" }'

    Für Windows:

    aws secretsmanager create-secret ^ --name production/ec/user1 ^ --secret-string ^ '{ "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", "username":"user1" }'

    Es wird eine Antwort ähnlich dem folgenden Beispiel angezeigt:

    { "ARN": "arn:aws:secretsmanager:us-east-1:123456xxxx:secret:production/ec/user1-eaFois", "Name": "production/ec/user1", "VersionId": "aae5b963-1e6b-4250-91c6-ebd6c47d0d95" }
  3. Eine Lambda-Funktion zur Rotation Ihres Passworts konfigurieren

    1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die Lambda-Konsole unter https://console.aws.amazon.com/lambda/

    2. Wählen Sie im Navigationsbereich Functions (Funktionen) und dann die erstellte Funktion aus. Wählen Sie den Funktionsnamen aus, nicht das Kontrollkästchen links davon.

    3. Wählen Sie die Registerkarte Konfiguration aus.

    4. Wählen Sie unter General configuration (Allgemeine Konfiguration) die Option Edit (Bearbeiten) aus und legen Sie die Timeout (Zeitüberschreitung) anschließend auf mindestens 12 Minuten fest.

    5. Wählen Sie Save (Speichern) aus.

    6. Wählen Sie Environment variables (Umgebungsvariablen) aus und legen Sie dann Folgendes fest:

      1. SECRETS_ MANAGER _ ENDPOINT — https://secretsmanager. REGION.amazonaws.com

      2. SECRET_ ARN — Der Amazon-Ressourcenname (ARN) des Geheimnisses, das Sie in Schritt 2 erstellt haben.

      3. USER_ NAME — Nutzername des ElastiCache Benutzers,

      4. Wählen Sie Save (Speichern) aus.

    7. Wählen Sie Permissions (Berechtigungen) aus.

    8. Wählen Sie unter Ausführungsrolle den Namen der Lambda-Funktionsrolle aus, die auf der IAM Konsole angezeigt werden soll.

    9. Die Lambda-Funktion benötigt die folgende Berechtigung, um die Benutzer zu ändern und das Passwort festzulegen:

      ElastiCache

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticache:DescribeUsers", "elasticache:ModifyUser" ], "Resource": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" } ] }

      Secrets Manager

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "arn:aws:secretsmanager:us-east-1:xxxxxxxxxxx:secret:XXXX" }, { "Effect": "Allow", "Action": "secretsmanager:GetRandomPassword", "Resource": "*" } ] }
  4. Die Secrets-Manager-Rotation einrichten

    1. Verwenden von AWS Management Console, siehe Automatische Rotation für AWS Secrets Manager Manager-Geheimnisse mithilfe der Konsole einrichten

      Weitere Informationen zum Einrichten eines Rotationszeitplans finden Sie unter Zeitplanausdrücke in Secrets-Manager-Rotation.

    2. Verwenden von AWS CLI, siehe Automatische Rotation einrichten für die AWS Secrets Manager Verwendung von AWS Command Line Interface