Configurez la rotation alternée des utilisateurs pour 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.

Configurez la rotation alternée des utilisateurs pour AWS Secrets Manager

Dans ce tutoriel, vous apprendrez comment configurer une rotation des utilisateurs en alternance pour un secret contenant des informations d'identification de base de données. La rotation des utilisateurs en alternance est une stratégie de rotation dans laquelle Secrets Manager clone l'utilisateur, puis alterne les informations d'identification de l'utilisateur mises à jour. Cette stratégie est un bon choix si vous avez besoin d'une haute disponibilité pour votre secret, car l'un des utilisateurs en alternance dispose d'informations d'identification actuelles pour la base de données pendant que l'autre est en cours de mise à jour. Pour de plus amples informations, veuillez consulter Stratégie de rotation : utilisateurs en alternance.

Pour configurer la rotation des utilisateurs en alternance, deux secrets sont nécessaires :

  • Un secret avec les informations d'identification sur lequel vous souhaitez effectuer la rotation.

  • Un deuxième secret qui possède des informations d'identification d'administrateur.

    Cet utilisateur est autorisé à cloner le premier utilisateur et à modifier son mot de passe. Dans ce didacticiel, vous demandez à Amazon de RDS créer ce secret pour un utilisateur administrateur. Amazon gère RDS également la rotation des mots de passe d'administrateur. Pour de plus amples informations, veuillez consulter Rotation gérée pour les AWS Secrets Manager secrets.

La première partie de ce didacticiel consiste à mettre en place un environnement réaliste. Pour vous montrer comment fonctionne la rotation, ce didacticiel utilise un exemple de SQL base de données Amazon RDS My. Pour des raisons de sécurité, la base de données se trouve dans une zone VPC qui restreint l'accès Internet entrant. Pour vous connecter à la base de données depuis votre ordinateur local via Internet, vous utilisez un hôte bastion, un serveur VPC qui peut se connecter à la base de données, mais qui autorise également SSH les connexions depuis Internet. Dans ce didacticiel, l'hôte bastion est une EC2 instance Amazon, et les groupes de sécurité associés à cette instance empêchent d'autres types de connexions.

Une fois le didacticiel terminé, nous vous recommandons d'en nettoyer les ressources. Ne les utilisez pas dans un environnement de production.

La rotation de Secrets Manager utilise un AWS Lambda fonction 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.

Autorisations

Pour les prérequis du didacticiel, vous devez disposer d'autorisations administratives sur votre Compte AWS. Dans un environnement de production, il est recommandé d'utiliser des rôles différents pour chacune des étapes. Par exemple, un rôle doté d'autorisations d'administrateur de base de données créerait la RDS base de données Amazon, et un rôle doté d'autorisations d'administrateur réseau configurerait les groupes de sécurité VPC et. Pour les étapes du tutoriel, nous vous recommandons de continuer à utiliser la même identité.

Pour plus d'informations sur la façon de configurer les autorisations dans un environnement de production, consultez Authentification et contrôle d'accès pour AWS Secrets Manager.

Prérequis

Prérequis A : Amazon VPC

Au cours de cette étape, vous créez une base de données Amazon dans VPC laquelle vous pouvez lancer une RDS base de données Amazon et une EC2 instance Amazon. Dans une étape ultérieure, vous utiliserez votre ordinateur pour vous connecter via Internet au bastion, puis à la base de données. Vous devrez donc autoriser le trafic sortant duVPC. Pour ce faire, Amazon VPC attache une passerelle Internet à la table de routage VPC et ajoute une route dans la table de routage afin que le trafic destiné à l'extérieur VPC soit envoyé vers la passerelle Internet.

