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

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 an 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

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

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

Zur Aktivierung der automatischen Passwortrotation von Secrets Manager erstellen Sie eine Lambda-Funktion, die mit der modify-user-API interagiert, um die Passwörter des Benutzers 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 aws:SourceAccount globalen Bedingungsschlüssel zu verwenden, um das aws:SourceArn Szenario eines verwirrten Stellvertreters 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 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 Lambda-Konsole an AWS Management Console und öffnen Sie sie 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 Speichern.

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

      1. SECRETS_MANAGER_ENDPOINT – https://secretsmanager.REGION.amazonaws.com

      2. SERET_ARN – der Amazon-Ressourcenname (ARN) des Secrets, das Sie in Schritt 2 erstellt haben.

      3. USER_NAME — Benutzername des Benutzers, ElastiCache

      4. Wählen Sie Speichern.

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

    8. Wählen Sie unter Execution role (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