Configurer la rotation automatique pour les secrets Amazon RDS, Amazon Aurora, Amazon Redshift ou Amazon DocumentDB - AWS Secrets Manager

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.

Configurer la rotation automatique pour les secrets Amazon RDS, Amazon Aurora, Amazon Redshift ou Amazon DocumentDB

Ce didacticiel explique comment configurer les secrets Rotation par fonction Lambda de base de données. 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 la base de données. Dans Secrets Manager, vous pouvez définir la rotation automatique de vos secrets de base de données.

Pour configurer la rotation à l'aide de la console, vous devez d'abord choisir une stratégie de rotation. Vous configurez ensuite le secret pour la rotation, ce qui crée une fonction de rotation Lambda si vous n'en avez pas déjà une. La console définit également les autorisations pour le rôle d'exécution de la fonction Lambda. La dernière étape consiste à s'assurer que la fonction de rotation Lambda peut accéder à la fois à Secrets Manager et à votre base de données via le réseau.

Avertissement

Pour activer la rotation automatique, vous devez être autorisé à créer un rôle d'exécution IAM pour la fonction de rotation Lambda et à y associer une politique d'autorisation. Vous avez besoin des deux autorisations iam:CreateRole et iam:AttachRolePolicy. L'octroi de ces autorisations permet à une identité de s'octroyer toutes les autorisations.

Étape 1 : choisir une stratégie de rotation et (éventuellement) créer un secret de super-utilisateur

Pour plus d'informations sur les stratégies proposées par Secrets Manager, consultezStratégies de rotation des fonctions Lambda.

Si vous choisissez la stratégie des utilisateurs en alternance, vous devez Création d'un secret de base de données et y stocker les informations d'identification du super-utilisateur de la base de données. Vous avez besoin d'un code secret avec les informations d'identification du super-utilisateur, car la rotation clone le premier utilisateur, et la plupart des utilisateurs ne disposent pas de cette autorisation. Notez qu'Amazon RDS Proxy ne prend pas en charge la stratégie des utilisateurs alternatifs.

Étape 2 : configurer la rotation et créer une fonction de rotation

Pour activer la rotation d'un secret Amazon RDS, Amazon DocumentDB ou Amazon Redshift
  1. Ouvrez la console Secrets Manager en suivant le lien https://console.aws.amazon.com/secretsmanager/.

  2. Sur la page Secrets, choisissez votre secret.

  3. Sur la page Secret details (Détails du secret), dans la section Rotation configuration (Configuration de la rotation), choisissez Edit rotation (Modifier la rotation).

  4. Dans la boîte de dialogue Edit rotation configuration (Modifier la configuration de la rotation), suivez la procédure suivante :

    1. Activez Automatic rotation (Rotation automatique).

    2. Sous Rotation schedule (Planification de la rotation), saisissez votre planification dans le fuseau horaire UTC dans le Schedule expression builder (Générateur d'expressions de planification) ou sous la forme d'une Schedule expression (Expression de planification). Secrets Manager stocke votre planification sous la forme d'une expression rate() ou cron(). La fenêtre de rotation démarre automatiquement à minuit, sauf si vous spécifiez une Start time (Heure de début). Vous pouvez effectuer la rotation d'un secret toutes les quatre heures. Pour plus d’informations, consultez Horaires de rotation.

    3. (Facultatif) Pour Window duration (Durée de la fenêtre), choisissez la durée de la fenêtre pendant laquelle vous souhaitez que Secrets Manager effectue une rotation de votre secret, par exemple, 3h pour une fenêtre de trois heures. La fenêtre ne doit pas s'étendre jusqu'à la fenêtre de rotation suivante. Si vous ne spécifiez pas la durée de la fenêtre, la fenêtre se ferme automatiquement au bout d'une heure si le programme de rotation est défini en heures. Pour un programme de rotation en jours, la fenêtre se ferme automatiquement à la fin de la journée.

    4. (Facultatif) Sélectionnez Rotate immediately when the secret is stored (Effectuer immédiatement une rotation lorsque le secret est stocké) pour effectuer une rotation de votre secret lorsque vous enregistrez vos modifications. Si vous décochez la case, la première rotation commencera selon la planification que vous avez définie.

      Si la rotation échoue, par exemple parce que les étapes 3 et 4 ne sont pas encore terminées, Secrets Manager tente à nouveau le processus de rotation plusieurs fois.

    5. Sous Rotation function (Fonction de rotation), effectuez l'une des actions suivantes :

      • Sélectionnez Create a new Lambda function (Créer une fonction Lambda) et saisissez le nom de votre fonction. Secrets Manager ajoute SecretsManager au début du nom de votre fonction. Secrets Manager crée la fonction en se basant sur le modèle approprié et définit les autorisations nécessaires pour le rôle d'exécution Lambda.

      • Choisissez Use an existing Lambda function (Utiliser une fonction Lambda existante) pour réutiliser une fonction de rotation que vous avez utilisée pour un autre secret. Les fonctions de rotation répertoriées sous Recommended VPC configurations (Configurations de VPC recommandées) ont le même VPC et le même groupe de sécurité que la base de données, ce qui permet à la fonction d'accéder à la base de données.

    6. Pour la Stratégie de rotation, choisissez la stratégie Utilisateur unique ou Utilisateurs en alternance. Pour plus d’informations, consultez Étape 1 : choisir une stratégie de rotation et (éventuellement) créer un secret de super-utilisateur.

  5. Choisissez Enregistrer.

Étape 3 : (facultative) définir des conditions d'autorisation supplémentaires pour la fonction de rotation

Dans la stratégie de ressources de votre fonction de rotation, nous vous recommandons d'inclure la clé de contexte aws:SourceAccount afin d'éviter que Lambda ne soit utilisé comme un adjoint confus. 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:SourceArnet les clés de condition aws:SourceAccountglobale. 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 mettre à jour la stratégie de ressources de votre fonction de rotation
  1. Dans la console Secrets Manager, choisissez votre secret, puis sur la page des détails, sous Rotation configuration (Configuration de la rotation), choisissez la fonction de rotation Lambda. La console Lambda s'ouvre.

  2. Suivez les instructions de la rubrique Utilisation de stratégies basées sur les ressources pour Lambda pour ajouter une condition aws:sourceAccount.

    "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } },

Si le secret est chiffré avec une clé KMS autre que la Clé gérée par AWS aws/secretsmanager, Secrets Manager accorde au rôle d'exécution Lambda l'autorisation d'utiliser la clé. Vous pouvez utiliser le contexte de chiffrement SecretARN pour limiter l'utilisation de la fonction de déchiffrement, de sorte que le rôle de la fonction de rotation n'ait accès que pour déchiffrer le secret qu'il est chargé de faire pivoter.

Pour mettre à jour le rôle d'exécution de votre fonction de rotation
  1. Dans la fonction de rotation Lambda, choisissez Configuration, puis sous Rôle d'exécution, choisissez le Nom du rôle.

  2. Suivez les instructions de la rubrique Modification de la stratégie d'autorisations d'un rôle pour ajouter une condition kms:EncryptionContext:SecretARN.

    "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "SecretARN" } },

Étape 4 : configurer l'accès au réseau pour la fonction de rotation

Pour plus d’informations, consultez Accès au réseau pour la fonction de rotation Lambda.

Étapes suivantes

veuillez consulter Résoudre les problèmes de rotation AWS Secrets Manager.