Gestion des mots de passe avec Amazon Aurora et AWS Secrets Manager - Amazon Aurora

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.

Gestion des mots de passe avec Amazon Aurora et AWS Secrets Manager

Amazon Aurora s'intègre à Secrets Manager pour gérer les mots de passe d'utilisateur principal de vos clusters de bases de données.

Disponibilité des régions et des versions

La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour plus d'informations sur la disponibilité des versions et des régions avec l'intégration de Secrets Manager avec Amazon Aurora, consultez Régions et moteurs de base de données Aurora pris en charge pour l'intégration de Secrets Manager.

Limites de l'intégration de Secrets Manager avec Amazon Aurora

La gestion des mots de passe d'utilisateur principal à l'aide de Secrets Manager n'est pas prise en charge pour les fonctionnalités suivantes :

  • Déploiements bleu/vert Amazon RDS

  • Clusters de bases de données qui font partie d'une base de données globale Aurora

  • Aurora Serverless v1 Clusters de bases de données

  • Aurora lit des répliques

Présentation de la gestion des mots de passe des utilisateurs principaux avec AWS Secrets Manager

Vous pouvez AWS Secrets Manager ainsi remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe de base de données, par un appel d'API à Secrets Manager pour récupérer le secret par programmation. Pour plus d'informations sur Secrets Manager, consultez le Guide de l'utilisateur AWS Secrets Manager.

Lorsque vous stockez des secrets de base de données dans Secrets Manager, des frais Compte AWS vous sont facturés. Pour plus d’informations sur la tarification, consultez Tarification AWS Secrets Manager.

Vous pouvez spécifier qu'Aurora doit gérer le mot de passe d'utilisateur principal dans Secrets Manager pour un cluster de bases de données Amazon Aurora quand vous effectuez l'une des opérations suivantes :

  • Création d'un cluster de base de données

  • Modifier un cluster de base de données

  • Restaurer un cluster de base de données depuis Amazon S3 (Aurora MySQL uniquement)

Quand vous spécifiez qu'Aurora doit gérer le mot de passe d'utilisateur principal dans Secrets Manager, Aurora génère le mot de passe et le stocke dans Secrets Manager. Vous pouvez interagir directement avec le secret pour récupérer les informations d'identification de l'utilisateur principal. Vous pouvez également spécifier une clé gérée par le client pour chiffrer le secret, ou utiliser la clé KMS fournie par Secrets Manager.

Aurora gère les paramètres du secret et effectue la rotation du secret tous les sept jours, par défaut. Vous pouvez modifier certains paramètres, tels que la planification de la rotation. Si vous supprimez un cluster de bases de données qui gère un secret dans Secrets Manager, le secret et les métadonnées associées sont également supprimés.

Pour vous connecter à un cluster de base de données avec les informations d'identification contenues dans un secret, vous pouvez récupérer le secret à partir de Secrets Manager. Pour plus d'informations, voir Extraire des secrets depuis une base de données SQL AWS Secrets Manager et Se connecter à une base de données SQL avec des informations d'identification inscrites dans un AWS Secrets Manager secret dans le Guide de AWS Secrets Manager l'utilisateur.

Avantages de la gestion des mots de passe d'utilisateur principal avec Secrets Manager

La gestion des mots de passe d'utilisateur principal Aurora avec Secrets Manager présente les avantages suivants :

  • Aurora génère automatiquement des informations d'identification de base de données.

  • Aurora stocke et gère automatiquement les informations d'identification de la base de données dans AWS Secrets Manager.

  • Aurora effectue une rotation régulière des informations d'identification de base de données, sans exiger de modifications d'application.

  • Secrets Manager sécurise les informations d'identification de base de données contre tout accès humain et tout affichage en texte brut.

  • Secrets Manager permet de récupérer les informations d'identification de base de données dans des secrets pour les connexions à une base de données.

  • Secrets Manager permet un contrôle précis de l'accès aux informations d'identification de base de données dans des secrets à l'aide d'IAM.

  • Vous pouvez éventuellement séparer le chiffrement d'une base de données du chiffrement des informations d'identification à l'aide de clés KMS différentes.

  • Vous pouvez éliminer la gestion et la rotation manuelles des informations d'identification de base de données.

  • Vous pouvez facilement surveiller les informations d'identification de la base AWS CloudTrail de données avec Amazon CloudWatch.