Dans leVPC, vous créez un point de terminaison Secrets Manager et un point de RDS terminaison Amazon. Lorsque vous configurez la rotation automatique lors d'une étape ultérieure, Secrets Manager crée une fonction de rotation Lambda dans le VPC afin qu'il puisse accéder à la base de données. La fonction de rotation Lambda appelle également Secrets Manager pour mettre à jour le secret, et elle appelle Amazon RDS pour obtenir les informations de connexion à la base de données. En créant des points de terminaison dans leVPC, vous vous assurez que les appels de la fonction Lambda vers Secrets Manager et RDS Amazon ne partent pas AWS infrastructure. Ils sont plutôt routés vers les points de terminaison situés dans le. VPC

Pour créer un VPC
  1. Ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/.

  2. Choisissez Créer VPC.

  3. Sur la VPC page Créer, sélectionnez VPCet plus encore.

  4. Sous Name tag auto-generation (Génération automatique de balises nominatives), sous Auto-generate (Génération automatique), saisissez SecretsManagerTutorial.

  5. Pour les DNSoptions, choisissez à la fois Enable DNS hostnames etEnable DNS resolution.

  6. Choisissez Créer VPC.

Pour créer un point de terminaison Secrets Manager dans le VPC
  1. Dans la VPC console Amazon, sous Endpoints, choisissez Create Endpoint.

  2. Dans Endpoint settings (Paramètres du point de terminaison), dans le champ Name (Nom), saisissez SecretsManagerTutorialEndpoint.

  3. Sous Services, entrez secretsmanager pour filtrer la liste, puis sélectionnez le point de terminaison Secrets Manager dans votre Région AWS. Par exemple, dans l'est des États-Unis (Virginie du Nord), choisissezcom.amazonaws.us-east-1.secretsmanager.

  4. Pour VPC, choisissezvpc**** (SecretsManagerTutorial).

  5. Pour Subnets (Sous-réseaux), sélectionnez toutes les Availability Zones (Zones de disponibilité), puis pour chacune d'elle, choisissez un Subnet ID (ID de sous-réseau) à inclure.

  6. Pour IP address type (Type d'adresse IP), choisissez IPv4.

  7. Pour Security Groups (Groupes de sécurité), choisissez le groupe de sécurité par défaut.

  8. Pour Policy type (Type de politique), choisissez Full access.

  9. Choisissez Créer un point de terminaison.

Pour créer un point de RDS terminaison Amazon dans le VPC
  1. Dans la VPC console Amazon, sous Endpoints, choisissez Create Endpoint.

  2. Dans Endpoint settings (Paramètres du point de terminaison), dans le champ Name (Nom), saisissez RDSTutorialEndpoint.

  3. Sous Services, entrez rds pour filtrer la liste, puis sélectionnez le point de RDS terminaison Amazon dans votre Région AWS. Par exemple, dans l'est des États-Unis (Virginie du Nord), choisissezcom.amazonaws.us-east-1.rds.

  4. Pour VPC, choisissezvpc**** (SecretsManagerTutorial).

  5. Pour Subnets (Sous-réseaux), sélectionnez toutes les Availability Zones (Zones de disponibilité), puis pour chacune d'elle, choisissez un Subnet ID (ID de sous-réseau) à inclure.

  6. Pour IP address type (Type d'adresse IP), choisissez IPv4.

  7. Pour Security Groups (Groupes de sécurité), choisissez le groupe de sécurité par défaut.

  8. Pour Policy type (Type de politique), choisissez Full access.

  9. Choisissez Créer un point de terminaison.

Prérequis B : instance Amazon EC2

La RDS base de données Amazon que vous créerez ultérieurement se trouvera dans le. Pour y accéderVPC, vous avez donc besoin d'un hôte bastion. L'hôte bastion figure également dans leVPC, mais dans une étape ultérieure, vous configurez un groupe de sécurité pour permettre à votre ordinateur local de se connecter à l'hôte bastion avec. SSH

Pour créer une EC2 instance pour un hôte bastion
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Choisissez Instances, puis choisissez Launch Instances (Lancer les instances).

  3. Sous Name and tags (Nom et identifications), pour Name (Nom), saisissez SecretsManagerTutorialInstance.

  4. Sous Images de l'application et du système d'exploitation, conservez la valeur par défautAmazon Linux 2 AMI (HMV) Kernel 5.10.

  5. Sous Type d'instance, conservez la valeur par défaut t2.micro.

  6. Sous Paire de clés, choisissez Créer une paire de clés.

    Dans la boîte de dialogue Créer une paire de clés, pour Nom de la paire de clés, entrez SecretsManagerTutorialKeyPair, puis choisissez Créer une paire de clés.

    La paire de clése est automatiquement téléchargée.

  7. Sous Network settings (Paramètres réseau), choisissez Edit (Modifier), puis procédez comme suit :

    1. Pour VPC, choisissezvpc-**** SecretsManagerTutorial.

    2. Pour Auto-assign Public IP (Attribuer automatiquement l'adresse IP publique), choisissez Enable.

    3. Pour Firewall (pare-feu, choisissez Select existing security group (Choisir le groupe de sécurité existant).

    4. Pour Groupes de sécurité communs, sélectionnez default.

  8. Choisissez Launch instance (Lancer une instance).

Prérequis C : RDS base de données Amazon et secret Secrets Manager pour les informations d'identification de l'administrateur

Au cours de cette étape, vous créez une SQL base de données Amazon RDS My et vous la configurez de telle sorte qu'Amazon RDS crée un secret contenant les informations d'identification de l'administrateur. Amazon gère ensuite RDS automatiquement la rotation du secret d'administration pour vous. Pour de plus amples informations, veuillez consulter Rotation gérée.

Dans le cadre de la création de votre base de données, vous devez indiquer l'hôte bastion que vous avez créé à l'étape précédente. Amazon RDS configure ensuite des groupes de sécurité afin que la base de données et l'instance puissent accéder l'une à l'autre. Vous ajoutez une règle au groupe de sécurité associé à l’instance pour permettre à votre ordinateur local de s'y connecter également.

Pour créer une RDS base de données Amazon avec un secret Secrets Manager contenant les informations d'identification de l'administrateur
  1. Dans la RDS console Amazon, choisissez Create database.

  2. Dans la section Options de moteur, pour Type de moteur, choisissez MySQL.

  3. Dans la section Templates (Modèles), choisissez .

  4. Dans la section Settings (Paramètres), procédez comme suit :

    1. Pour l'identifiant de l'instance DB, saisissez SecretsManagerTutorial.

    2. Sous Paramètres des informations d'identification, sélectionnez Gérer les informations d'identification principales dans AWS Secrets Manager.

  5. Dans la section Connectivité, pour Ressource informatique, choisissez Se connecter à une ressource EC2 informatique, puis pour EC2Instance, choisissezSecretsManagerTutorialInstance.

  6. Choisissez Créer une base de données.

Prérequis D : Autoriser votre ordinateur local à se connecter à l'instance EC2

Au cours de cette étape, vous configurez l'EC2instance que vous avez créée dans Prereq B pour permettre à votre ordinateur local de s'y connecter. Pour ce faire, vous devez modifier le groupe de sécurité RDS ajouté par Amazon dans Prereq C afin d'inclure une règle permettant à l'adresse IP de votre ordinateur de se connecter. SSH La règle permet à votre ordinateur local (identifié par votre adresse IP actuelle) de se connecter à l'hôte du bastion SSH via Internet.

Pour autoriser votre ordinateur local à se connecter à l'EC2instance
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Sur l'EC2instance SecretsManagerTutorialInstance, sous l'onglet Sécurité, sous Groupes de sécurité, sélectionnezsg-*** (ec2-rds-X).

  3. Sous l'onglet Input rules (Règles entrantes), sélectionnez Edit inbound rules (Modifier les règles entrantes).

  4. Choisissez Ajouter une règle et procédez comme suit pour la règle :

    1. Dans le champ Type, sélectionnez SSH.

    2. Pour Type de source, choisissez My IP.

Étape 1 : créer un utilisateur de RDS base de données Amazon

Tout d'abord, vous avez besoin d'un utilisateur dont les informations d'identification seront stockées dans le secret. Pour créer l'utilisateur, connectez-vous à la RDS base de données Amazon avec des informations d'identification d'administrateur. Pour des raisons de simplicité, dans le didacticiel, vous allez créer un utilisateur avec des autorisations complètes sur une base de données. Dans un environnement de production, ce n'est pas courant et nous vous recommandons de respecter le principe du moindre privilège.

Pour vous connecter à la base de données, vous utilisez un outil Mon SQL client. Dans ce didacticiel, vous allez utiliser My SQL Workbench, une application GUI basée sur My Workbench. Pour installer My SQL Workbench, voir Télécharger My SQL Workbench.

Pour vous connecter à la base de données, créez une configuration de connexion dans My SQL Workbench. Pour la configuration, vous avez besoin de certaines informations provenant d'Amazon EC2 et d'AmazonRDS.

Pour créer une connexion à une base de données dans My SQL Workbench
  1. Dans My SQL Workbench, à côté de Mes SQL connexions, cliquez sur le bouton (+).

  2. Dans la boîte de dialogue Setup New Connection (Configurer une nouvelle connexion), effectuez les tâches suivantes :

    1. Pour Connection Name (Nom de connexion), saisissez SecretsManagerTutorial.

    2. Pour Connection Method (Méthode de connexion), choisissez Standard TCP/IP over SSH.

    3. Sur l'onglet Parameters (Paramètres), procédez comme suit :

      1. Pour SSHNom d'hôte, entrez l'adresse IP publique de l'EC2instance Amazon.

        Vous pouvez trouver l'adresse IP sur la EC2 console Amazon en choisissant l'instance SecretsManagerTutorialInstance. Copiez l'adresse IP sous Public IPv4 DNS.

      2. Dans SSHNom d'utilisateur, entrezec2-user.

      3. Pour SSHKeyfile, choisissez le fichier de paire de clés SecretsManagerTutorialKeyPair.pem que vous avez téléchargé dans le prérequis précédent.

      4. Pour My SQL Hostname, entrez l'adresse du point de RDS terminaison Amazon.

        Vous pouvez trouver l'adresse du point de terminaison sur la RDS console Amazon en choisissant l'instance de base de données secretsmanagertutorialdb. Copiez l'adresse sous Endpoint (Point de terminaison).

      5. Pour Username (Nom d'utilisateur), saisissez admin.

    4. Choisissez OK.

Pour récupérer le mot de passe administrateur
  1. Dans la RDS console Amazon, accédez à votre base de données.

  2. Dans l'onglet Configuration, sous Master Credentials ARN, choisissez Gérer dans Secrets Manager.

    La console Secrets Manager s’ouvre.

  3. Sur la page de détails de votre secret, sélectionnez Retrieve secret value (Récupérer la valeur du secret).

  4. Le mot de passe apparaît dans la section Valeur secrète.

Pour créer un utilisateur de base de données
  1. Dans My SQL Workbench, choisissez la connexion SecretsManagerTutorial.

  2. Saisissez le mot de passe administrateur que vous avez récupéré dans le secret.

  3. Dans My SQL Workbench, dans la fenêtre Requête, entrez les commandes suivantes (y compris un mot de passe fort), puis choisissez Execute. La fonction de rotation teste le secret mis à jour en utilisantSELECT, de sorte qu'ils appuser doivent avoir ce privilège au minimum.

    CREATE DATABASE myDB; CREATE USER 'appuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD'; GRANT SELECT ON myDB . * TO 'appuser'@'%';

    Dans la fenêtre Output (Sortie), vous voyez que les commandes sont réussies.

Étape 2 : créez un secret pour les informations d'identification de l'utilisateur

Ensuite, vous créez un secret pour stocker les informations d'identification de l'utilisateur que vous venez de créer. C'est le secret sur lequel vous allez effectuer la rotation. Vous activez la rotation automatique et, pour indiquer la stratégie des utilisateurs en alternance, vous choisissez un secret de super-utilisateur distinct autorisé à modifier le mot de passe du premier utilisateur.

  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 le type secret, choisissez Credentials for Amazon RDS database.

    2. Pour les informations d'identification, entrez le nom d'utilisateur appuser et le mot de passe que vous avez saisis pour l'utilisateur de base de données que vous avez créé à l'aide SQL de My Workbench.

    3. Pour Database (Base de données), choisissez secretsmanagertutorialdb.

    4. Choisissez Suivant.

  4. Sur la page Configure secret (Configurer le secret), pour Secret name (Nom du secret), saisissez SecretsManagerTutorialAppuser puis choisissez Next (Suivant).

  5. Sur la page Configure rotation (Configuration de la rotation), procédez comme suit :

    1. Activez Automatic rotation (Rotation automatique).

    2. Pour Rotation schedule (Calendrier de rotation), définissez un calendrier de Days (Jours) : 2 Jours avec une Duration (Durée) :2h. Gardez Rotate immediately (Rotation immédiate) sélectionné.

    3. Pour Rotation function (Fonction de rotation), choisissez Create a rotation function (Créer une fonction de rotation), puis pour le nom de la fonction, saisissez tutorial-alternating-users-rotation.

    4. Pour la Stratégie de rotation, choisissez Utilisateurs en alternance, puis sous Informations d'identification d'administrateur du secret, choisissez le secret nommé rds !cluster... dont la description inclut le nom de la base de données que vous avez créée dans ce didacticiel secretsmanagertutorial, par exemple Secret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial.

    5. Choisissez Suivant.

  6. Sur la page Review (Vérification), choisissez Store (Stocker).

    Secrets Manager revient à la page des détails du secret. En haut de la page, vous pouvez voir l'état de la configuration de rotation. Secrets Manager permet CloudFormation de créer des ressources telles que la fonction de rotation Lambda et un rôle d'exécution qui exécute la fonction Lambda. Lorsque vous CloudFormation avez terminé, la bannière devient « Secret », dont la rotation est planifiée. La première rotation est configurée.

Étape 3 : Test de rotation du secret

Maintenant que la rotation du secret a été effectuée, vous pouvez vérifier que le secret contient des informations d’dentification valides. Le mot de passe dans le secret a changé par rapport aux informations d'identification d'origine.

Pour récupérer le nouveau mot de passe du secret
  1. Ouvrez la console Secrets Manager à l'adresse https://console.aws.amazon.com/secretsmanager/.

  2. Choisissez Secrets, puis choisissez le secret SecretsManagerTutorialAppuser.

  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).

  4. Dans le tableau Key/value (Clé/Valeur), copiez la Secret value (Valeur de secret) pour password.

Pour tester les informations d'identification
  1. Dans My SQL Workbench, cliquez avec le bouton droit sur la connexion, SecretsManagerTutorialpuis choisissez Modifier la connexion.

  2. Dans la boite de dialogue Manage Server Connections (Gérer les connexions aux serveurs), pour Username (Nom d'utilisateur), saisissez appuser, puis choisissez Close (Fermer).

  3. De retour dans My SQL Workbench, choisissez la connexion SecretsManagerTutorial.

  4. Dans la boîte de dialogue Ouvrir SSH une connexion, pour Mot de passe, collez le mot de passe que vous avez extrait du secret, puis choisissez OK.

    Si les informations d'identification sont valides, My SQL Workbench s'ouvre sur la page de conception de la base de données.

Cela montre que la rotation du secret est réussie. Les informations d'identification du secret ont été mises à jour et c'est un mot de passe valide pour se connecter à la base de données.

Étape 4 : Nettoyer les ressources

Si vous voulez essayer une autre stratégie de rotation, rotation des utilisateurs en simple, sautez le nettoyage des ressources et accédez à Configurez la rotation pour un seul utilisateur pour AWS Secrets Manager.

Sinon, pour éviter d'éventuels frais et pour supprimer l'EC2instance ayant accès à Internet, supprimez les ressources suivantes que vous avez créées dans ce didacticiel ainsi que les éléments requis :

Étapes suivantes