Rotation des secrets d'AWS Secrets Manager
La Rotation est le processus de mise à jour périodique d'un secret. 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. Dans Secrets Manager, vous pouvez définir la rotation automatique de vos secrets.
Rubriques
Fonctionnement de la rotation
Astuce
Pour certains Secrets gérés par d'autres services, vous utilisez la rotation gérée. Pour utiliser Rotation gérée, vous devez d'abord créer le secret via le service de gestion.
La rotation de Secrets Manager utilise une fonction AWS Lambda pour mettre à jour le secret et la base de données. Pour plus d'informations sur les coûts d'utilisation d'une fonction Lambda, consultez Tarification.
Pour mettre un secret en rotation, Secrets Manager appelle une fonction Lambda en fonction de la planification que vous avez configurée. Vous pouvez définir un programme de rotation après un certain temps, par exemple tous les 30 jours, ou vous pouvez créer une expression cron. Consultez Expressions de planification. Si vous mettez manuellement à jour votre valeur secrète alors que la rotation automatique est configurée, Secrets Manager considère qu'il s'agit d'une rotation valide lorsqu'il calcule la date de rotation suivante.
Pour des raisons de sécurité, Secrets Manager n'autorise qu'une fonction de rotation Lambda à faire pivoter le secret directement. La fonction de rotation ne peut pas appeler une deuxième fonction Lambda pour faire pivoter le secret.
Secrets Manager utilise des étiquettes intermédiaires pour étiqueter les versions d'un secret pendant la rotation. Au cours de la rotation, Secrets Manager appelle la même fonction plusieurs fois, avec des paramètres différents à chaque fois. Secrets Manager appelle la fonction avec la structure de demande JSON de paramètres suivante :
{ "Step" : "request.type", "SecretId" : "string", "ClientRequestToken" : "string" }
La fonction de rotation effectue le travail de rotation du secret. La rotation d'un secret comporte quatre étapes, qui correspondent aux quatre étapes suivantes de la fonction de rotation Lambda :
-
Créer une nouvelle version du secret (
createSecret
)La première étape de la rotation consiste à créer une nouvelle version du secret. Dans les modèles de rotation de la base de données fournis par Secrets Manager, la fonction Lambda génère un mot de passe de 32 caractères pour la nouvelle version. La nouvelle version peut contenir un nouveau mot de passe, un nouveau nom d'utilisateur ET un nouveau mot de passe, ou plus d'informations sur le secret. Secrets Manager étiquette la nouvelle version du secret avec l'étiquette intermédiaire
.AWSPENDING
-
Modifier les informations d'identification dans la base de données ou le service (
setSecret
)Ensuite, la rotation modifie les informations d'identification de la base de données ou du service afin qu'elles correspondent aux nouvelles informations d'identification dans la version
AWSPENDING
du secret. En fonction de votre stratégie de rotation, cette étape peut créer un nouvel utilisateur avec les mêmes autorisations que l'utilisateur existant.Les fonctions de rotation pour Amazon RDS (sauf Oracle) et Amazon DocumentDB utilisent automatiquement le protocole SSL (Secure Socket Layer) ou le protocole TLS (Transport Layer Security) pour se connecter à votre base de données, si elle est disponible. Sinon, elles utilisent une connexion non chiffrée.
Note
Si vous avez configuré la rotation automatique des secrets avant le 20 décembre 2021, votre fonction de rotation peut être basée sur un modèle plus ancien qui ne prenait pas en charge les protocoles SSL/TLS. Consultez la section Déterminer quand votre fonction de rotation a été créée. Si elle a été créée avant le 20 décembre 2021, pour prendre en charge les connexions utilisant les protocoles SSL/TLS, vous devez recréer votre fonction de rotation.
-
Tester la nouvelle version du secret (
testSecret
)Ensuite, la rotation teste la version
AWSPENDING
du secret en l'utilisant pour accéder à la base de données ou au service. Fonctions de rotation basées sur le test Modèles de fonctions de rotation du nouveau secret en utilisant l'accès en lecture. Selon le type d'accès dont vos applications ont besoin, vous pouvez mettre à jour la fonction pour inclure d'autres accès tels que l'accès en écriture. -
Terminer la rotation (
finishSecret
)Enfin, la rotation déplace l'étiquette
AWSCURRENT
de la version précédente du secret à cette version. Secrets Manager ajoute l'étiquette intermédiaireAWSPREVIOUS
à la version précédente, de sorte que vous conservez la dernière bonne version connue du secret.
Pendant la rotation, Secrets Manager enregistre les événements qui indiquent l'état de rotation. Pour de plus amples informations, veuillez consulter Journalisation d'événements AWS Secrets Manager avec AWS CloudTrail.
Si une étape de la rotation échoue, Secrets Manager retente l'intégralité du processus de rotation plusieurs fois.
Lorsque la rotation est réussie, l'étiquette AWSPENDING
de transit peut être attachée à la même version que la version AWSCURRENT
, ou elle peut ne pas être attachée à aucune version. Si l'étiquette de transit AWSPENDING
est présente, mais n'est pas attachée à la même version AWSCURRENT
, tout appel ultérieur à la rotation suppose qu'une demande de rotation précédente est toujours en cours et renvoie une erreur. Lorsque la rotation échoue, l'étiquette AWSPENDING
intermédiaire peut être attachée à une version secrète vide. Pour de plus amples informations, veuillez consulter Résolution des problèmes de rotation.
Les applications qui Récupération des secrets à partir de AWS Secrets Manager à partir de Secrets Manager obtiennent automatiquement les nouvelles informations d'identification après la rotation. Pour de plus amples informations sur le fonctionnement de chaque étape de la rotation, veuillez consulter leAWS Secrets Manager Modèles de fonctions de rotation.