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.
Configurez la rotation automatique à l'aide du AWS CLI
Ce didacticiel explique comment procéder à la configuration Rotation par fonction Lambda à l'aide du AWS CLI. Lorsque vous effectuez une rotation de secret, vous mettez à jour les informations d'identification dans le secret et dans la base de données ou le service que le secret concerne.
Vous pouvez également configurer la rotation à l'aide de la console. Pour les secrets de base de données, consultez Rotation automatique pour les secrets de base de données (console). Pour tout autre type de secrets, consultez Rotation automatique pour les secrets non liés à la base de données (console).
Pour configurer la rotation à l'aide du AWS CLI, si vous faites pivoter un secret de base de données, vous devez d'abord choisir une stratégie de rotation. Si vous choisissez la stratégie des utilisateurs en alternance, vous devez stocker un secret distinct avec les informations d'identification d'un super-utilisateur de la base de données. Ensuite, vous écrivez le code de la fonction de rotation. Secrets Manager fournit des modèles de base pour écrire votre fonction. Vous créez ensuite une fonction Lambda avec votre code et définissez des autorisations pour la fonction Lambda et le rôle d'exécution Lambda. L'étape suivante consiste à s'assurer que la fonction Lambda peut accéder à la fois à Secrets Manager et à votre base de données ou à votre service via le réseau. Enfin, vous configurez le secret de la rotation.
Étapes :
Prérequis pour les secrets de base de données : Choisissez une stratégie de rotation
Pour plus d'informations sur les stratégies proposées par Secrets Manager, consultezStratégies de rotation des fonctions Lambda.
Option 1 : stratégie utilisateur unique
Si vous choisissez la stratégie utilisateur unique, vous pouvez passer à l'étape 1.
Option 2 : stratégie d'utilisation alternée
Si vous optez pour la stratégie d'alternance des utilisateurs, vous devez :
-
Créez un secret et stockez-y les informations d'identification du superutilisateur de la base de données. Vous avez besoin d'un secret avec des informations d'identification de superutilisateur, car la rotation des utilisateurs permet de cloner le premier utilisateur, et la plupart des utilisateurs n'ont pas cette autorisation.
-
Ajoutez le secret ARN du superutilisateur au secret d'origine. Pour de plus amples informations, veuillez consulter JSONstructure de AWS Secrets Manager secrets .
Notez qu'Amazon RDS Proxy ne prend pas en charge la stratégie des utilisateurs alternatifs.
Étape 1 : Écrire le code de la fonction de rotation
Pour effectuer la rotation d'un secret, vous avez besoin d'une fonction de rotation. Une fonction de rotation est une fonction Lambda que Secrets Manager appelle pour effectuer la rotation de votre secret. Pour de plus amples informations, veuillez consulter Rotation par fonction Lambda. Au cours de cette étape, vous écrivez le code qui met à jour le secret et le service ou la base de données auxquels le secret est destiné.
Secrets Manager fournit des modèles pour les secrets de base de données Amazon, Amazon Aurora, Amazon Redshift et Amazon DocumentDB dans. RDS Modèles de fonctions de rotation
Pour écrire le code de la fonction de rotation
-
Effectuez l’une des actions suivantes :
Consultez la liste des modèles de fonctions de rotation. S'il y en a un qui correspond à votre stratégie de service et de rotation, copiez-le.
Pour les autres types de secrets, vous écrivez votre propre fonction de rotation. Pour obtenir des instructions, consultez Fonctions de rotation Lambda.
Enregistrez le fichier dans un ZIP fichier
my-function.zip
avec toutes les dépendances requises.
Étape 2 : Création de la fonction Lambda
Au cours de cette étape, vous allez créer la fonction Lambda à l'aide du ZIP fichier que vous avez créé à l'étape 1. Vous définissez également le rôle d'exécution Lambda, qui est le rôle que Lambda assume lorsque la fonction est invoquée.
Pour créer une fonction de rotation Lambda et un rôle d'exécution
Créez une politique de confiance pour le rôle d'exécution Lambda et enregistrez-la sous forme de fichier. JSON Pour des exemples et de plus amples informations, consultezAutorisations de rôle d'exécution de la fonction de rotation Lambda pour AWS Secrets Manager. La stratégie doit :
autoriser le rôle à appeler les opérations Secrets Manager sur le secret ;
Autorisez le rôle à appeler le service auquel le secret est destiné, par exemple, pour créer un nouveau mot de passe.
-
Créez le rôle d'exécution Lambda et appliquez la politique de confiance que vous avez créée à l'étape précédente en appelant.
iam create-role
aws iam create-role \ --role-name
rotation-lambda-role
\ --assume-role-policy-document file://trust-policy.json
-
Créez la fonction Lambda à partir du ZIP fichier en appelant.
lambda create-function
aws lambda create-function \ --function-name my-rotation-function \ --runtime python3.7 \ --zip-file fileb://
my-function.zip
\ --handler .handler \ --role arn:aws:iam::123456789012
:role/service-role/rotation-lambda-role
-
Définissez une stratégie de ressources sur la fonction Lambda afin de permettre à Secrets Manager de l'invoquer en appelant
lambda add-permission
.aws lambda add-permission \ --function-name
my-rotation-function
\ --action lambda:InvokeFunction \ --statement-id SecretsManager \ --principal secretsmanager.amazonaws.com \ --source-account123456789012
Étape 3 : configurer l'accès au réseau
Pour de plus amples informations, veuillez consulter Accès au réseau pour la fonction de rotation Lambda.
Étape 4 : Configuration du secret pour la rotation
Pour activer la rotation automatique de votre secret, appelez rotate-secret
. Vous pouvez définir une planification de rotation avec une expression de planification cron()
ou rate()
, et définir la durée d'une fenêtre de rotation. Pour de plus amples informations, veuillez consulter Horaires de rotation.
aws secretsmanager rotate-secret \ --secret-id MySecret \ --rotation-lambda-arn arn:aws:lambda:
Region
:123456789012
:function:my-rotation-function
\ --rotation-rules "{\"ScheduleExpression\": \"cron(0 16 1,15 * ? *)
\", \"Duration\": \"2h
\"}"
Étapes suivantes
Consultez Résoudre les problèmes de rotation AWS Secrets Manager.