Pour en savoir plus sur les avantages de Secrets Manager, consultez le Guide de l'utilisateur AWS Secrets Manager.

Autorisations requises pour l'intégration de Secrets Manager

Les utilisateurs doivent disposer des autorisations requises pour effectuer des opérations liées à l'intégration de Secrets Manager. Vous pouvez créer des politiques IAM qui accordent des autorisations pour effectuer des opérations API spécifiques sur les ressources spécifiées dont ils ont besoin. Vous pouvez ensuite attacher ces politiques aux jeux d'autorisations ou rôles IAM qui requièrent ces autorisations. Pour de plus amples informations, veuillez consulter Gestion des identités et des accès pour Amazon Aurora.

Pour les opérations de création, de modification ou de restauration, l'utilisateur qui spécifie qu'Aurora doit gérer le mot de passe d'utilisateur principal dans Secrets Manager doit avoir les autorisations nécessaires pour effectuer les opérations suivantes :

  • kms:DescribeKey

  • secretsmanager:CreateSecret

  • secretsmanager:TagResource

L'kms:DescribeKeyautorisation est requise pour accéder à votre clé gérée par le client pour MasterUserSecretKmsKeyId et pour décrire. aws/secretsmanager

Pour les opérations de création, de modification ou de restauration, l'utilisateur qui spécifie la clé gérée par le client pour chiffrer le secret dans Secrets Manager doit avoir les autorisations nécessaires pour effectuer les opérations suivantes :

  • kms:Decrypt

  • kms:GenerateDataKey

  • kms:CreateGrant

Pour les opérations de modification, l'utilisateur qui effectue la rotation du mot de passe d'utilisateur principal dans Secrets Manager doit être autorisé à effectuer l'opération suivante :

  • secretsmanager:RotateSecret

Application de la gestion du mot de passe de l'utilisateur principal par dans AWS Secrets Manager

Vous pouvez utiliser des clés de condition IAM pour mettre en œuvre la gestion par Aurora du mot de passe d'utilisateur principal dans AWS Secrets Manager. La politique suivante n'autorise pas les utilisateurs à créer ou à restaurer des instances de base de données ou des clusters de bases de données, ni à , sauf si le mot de passe de l'utilisateur principal est géré par Aurora dans Secrets Manager.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["rds:CreateDBInstance", "rds:CreateDBCluster", "rds:RestoreDBInstanceFromS3", "rds:RestoreDBClusterFromS3"], "Resource": "*", "Condition": { "Bool": { "rds:ManageMasterUserPassword": false } } } ] }
Note

Cette politique impose la gestion des mots de passe dès AWS Secrets Manager leur création. Toutefois, vous pouvez toujours désactiver l'intégration de Secrets Manager et définir manuellement un mot de passe principal en modifiant le cluster.

Pour éviter cela, incluez rds:ModifyDBInstance, rds:ModifyDBCluster dans le bloc action de la politique. Sachez que cela empêche l'utilisateur d'appliquer d'autres modifications aux clusters existant(e)s n'ayant pas l'intégration de Secrets Manager activée.

Pour plus d'informations sur l'utilisation de clés de condition dans les politiques IAM, consultez Clés de conditions de politique pour Aurora et Exemples de politiques : Utilisation des clés de condition.

Gestion du mot de passe d'utilisateur principal pour un cluster de bases de données avec Secrets Manager

Vous pouvez configurer la gestion Aurora du mot de passe d'utilisateur principal dans Secrets Manager lorsque vous effectuez les actions suivantes :

Vous pouvez utiliser la console RDS AWS CLI, ou l'API RDS pour effectuer ces actions.

