Le plugin validate_password pour RDS for MySQL vous permet d'appliquer des règles de complexité personnalisées aux mots de passe des comptes de base de données, notamment la longueur minimale, la composition des caractères et l'interdiction d'utiliser le nom d'utilisateur comme mot de passe.
Cette fonctionnalité est gratuite.
Fonctionnement
La validation des mots de passe dans RDS for MySQL s'effectue à deux niveaux indépendants :
Niveau de la plateforme RDS — Applique une règle de base fixe chaque fois que vous créez ou réinitialisez un mot de passe via la console RDS ou l'API. Cette règle ne peut pas être désactivée ni remplacée par les paramètres du plugin.
Niveau du plugin — Le plugin
validate_passwordapplique vos règles personnalisées. Ces règles s'appliquent au niveau MySQL et sont distinctes de la règle de base de la plateforme.
Comprendre ce modèle à deux niveaux vous aide à anticiper les règles applicables et à résoudre les problèmes de rejet.
Versions prises en charge
MySQL 5.7
MySQL 8.0
Étape 1 : Installer le plugin validate_password
Connectez-vous à l'instance RDS for MySQL à l'aide d'un compte privilégié.
-
Exécutez la commande suivante pour installer le plugin.
INSTALL PLUGIN validate_password SONAME 'validate_password.so'; -
Vérifiez l'installation.
SHOW GLOBAL VARIABLES LIKE 'validate_password%';Si le plugin est correctement installé, la sortie liste les variables
validate_password.
-
Pour les instances disposant d'une architecture primaire/secondaire (édition Haute disponibilité ou édition Cluster), installez également le plugin sur le nœud secondaire. Le plugin n'est pas synchronisé automatiquement. Pour l'installer sur le nœud secondaire, effectuez un basculement manuel primaire/secondaire afin de basculer vers le nœud secondaire, puis répétez les étapes 1 à 3. Si vous ignorez cette étape, la stratégie de mot de passe devient invalide après un basculement.
RemarqueUne fois le plugin installé sur les deux nœuds, les paramètres de stratégie de mot de passe configurés dans la console RDS sont automatiquement synchronisés avec le nœud secondaire ; aucune configuration supplémentaire n'est nécessaire.
Étape 2 : Configurer les paramètres de la stratégie de mot de passe
Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où se trouve votre instance. Cliquez sur l'ID de l'instance.
Dans le volet de navigation de gauche, cliquez sur Parameters.
Recherchez et modifiez les paramètres
loose_validate_password. Pour obtenir des instructions, consultez la rubrique Définir les paramètres de l'instance.
Le plugin doit être installé avant de modifier ces paramètres. Les modifications n'ont aucun effet si le plugin n'est pas installé. Pour la référence complète des paramètres, consultez la documentation officielle MySQL.
Le tableau suivant décrit les paramètres configurables.
| Paramètre | Versions prises en charge | Description | Exemple |
|---|---|---|---|
loose_validate_password_check_user_name |
5.7 | Contrôle si le mot de passe peut correspondre au nom d'utilisateur. ON (par défaut) : autorisé. OFF : non autorisé. | Définissez sur OFF pour interdire les mots de passe identiques au nom d'utilisateur. |
loose_validate_password_policy |
8.0, 5.7 | Niveau de vérification de la robustesse. 0 : vérifie uniquement la longueur. 1 (par défaut) : vérifie la longueur, les chiffres, les lettres majuscules et minuscules, ainsi que les caractères spéciaux. 2 : identique au niveau 1 (le fichier de dictionnaire n'est pas pris en charge). | Définissez sur 1 pour une application standard. |
loose_validate_password_length |
8.0, 5.7 | Longueur minimale du mot de passe. MySQL 5.7 : 0–256, par défaut 8. MySQL 8.0 : 1–12, par défaut 8. | Définissez sur 10 pour exiger au moins 10 caractères. |
loose_validate_password_number_count |
5.7 | Nombre minimal de chiffres. Plage : 0–256, par défaut 1. | Définissez sur 2 pour exiger au moins 2 chiffres. |
loose_validate_password_mixed_case_count |
5.7 | Nombre minimal de lettres majuscules et minuscules dans le mot de passe. Plage : 0–256, par défaut 1. | Définissez sur 2 pour exiger au moins une lettre majuscule et une lettre minuscule (soit un total de 2 lettres de casse mixte). |
loose_validate_password_special_char_count |
5.7 | Nombre minimal de caractères spéciaux. Plage : 0–256, par défaut 1. | Définissez sur 1 pour exiger au moins 1 caractère spécial. |
Formule de calcul de la longueur du paramètre
La valeur loose_validate_password_length doit satisfaire la condition suivante :
length >= number_count + (2 × mixed_case_count) + special_char_count
Si la valeur définie ne respecte pas cette exigence, RDS ajuste automatiquement length pour qu'elle corresponde au résultat de la formule.
Exemple : Si number_count = 2, mixed_case_count = 2 et special_char_count = 1, la length minimale valide est 2 + (2 × 2) + 1 = 7.
Contraintes
Règles de base de la plateforme RDS
Quels que soient les paramètres du plugin, tous les mots de passe créés ou réinitialisés via la console RDS ou les opérations d'API CreateAccount / ResetAccountPassword doivent respecter les exigences suivantes :
Longueur comprise entre 8 et 32 caractères
Au moins trois des types de caractères suivants : lettres majuscules, lettres minuscules, chiffres et caractères spéciaux (
!@#$%^&*()_+-=)
Ces règles s'appliquent même si vous configurez le plugin pour autoriser des mots de passe plus courts ou plus simples.
Définition de mots de passe de moins de 8 caractères (non recommandé)
L'ajustement des paramètres du plugin seul ne permet pas de contourner le minimum de 8 caractères imposé par la plateforme RDS. Même si loose_validate_password_length est défini sur 5, la console et l'API exigent toujours au moins 8 caractères.
Pour définir un mot de passe de moins de 8 caractères, utilisez la commande SQL SET PASSWORD afin de contourner directement la vérification de la plateforme. Utilisez cette méthode uniquement dans des environnements de test. Ne l'utilisez pas en production.
Étapes suivantes
Créez ou réinitialisez les mots de passe des comptes via la console : Créer un compte ou Réinitialiser le mot de passe d'un compte
Gérez les autorisations des comptes : Modifier les autorisations d'un compte, Autoriser l'accès d'un compte depuis des adresses IP spécifiques et Autoriser l'accès d'un compte à des tables, vues ou champs spécifiques