Comment puis-je utiliser le plugin validate_password pour améliorer la sécurité de mon instance de base de données Amazon RDS pour MySQL ?

Lecture de 5 minute(s)
0

J'ai une instance Amazon Relational Database Service (Amazon RDS) qui exécute MySQL. Je souhaite utiliser le plugin validate_password pour tester mes mots de passe et améliorer la sécurité de mon instance de base de données.

Brève description

MySQL fournit un plugin validate_password que vous pouvez utiliser pour améliorer la sécurité d'une instance de base de données RDS pour MySQL. Le plugin utilise les paramètres du groupe de paramètres de base de données de votre instance de base de données afin d'appliquer les politiques de mot de passe. Le plugin est pris en charge pour les instances de base de données qui exécutent les versions 5.7 et 8.0 de MySQL.

Remarque : Le plugin validate_password est un plugin et ne fait pas partie de la configuration MySQL par défaut. Lorsqu'Amazon RDS crée une instance de base de données MySQL, le plugin n'est pas installé par défaut.

Résolution

Activez le plugin validate_password pour l'instance de base de données RDS pour MySQL

Utilisez l'utilisateur principal pour vous connecter à l'instance de base de données RDS pour MySQL et exécutez la commande suivante :

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

Cela installe le plugin validate_password, puis exécute le plugin avec les valeurs de paramètres par défaut.

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

Exécutez la requête suivante sur votre instance de base de données pour vérifier l'état du plugin 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 pour le plugin validate_password

Exécutez la requête suivante pour vérifier les valeurs des paramètres par défaut du plugin :

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

Voici la description de chaque paramètre :

validate_password_check_user_name

  • Valeur - OFF
  • Description - vide

validate_password_dictionary_file

  • Valeur - vide
  • Description - vide

validate_password_length

  • Valeur - 8
  • Description - Longueur minimale du mot de passe

validate_password_mixed_case_count

  • Valeur - 1
  • Description - Exiger que les mots de passe comportent des majuscules et des minuscules

validate_password_number_count

  • Valeur - 1
  • Description - Exiger que les mots de passe comportent au moins un chiffre

validate_password_policy

  • Valeur - MOYENNE
  • Description - L'étiquette du groupe de paramètres

validate_password_special_char_count

  • Valeur - 1
  • Description - Exiger que les mots de passe comportent au moins un caractère spécial

Configurez ces paramètres dans le groupe de paramètres de base de données personnalisé que votre instance de base de données utilise, à l'exception de validate_password_dictionary_file et validate_password_check_user_name. Si votre instance de base de données utilise le groupe de paramètres par défaut, créez un nouveau groupe de paramètres, puis attachez-le à l'instance de base de données. Cela est dû au fait que vous ne pouvez pas modifier les paramètres d'un groupe de paramètres par défaut. Pour plus d'informations, consultez la section Utilisation de groupes de paramètres.

Remarque : Amazon RDS ne valide pas les mots de passe. Si vous utilisez l'une des méthodes suivantes pour définir un mot de passe utilisateur, la modification aboutit quelles que soient vos politiques de mot de passe :

  • La console de gestion AWS
  • La commande modify-db-instance de l'interface de la ligne de commande AWS (AWS CLI)
  • L'opération ModifyDBInstance de l'API Amazon RDS

Réinitialisez les mots de passe existants et créez un mot de passe conforme aux politiques

Après avoir installé et activé le plugin password_validate, réinitialisez vos mots de passe existants afin de respecter vos nouvelles politiques de validation.

1.    Testez le plugin password_validate installé sur votre instance de base de données. Utilisez les paramètres du plugin par défaut répertoriés précédemment 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

Étant donné que validate_password_policy est défini sur ** MEDIUM**, le mot de passe doit répondre aux critères décrits dans la documentation MySQL validate_password_policy. Dans l'exemple précédent, la commande CREATE USER échoue car elle ne respecte pas la politique de mot de passe. Vous recevez un message d'erreur similaire au suivant :

« Votre mot de passe ne répond pas aux exigences de la politique actuelle.»

2.    Exécutez la commande suivante pour créer un utilisateur avec un mot de passe conforme à la politique de mot de passe :

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

3.    Pour vérifier que vous avez bien créé l'utilisateur, exécutez la commande suivante :

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

4.    Pour modifier le mot de passe de l'utilisateur existant, exécutez la commande suivante. Utilisez un mot de passe conforme à la politique, comme indiqué dans l'exemple suivant :

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 d'un utilisateur existant, consultez Comment réinitialiser le mot de passe root (sur le site Web de MySQL).

Désactivez le plugin validate_password pour l'instance de base de données RDS MySQL

MySQL [(none)]> UNINSTALL PLUGIN validate_password;

Informations connexes

Utilisation du plugin de validation de mot de passe pour RDS pour MySQL

Le plugin de validation de mot de passe dans la documentation MySQL

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an