Suivez les instructions pour créer ou modifier un cluster de bases de données à l'aide de la console RDS :

Lorsque vous utilisez la console RDS pour effectuer l'une de ces opérations, vous pouvez spécifier que le mot de passe d'utilisateur principal est géré par Aurora dans Secrets Manager. Pour ce faire, lorsque vous créez ou restaurez un cluster de bases de données, sélectionnez Manage master credentials in AWS Secrets Manager (Gérer les informations d'identification principales dans ) dans Credential settings (Paramètres des informations d'identification). Lorsque vous modifiez un cluster de bases de données, sélectionnez Manage master credentials in AWS Secrets Manager (Gérer les informations d'identification principales dans ) dans Settings (Paramètres).

L'image suivante est un exemple du paramètre Manage master credentials in AWS Secrets Manager (Gérer les informations d'identification principales dans ) lors de la création ou de la restauration d'un cluster de bases de données.

Gérez les informations d'identification principales dans AWS Secrets Manager

Lorsque vous sélectionnez cette option, Aurora génère le mot de passe d'utilisateur principal et le gère tout au long de son cycle de vie dans Secrets Manager.

Gérer les informations d'identification principales dans les options AWS Secrets Manager sélectionnées

Vous pouvez choisir de chiffrer le secret à l'aide d'une clé KMS fournie par Secrets Manager ou d'une clé gérée par le client que vous créez. Quand Aurora gère les informations d'identification de base de données pour un cluster de bases de données, vous ne pouvez pas modifier la clé KMS utilisée pour chiffrer le secret.

Vous pouvez choisir d'autres paramètres en fonction de vos besoins.

Pour plus d'informations sur les paramètres disponibles quand vous créez un cluster de bases de données, consultez Paramètres pour les clusters de base de données Aurora. Pour plus d'informations sur les paramètres disponibles quand vous modifiez un cluster de bases de données, consultez Paramètres pour Amazon Aurora.

Pour spécifier qu'Aurora doit gérer le mot de passe d'utilisateur principal dans Secrets Manager, spécifiez l'option --manage-master-user-password dans l'une des commandes suivantes :

Lorsque vous spécifiez l'option --manage-master-user-password dans ces commandes, Aurora génère le mot de passe d'utilisateur principal et le gère tout au long de son cycle de vie dans Secrets Manager.

Pour chiffrer le secret, vous pouvez spécifier une clé gérée par le client ou utiliser la clé KMS par défaut, fournie par Secrets Manager. Utilisez l'option --master-user-secret-kms-key-id pour spécifier une clé gérée par le client. L'identifiant de clé AWS KMS est l'ARN de la clé, l'ID de clé, l'alias ARN ou le nom d'alias de la clé KMS. Pour utiliser une clé KMS dans une autre Compte AWS, spécifiez l'ARN de la clé ou l'alias ARN. Quand Aurora gère les informations d'identification de base de données pour un cluster de bases de données, vous ne pouvez pas modifier la clé KMS utilisée pour chiffrer le secret.

Vous pouvez choisir d'autres paramètres en fonction de vos besoins.

Pour plus d'informations sur les paramètres disponibles quand vous créez un cluster de bases de données, consultez Paramètres pour les clusters de base de données Aurora. Pour plus d'informations sur les paramètres disponibles quand vous modifiez un cluster de bases de données, consultez Paramètres pour Amazon Aurora.

Cet exemple crée un cluster de bases de données et spécifie qu'Aurora doit gérer le mot de passe dans Secrets Manager. Ce secret est chiffré à l'aide de la clé KMS fournie par Secrets Manager.

Dans Linux, macOS, ou Unix:

aws rds create-db-cluster \ --db-cluster-identifier sample-cluster \ --engine aurora-mysql \ --engine-version 8.0 \ --master-username admin \ --manage-master-user-password

Dans Windows:

aws rds create-db-cluster ^ --db-cluster-identifier sample-cluster ^ --engine aurora-mysql ^ --engine-version 8.0 ^ --master-username admin ^ --manage-master-user-password

