Rotation automatique des mots de passe pour les utilisateurs - Amazon ElastiCache

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Rotation automatique des mots de passe pour les utilisateurs

Vous pouvez AWS Secrets Manager ainsi remplacer les informations d'identification codées en dur dans votre code (y compris les mots de passe) par un API appel à Secrets Manager pour récupérer le secret par programmation. Cela permet de garantir que le secret ne peut pas être mis en péril par une personne qui examine votre code, étant donné que le secret n'y figure pas. En outre, vous pouvez configurer Secrets Manager afin d'effectuer automatiquement une rotation du secret, selon une planification que vous spécifiez. Cela vous permet de remplacer les secrets à long terme par ceux à court terme, ce qui réduit considérablement le risque de mise en péril.

À l'aide de Secrets Manager, vous pouvez automatiquement faire pivoter vos mots de passe ElastiCache (RedisOSS) (c'est-à-dire vos secrets) à l'aide d'une AWS Lambda fonction fournie par Secrets Manager.

Pour plus d'informations AWS Secrets Manager, voir Qu'est-ce que c'est AWS Secrets Manager ?

Comment ElastiCache utilise les secrets

Valkey 7.2 possède un ensemble de fonctionnalités équivalent à celui de Redis 7.0OSS. Dans Redis OSS 6, ElastiCache introduit Contrôle d'accès basé sur les rôles () RBAC pour sécuriser le cluster Valkey ou RedisOSS. Cette fonction permet de limiter certaines connexions en termes de commandes pouvant être exécutées et de clés accessibles. Lorsque RBAC le client crée un utilisateur avec des mots de passe, les valeurs des mots de passe doivent être saisies manuellement en texte brut et sont visibles par l'opérateur.

Avec Secrets Manager, les applications récupèrent le mot de passe depuis Secrets Manager plutôt que de le saisir manuellement et de le stocker dans la configuration de l'application. Pour plus d’informations sur la procédure à utiliser, consultez Comment ElastiCache les utilisateurs sont associés au secret.

L'utilisation de secrets entraîne des frais. Pour plus d'informations sur la tarification, consultez Tarification d'AWS Secrets Manager.

Comment ElastiCache les utilisateurs sont associés au secret

Secrets Manager conservera une référence pour l'utilisateur associé dans le champ SecretString du secret. Il n'y aura aucune référence au secret vu de ElastiCache côté.

{ "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 }

Fonction de rotation Lambda

Pour activer la rotation automatique des mots de passe de Secrets Manager, vous allez créer une fonction Lambda qui interagira avec l'utilisateur modify-user API pour mettre à jour ses mots de passe.

Pour plus d'informations sur la façon dont cela fonctionne, consultez Fonctionnement de la rotation.

Note

Pour certains AWS services, afin d'éviter toute confusion dans le scénario adjoint, il est AWS recommandé d'utiliser à la fois les clés de condition aws:SourceArn et les clés de condition aws:SourceAccount globale. Toutefois, si vous incluez la aws:SourceArn condition dans votre politique de fonction de rotation, celle-ci ne peut être utilisée que pour faire pivoter le secret spécifié par celle-ciARN. Nous vous recommandons d'inclure uniquement la clé de contexte aws:SourceAccount afin de pouvoir utiliser la fonction de rotation pour plusieurs secrets.

Pour tout problème que vous pourriez rencontrer, consultez Résoudre les problèmes liés à la rotation de AWS Secrets Manager.

Comment créer un ElastiCache utilisateur et l'associer à Secrets Manager

Les étapes suivantes illustrent comment créer un utilisateur et l'associer à Secrets Manager :

  1. Créer un utilisateur inactif

    Pour Linux, macOS ou 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

    Pour 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

    Vous verrez une réponse similaire à ceci :

    { "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. Créer un secret

    Pour Linux, macOS ou Unix :

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

    Pour Windows :

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

    Vous verrez une réponse similaire à ceci :

    { "ARN": "arn:aws:secretsmanager:us-east-1:123456xxxx:secret:production/ec/user1-eaFois", "Name": "production/ec/user1", "VersionId": "aae5b963-1e6b-4250-91c6-ebd6c47d0d95" }
  3. Configurer une fonction Lambda pour la rotation de votre mot de passe

    1. Connectez-vous à la console Lambda AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/lambda/

    2. Dans le volet de navigation, choisissez Functions (Fonctions), puis la fonction que vous avez créée. Choisissez le nom de la fonction, et non la case à cocher située à gauche.

    3. Cliquez sur l’onglet Configuration.

    4. Dans General configuration (Configuration générale), choisissez Edit (Modifier), puis définissez Timeout (Expiration) sur 12 minutes minimum.

    5. Choisissez Save (Enregistrer).

    6. Choisissez Environment variables (Variables d'environnement), puis définissez les paramètres suivants :

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

      2. SECRET_ ARN — Le nom de ressource Amazon (ARN) du secret que vous avez créé à l'étape 2.

      3. USER_ NAME — Nom d'utilisateur de l' ElastiCache utilisateur,

      4. Choisissez Save (Enregistrer).

    7. Choisissez Permissions (Autorisations).

    8. Sous Rôle d'exécution, choisissez le nom du rôle de fonction Lambda à afficher sur la IAM console.

    9. La fonction Lambda aura besoin de l'autorisation suivante pour modifier les utilisateurs et définir le mot de passe :

      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. Configurer la rotation des secrets de Secrets Manager

    1. À l'aide de AWS Management Console, voir Configuration de la rotation automatique pour les AWS secrets de Secrets Manager à l'aide de la console

      Pour plus d'informations sur comment planifier une rotation, consultez Programmer des expressions en rotation avec Secrets Manager.

    2. À l'aide du AWS CLI, voir Configuration de la rotation automatique pour AWS Secrets Manager utiliser le AWS Command Line Interface