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.
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 appel d'API à 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 ElastiCache mots de passe Redis OSS (c'est-à-dire les 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 et versions ultérieures ont un ensemble de fonctionnalités équivalent à celui de Redis OSS 7.0. Dans Redis OSS 6, ElastiCache introduit Contrôle d'accès basé sur les rôles (RBAC) pour sécuriser le cluster Valkey ou Redis OSS. Cette fonction permet de limiter certaines connexions en termes de commandes pouvant être exécutées et de clés accessibles. Avec RBAC, lorsque le client crée un utilisateur avec des mots de passe, les valeurs des mots de passe doivent être saisies manuellement en texte clair et visibles de 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'API modify-user pour mettre à jour les mots de passe de l'utilisateur.
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. Cependant, si vous incluez la condition aws:SourceArn
dans votre stratégie de fonction de rotation Lambda, la fonction de rotation ne peut être utilisée que pour effectuer la rotation du secret spécifié par cet ARN. 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 :
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" }
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" }
Configurer une fonction Lambda pour la rotation de votre mot de passe
Connectez-vous à la console Lambda AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/lambda/
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.
Cliquez sur l’onglet Configuration.
Dans General configuration (Configuration générale), choisissez Edit (Modifier), puis définissez Timeout (Expiration) sur 12 minutes minimum.
Choisissez Save (Enregistrer).
Choisissez Environment variables (Variables d'environnement), puis définissez les paramètres suivants :
SECRETS_MANAGER_ENDPOINT : https://secretsmanager.
REGION
.amazonaws.comSECRET_ARN : l'Amazon Resource Name (ARN) du secret que vous avez créé à l'étape 2.
USER_NAME — Nom d'utilisateur de l' ElastiCache utilisateur,
Choisissez Save (Enregistrer).
Choisissez Permissions (Autorisations).
Sous Execution role (Rôle d'exécution), choisissez le nom du rôle de la fonction Lambda à afficher sur la console IAM.
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": "*" } ] }
Configurer la rotation des secrets de Secrets Manager
À 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.
À l'aide du AWS CLI, voir Configuration de la rotation automatique pour AWS Secrets Manager utiliser le AWS Command Line Interface