Pour spécifier que Aurora doit gérer le mot de passe d'utilisateur principal dans Secrets Manager, affectez au paramètre ManageMasterUserPassword la valeur true dans l'une des opérations suivantes :

Lorsque vous affectez au paramètre ManageMasterUserPassword la valeur true dans l'une de ces opérations, Aurora génère le mot de passe d'utilisateur principal et le gère tout au long de son cycle de vie dans Secrets Manager.

Pour chiffrer le secret, vous pouvez spécifier une clé gérée par le client ou utiliser la clé KMS par défaut, fournie par Secrets Manager. Utilisez le paramètre MasterUserSecretKmsKeyId pour spécifier une clé gérée par le client. L'identifiant de clé AWS KMS est l'ARN de la clé, l'ID de clé, l'alias ARN ou le nom d'alias de la clé KMS. Pour utiliser une clé KMS dans un autre Compte AWS, spécifiez l'ARN de la clé ou l'ARN de l'alias. Quand Aurora gère les informations d'identification de base de données pour un cluster de bases de données, vous ne pouvez pas modifier la clé KMS utilisée pour chiffrer le secret.

Rotation du secret de mot de passe d'utilisateur principal pour un cluster de bases de données

Quand Aurora effectue la rotation d'un secret de mot de passe d'utilisateur principal, Secrets Manager génère une nouvelle version de secret pour le secret existant. La nouvelle version du secret contient le nouveau mot de passe d'utilisateur principal. Aurora modifie le mot de passe d'utilisateur principal du cluster de bases de données pour qu'il corresponde au mot de passe de la nouvelle version de secret.

Vous pouvez effectuer immédiatement la rotation d'un secret au lieu d'attendre une rotation planifiée. Pour effectuer la rotation d'un secret de mot de passe d'utilisateur principal dans Secrets Manager, modifiez le cluster de bases de données . Pour obtenir des informations sur la modification d'un cluster de bases de données, consultez Modification d'un cluster de bases de données Amazon Aurora.

Vous pouvez modifier immédiatement le secret d'un mot de passe utilisateur principal à l'aide de la console RDS, de l' AWS CLI API RDS ou de l'API RDS. Le nouveau mot de passe comporte toujours 28 caractères, dont au moins une majuscule et une minuscule, un chiffre et un signe de ponctuation.

Pour effectuer la rotation d'un secret de mot de passe d'utilisateur principal à l'aide de la console RDS, modifiez le cluster de bases de données et sélectionnez Rotate secret immediately (Effectuer immédiatement une rotation du secret) dans Settings (Paramètres).

Effectuer immédiatement une rotation du secret de mot de passe d'utilisateur principal

Suivez les instructions pour modifier un cluster de bases de données avec la console RDS dans Modification du cluster de bases de données à partir de la console, de l'CLI (CLI) et de l'API. Vous devez choisir Apply immediately (Appliquer immédiatement) sur la page de confirmation.

Pour faire pivoter le secret du mot de passe d'un utilisateur principal à l'aide de AWS CLI, utilisez la modify-db-clustercommande et spécifiez l'--rotate-master-user-passwordoption. Vous devez spécifier l'option --apply-immediately lorsque vous effectuez la rotation du mot de passe principal.

Cet exemple effectue la rotation d'un secret de mot de passe d'utilisateur principal.

Dans Linux, macOS, ou Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --rotate-master-user-password \ --apply-immediately

Dans Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --rotate-master-user-password ^ --apply-immediately

Vous pouvez faire pivoter le secret du mot de passe d'un utilisateur principal à l'aide de DBCluster l'opération Modifier et en définissant le RotateMasterUserPassword paramètre surtrue. Vous devez affecter au paramètre ApplyImmediately la valeur true lorsque vous effectuez la rotation du mot de passe principal.

Affichage des détails concernant un secret pour un cluster de bases de données

