Déplacez les informations d'identification codées en dur vers AWS Secrets Manager - 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.

Déplacez les informations d'identification codées en dur vers AWS Secrets Manager

Si vous avez des informations d'identification de base de données en texte brut dans votre code, nous vous recommandons de les déplacer vers Secrets Manager, puis de les faire tourner immédiatement. Le déplacement des informations d'identification vers Secrets Manager résout le problème de la visibilité des informations d'identification par toute personne qui voit le code, car à l'avenir, votre code récupère les informations d'identification directement depuis Secrets Manager. La rotation du secret met à jour le mot de passe, puis révoque le mot de passe actuellement codé en dur pour qu'il ne soit plus valide.

Pour les bases de données Amazon RDS, Amazon Redshift et Amazon DocumentDB, suivez les étapes de cette page pour déplacer les informations d'identification codées en dur vers Secrets Manager. Pour d'autres types d'informations d'identification et d'autres secrets, consultez Déplacez les secrets codés en dur vers AWS Secrets Manager.

Avant de commencer, déterminez qui a besoin d'accéder au secret. Nous vous recommandons d'utiliser deux rôles IAM pour gérer les autorisations d'accès à votre secret :

  • Un rôle qui gère les secrets de votre organisation. Pour plus d’informations, consultez Secrets Manager. Vous allez créer et faire tourner le secret à l'aide de ce rôle.

  • RoleToRetrieveSecretAtRuntimeDans ce didacticiel, un rôle qui peut utiliser les informations d'identification lors de l'exécution. Votre code assume ce rôle pour récupérer le secret.

Étape 1 : créer le secret

La première étape consiste à copier les informations d'identification codées en dur existantes dans un secret dans Secrets Manager. Pour la latence la plus faible, stockez le secret dans la même région que la base de données.

Pour créer un secret
  1. Ouvrez la console Secrets Manager à l'adresse https://console.aws.amazon.com/secretsmanager/.

  2. Choisissez Store a new secret (Stocker un nouveau secret).

  3. Sur la page Choose secret type (Choisir un type de secret), procédez comme suit :

    1. Pour Secret type (Type de secret), choisissez le type d'informations d'identification de base de données à stocker :

      • Bases de données Amazon RDS

      • Base de données Amazon DocumentDB

      • Entrepôt de données Amazon Redshift.

      • Pour d'autres types de secrets, consultez Remplacer les secrets codés en dur.

    2. Pour Informations d'identification, saisissez les informations d'identification codées en dur existantes de la base de données.

    3. Pour Encryption key (clé de cryptage), choisissez aws/secretsmanager pour utiliser la Clé gérée par AWS pour Secrets Manager. L'utilisation de cette clé n'entraîne aucun coût. Vous pouvez également utiliser votre propre clé gérée par le client, par exemple pour accéder au secret d'un autre Compte AWS. Pour plus d'informations sur les coûts d'utilisation d'une clé gérée par le client, consultez Tarification.

    4. Pour Database (Base de données), choisissez votre base de données.

    5. Choisissez Suivant.

  4. Sur la page Configure secret (Configurer le secret), procédez comme suit :

    1. Saisissez un Secret name (Nom de secret) descriptif et une Description.

    2. Dans Resource permissions (Autorisations des ressources), choisissez Edit permissions (Modifier les autorisations). Collez la politique suivante, qui RoleToRetrieveSecretAtRuntimepermet de récupérer le secret, puis choisissez Enregistrer.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/RoleToRetrieveSecretAtRuntime" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
    3. Au bas de la page, sélectionnez Next.

  5. Sur la page Configure rotation (Configurer la rotation), maintenez la rotation désactivée pour le moment. Vous l'activerez plus tard. Choisissez Suivant.

  6. Dans la page Review (Révision), passez en revue vos paramètres, puis choisissez Store (Stocker).

Étape 2 : mettre à jour votre code

Votre code doit assumer le rôle IAM RoleToRetrieveSecretAtRuntimepour pouvoir récupérer le secret. Pour plus d'informations, consultez la section Passage à un rôle IAM (AWS API).

Ensuite, mettez à jour votre code pour récupérer le secret à partir de Secrets Manager à l'aide de l'exemple de code fourni par Secrets Manager.

Pour trouver l'exemple de code
  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. Faites défiler la page vers le bas jusqu'à Sample code (Exemple de code). Choisissez votre langue, puis copiez l'extrait de code.

Dans votre application, supprimez les informations d'identification codées en dur et collez l'extrait de code. Selon la langue de votre code, vous devrez peut-être ajouter un appel à la fonction ou à la méthode dans l'extrait de code.

Vérifiez que votre application fonctionne comme prévu avec le secret à la place des informations d'identification codées en dur.

Étape 3 : effectuer la rotation du secret

La dernière étape consiste à révoquer les informations d'identification codées en dur en faisant tourner le secret. 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. Secrets Manager peut faire tourner automatiquement un secret pour vous selon une planification que vous définissez.

Une partie de la configuration de la rotation consiste à s'assurer que la fonction de rotation Lambda peut accéder à la fois à Secrets Manager et à votre base de données. Lorsque vous activez la rotation automatique, Secrets Manager crée la fonction de rotation Lambda dans le même VPC que votre base de données afin qu'elle ait un accès réseau à la base de données. La fonction de rotation Lambda doit également pouvoir appeler Secrets Manager pour mettre à jour le secret. Nous vous recommandons de créer un point de terminaison Secrets Manager dans le VPC afin que les appels de Lambda vers Secrets Manager ne quittent pas l'infrastructure. AWS Pour obtenir des instructions, veuillez consulter Utilisation d'un AWS Secrets Manager VPC point de terminaison.

Pour activer la rotation
  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 rotation), saisissez votre planification dans le fuseau horaire UTC.

    3. Choisissez 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.

    4. Sous Rotation function (Fonction de rotation), choisissez Create a new Lambda function (Créer une fonction Lambda) et saisissez le nom de votre nouvelle fonction. Secrets Manager ajoute « SecretsManager » au début du nom de votre fonction.

    5. Pour Stratégie de rotation, choisissez Utilisateur unique.

    6. Choisissez Enregistrer.

Pour vérifier que le secret a tourné
  1. Ouvrez la console Secrets Manager en suivant le lien https://console.aws.amazon.com/secretsmanager/.

  2. Choisissez Secrets, puis choisissez le secret.

  3. Sur la page Secret details (Détails secrets), faites défiler l'écran vers le bas et choisissez Retrieve secret value (Récupération d'une valeur de secret).

    Si la valeur secrète a changé, la rotation a réussi. Si la valeur secrète n'a pas changé, vous devez consulter Résoudre la rotation d' les CloudWatch journaux de la fonction de rotation.

Vérifiez que votre application fonctionne comme prévu avec le secret provenant de la rotation.

Étapes suivantes

Après avoir supprimé un secret codé en dur de votre code, voici quelques idées à considérer pour la suite :