Passer au contenu

Pourquoi le message d'erreur « Accès refusé » s'affiche-t-il lorsque j'utilise l'authentification IAM pour essayer de me connecter à Amazon RDS for MySQL ?

Lecture de 4 minute(s)
0

Je souhaite utiliser l’authentification de Gestion des identités et des accès AWS (AWS IAM) pour me connecter à mon instance Amazon Relational Database Service (Amazon RDS) for MySQL. Cependant, je reçois un message d'erreur « Accès refusé ».

Brève description

Des messages d'erreur peuvent apparaître en cas d'autorisations de rôle IAM insuffisantes, de désactivation de l'authentification IAM, de configurations incorrectes de l'utilisateur de la base de données ou d'erreur dans la chaîne de connexion. Vous pouvez recevoir un message d’erreur similaire au message suivant :

« ERROR 1045 (28000): Access denied for user 'root'@'10.0.4.253' (using password: YES) »

Utilisez le dossier d’exploitation AWSSupport-TroubleshootRDSIAMAuthentication pour vérifier automatiquement la configuration requise pour l'authentification IAM avec une instance Amazon RDS, puis utilisez les résolutions pour résoudre cette erreur.

Résolution

Autorisations de rôle IAM insuffisantes

Pour vous connecter à votre instance Amazon RDS for MySQL à l'aide de l'authentification de base de données IAM, vous devez avoir accès à l'action rds-db:connect. Pour en savoir plus, consultez la section Création et utilisation d'une stratégie IAM pour l'accès à la base de données IAM.

Si vous utilisez des politiques de contrôle des services (SCP), assurez-vous que votre politique autorise les connexions à l'instance de base de données. Pour plus d'informations, consultez la section Création de politiques d'organisation avec AWS Organizations.

Activer l'authentification IAM

Par défaut, l'authentification IAM est désactivée pour les instances de base de données. Pour activer l'authentification IAM, procédez comme suit :

  1. Ouvrez la console Amazon RDS.
  2. Sélectionnez l’instance.
  3. Sélectionnez Modifier.
  4. Dans Authentification de base de données, choisissez Mot de passe.
  5. Sélectionner l’authentification de base de données IAM
  6. Pour mettre à jour vos paramètres de configuration, sélectionnez Continuer.
  7. Pour modifier l'instance, sélectionnez Appliquer.

Remarque : Si vous choisissez Appliquer immédiatement lors de la mise à jour des paramètres de configuration de votre cluster, toutes les modifications en attente sont appliquées immédiatement plutôt que dans une fenêtre de maintenance. Cette action peut provoquer une interruption prolongée de votre instance Amazon RDS for MySQL. Pour plus d'informations, consultez la section Paramètre des modifications de planification.

Utilisateur de base de données incorrectement configuré

Le plug-in AWSAuthenticationPlugin gère l'authentification IAM pour votre instance Amazon RDS for MySQL. Pour vérifier que ce plug-in se connecte à votre rôle IAM, exécutez la commande suivante :

select user,plugin,host from mysql.user where user like '%db-user-name%';

Remarque : Remplacez db-user-name par le nom d'utilisateur de votre base de données.

Exemple de sortie :

+------+-------------------------+------+|
user | plugin | host |
+------+-------------------------+------+
| root | AWSAuthenticationPlugin | % |
+------+-------------------------+------+
1 row in set (0.00 sec)

Si le rôle IAM utilise un hôte spécifique, vous devez utiliser ce nom d'hôte. Assurez-vous également que vous disposez d’autorisations pour accéder à la base de données spécifiée.

Pour afficher les autorisations accordées à un utilisateur, utilisez la commande suivante :

show grants for user;

Remarque : Remplacez user par le nom d'utilisateur.

Pour accorder des privilèges à un autre utilisateur, utilisez la commande suivante :

grant select on mydb.mytable to user;

Remarque : Remplacez mydb par le nom de votre instance de base de données, mytable par le nom de votre table et user par votre nom d'utilisateur.

Pour en savoir plus, reportez-vous à la page Instruction GRANT sur le site Web de MySQL.

Chaîne de connexion incorrecte

Pour vous connecter à la base de données Amazon RDS for MySQL, utilisez l'option --enable-cleartext-plugin dans votre chaîne de connexion. La syntaxe --enable-cleartext-plugin sert de jeton d'authentification, et vous devez l'utiliser pour la connexion à la base de données et lorsque vous configurez l'utilisateur de la base de données.

Exemple de chaîne de connexion :

$ mysql -h <endpoint> -P 3306 --enable-cleartext-plugin --user=RDSConnect --password=$

Informations connexes

Comment puis-je autoriser les utilisateurs à s’authentifier auprès d’une instance de base de données Amazon RDS for MySQL avec leurs informations d’identification IAM ?

Authentification de base de données IAM