Comment améliorer la sécurité de mon instance de base de données Amazon RDS MySQL à l'aide du plug-in validate_password ?

Dernière mise à jour : 19/10/2020

J'ai une instance de base de données Amazon Relational Database Service (Amazon RDS) exécutant MySQL. Je souhaite tester mes mots de passe et améliorer la sécurité de mon instance de base de données à l'aide du plug-in validate_password. Comment dois-je procéder ?

Brève description

MySQL fournit un plug-in validate_password que vous pouvez utiliser pour améliorer la sécurité d'une instance de base de données RDS MySQL. Le plug-in applique les stratégies de mot de passe en utilisant les paramètres du groupe de paramètres de base de données pour votre instance de base de données. Le plug-in est pris en charge pour les instances de base de données exécutant MySQL versions 5.6, 5.7 et 8.0.

Remarque : le plug-in validate_password ne fait pas partie de la configuration MySQL par défaut. Au lieu de cela, il existe en tant que plug-in distinct. Lorsqu'Amazon RDS crée une instance de base de données MySQL, le plug-in n'est pas installé par défaut.

Résolution

Activez le plug-in validate_password pour l'instance de base de données MySQL RDS

Connectez-vous à l'instance de base de données RDS MySQL à l'aide de l'utilisateur maître et exécutez la commande suivante :

MySQL [(none)]> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Cela installe le plug-in validate_password. Il exécute ensuite le plugin avec les valeurs de paramètres par défaut.

Vérifiez que le plug-in validate_password est installé et actif sur l'instance de base de données RDS MySQL

Exécutez la requête suivante sur votre instance de base de données pour vérifier l'état du plug-in validate_password :

MySQL [(none)]> SELECT plugin_name, plugin_status, 
plugin_type, plugin_library FROM information_schema.plugins WHERE 
plugin_name='validate_password';

    +-------------------+---------------+-------------------+----------------------+
    | plugin_name       | plugin_status | plugin_type       | plugin_library       |
    +-------------------+---------------+-------------------+----------------------+
    | validate_password | ACTIVE        | VALIDATE PASSWORD | validate_password.so |
    +-------------------+---------------+-------------------+----------------------+

Vérifiez les valeurs par défaut du plug-in validate_password

Vérifiez les valeurs des paramètres par défaut pour le plug-in en exécutant la requête suivante :

MySQL [(none)]> SHOW GLOBAL VARIABLES LIKE 'validate_password%';

Vous trouverez ci-dessous les descriptions de chaque paramètre :

Nom Valeur Description
validate_password_check_user_name OFF
validate_password_dictionary_file
validate_password_length 8 Longueur minimale du mot de passe
validate_password_mixed_case_count 1 Exiger que les mots de passe soient en majuscules et en minuscules
validate_password_number_count 1 Les mots de passe doivent obligatoirement comporter au moins un numéro
validate_password_policy MEDIUM Étiquette du groupe de paramètres
validate_password_special_char_count 1 Les mots de passe doivent obligatoirement avoir au moins un caractère spécial

Vous pouvez configurer ces paramètres dans le groupe de paramètres de base de données personnalisés utilisé par votre instance de base de données, à l'exception de validate_password_dictionary_file et validate_password_check_user_name.

Remarque : si votre instance de base de données utilise le groupe de paramètres par défaut, vous devez créer un nouveau groupe de paramètres, puis l'attacher à l'instance de base de données. Cela est nécessaire car vous ne pouvez pas modifier les paramètres d'un groupe de paramètres par défaut. Pour en savoir plus, consultez Utilisation des groupes de paramètres de base de données.

Remarque : Amazon RDS ne valide pas les mots de passe. Si vous définissez un mot de passe utilisateur avec AWS Management Console, la commande modify-db-instance de l'interface de ligne de commande AWS (AWS CLI) ou l'opération d'API RDS ModifyDBInstance, la modification peut réussir même si le nouveau mot de passe ne satisfait pas votre mot de passe Stratégies.

Réinitialisez les mots de passe existants et créez un mot de passe conforme à la stratégie

Après avoir installé et activé le plug-in password_validate, réinitialisez vos mots de passe existants pour vous conformer à vos nouvelles politiques de validation.

Tout d'abord, testez le plug-in password_validate installé sur votre instance de base de données. Vous pouvez le faire en utilisant les paramètres de plug-in par défaut répertoriés ci-dessus pour créer un nouvel utilisateur de base de données :

MySQL [(none)]> CREATE USER 'USER123'@'%' identified by 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Comme validate_password_policy est défini sur MEDIUM, assurez-vous que le mot de passe satisfait aux critères décrits dans la documentation MySQL validate_password_policy documentation. Étant donné que la commande CREATE USER ci-dessus ne respecte pas la stratégie de mot de passe, elle a échoué avec l'erreur « Votre mot de passe ne répond pas aux exigences de la stratégie actuelle ».

Créez un utilisateur avec un mot de passe qui respecte la stratégie de mot de passe en exécutant la commande suivante :

MySQL [(none)]> CREATE USER 'USER123'@'%' identified by 'Password@57';
Query OK, 0 rows affected (0.01 sec)

Exécutez la commande suivante pour vérifier que vous avez créé l'utilisateur avec succès :

MySQL [(none)]> SELECT user, host FROM mysql.user WHERE ( user='USER123' AND host='%' );
+-------------------+------+
| user              | host |
+-------------------+------+
| validate_password | %    |
+-------------------+------+
1 row in set (0.00 sec)

Pour modifier le mot de passe de l'utilisateur existant, exécutez la commande suivante avec un mot de passe conforme à la stratégie, comme indiqué ci-dessous :

5.6:
mysql> SET PASSWORD FOR 'USER123'@'%' = PASSWORD('Password@2020');
Query OK, 0 rows affected (0.01 sec)

5.7 and 8.0:
mysql> alter user 'USER123'@'%' identified by 'Password@2020';
Query OK, 0 rows affected (0.01 sec)

Pour en savoir plus sur la réinitialisation des mots de passe pour un utilisateur existant, consultez Comment réinitialiser le mot de passe root dans la documentation MySQL.

Désactiver le plug-in validate_password pour l'instance de base de données RDS MySQL

Pour désactiver le plug-in validate_password de votre instance de base de données, exécutez la commande suivante à l'aide de l'utilisateur principal :

MySQL [(none)]> UNINSTALL PLUGIN validate_password;

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?