Vous pouvez récupérer vos secrets à l'aide de la console (https://console.aws.amazon.com/secretsmanager/) ou de la commande AWS CLI (get-secret-valueSecrets Manager).

Vous pouvez trouver le Amazon Resource Name (ARN) d'un secret géré par Aurora dans Secrets Manager avec la console RDS AWS CLI, ou l'API RDS.

Pour afficher les détails d'un secret géré par Aurora dans Secrets Manager
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/l'adresse.

  2. Dans le panneau de navigation, choisissez Databases (Bases de données).

  3. Choisissez le nom du cluster de bases de données pour afficher ses détails.

  4. Cliquez sur l’onglet Configuration.

    Dans Master Credentials ARN (ARN des informations d'identification principales), vous pouvez consulter l'ARN du secret.

    Affichage des détails d'un secret géré par Aurora dans Secrets Manager

    Vous pouvez suivre le lien Manage in Secrets Manager (Gérer dans Secrets Manager) pour consulter et gérer le secret dans la console Secrets Manager.

Vous pouvez utiliser la AWS CLI describe-db-clusterscommande RDS pour trouver les informations suivantes sur un secret géré par dans Secrets Manager :

  • SecretArn : l'ARN du secret

  • SecretStatus : le statut du secret

    Les valeurs de statut possibles incluent les suivantes :

    • creating : le secret est en cours de création.

    • active : le secret est disponible pour une utilisation et une rotation normales.

    • rotating : la rotation du secret est en cours.

    • impaired : le secret peut être utilisé pour accéder aux informations d'identification de base de données, mais il est impossible d'effectuer sa rotation. Un secret peut avoir ce statut si, par exemple, les autorisations sont modifiées de telle sorte que RDS ne puisse plus accéder au secret ou à la clé KMS associée à ce secret.

      Lorsqu'un secret possède ce statut, vous pouvez corriger la condition à l'origine de ce statut. Si vous corrigez la condition à l'origine du statut, celui-ci reste impaired jusqu'à la rotation suivante. Vous pouvez également modifier le cluster de bases de données pour désactiver la gestion automatique des informations d'identification de base de données, puis modifier à nouveau le cluster de bases de données pour activer la gestion automatique des informations d'identification de base de données. Pour modifier le cluster de base de données, utilisez l'--manage-master-user-passwordoption de la modify-db-clustercommande.

  • KmsKeyId : l'ARN de la clé KMS utilisée pour chiffrer le secret

Spécifiez l'option --db-cluster-identifier permettant d'afficher la sortie pour un cluster de bases de données spécifique. Cet exemple montre la sortie d'un secret utilisé par un cluster de bases de données.

aws rds describe-db-clusters --db-cluster-identifier mydbcluster

L'exemple suivant montre la sortie pour un secret :

"MasterUserSecret": { "SecretArn": "arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx", "SecretStatus": "active", "KmsKeyId": "arn:aws:kms:eu-west-1:123456789012:key/0987dcba-09fe-87dc-65ba-ab0987654321" }

Lorsque vous disposez de l'ARN secret, vous pouvez consulter les détails du secret à l'aide de la commande get-secret-valueSecrets Manager CLI.

Cet exemple montre les détails du secret dans l'exemple de sortie précédent.

Dans Linux, macOS, ou Unix:

aws secretsmanager get-secret-value \ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

Dans Windows:

aws secretsmanager get-secret-value ^ --secret-id 'arn:aws:secretsmanager:eu-west-1:123456789012:secret:rds!cluster-033d7456-2c96-450d-9d48-f5de3025e51c-xmJRDx'

Vous pouvez consulter l'ARN, le statut et la clé KMS d'un secret géré par Aurora dans Secrets Manager à l'aide de l'opération Describe DBClusters RDS et en définissant le DBClusterIdentifier paramètre sur un identifiant de cluster de base de données. Les détails sur le secret sont inclus dans la sortie.

Lorsque vous disposez de l'ARN secret, vous pouvez consulter les détails du secret à l'aide de l'opération GetSecretValueSecrets Manager.