Comment résoudre les problèmes d'authentification Windows pour RDS for SQL Server avec AWS Managed Microsoft AD ?

Dernière mise à jour : 14/10/2022

AWS Directory Service pour Microsoft Active Directory est configuré sur mon compte AWS. Lors de la création d'une instance de base de données Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server, je rencontre l'un des problèmes suivants :

  • Le répertoire Active Directory n'est pas disponible.
  • Je reçois une erreur indiquant « Failed to join a host to a domain » (Impossible de joindre un hôte à un domaine) ou le statut du répertoire Active Directory sur la console RDS affiche « Failed » (Échec).
  • Je ne parviens pas à me connecter à l'instance de base de données à l'aide de l'authentification Windows.

Comment résoudre ces problèmes avec AWS Managed Microsoft AD ?

Brève description

L'authentification Windows pour les instances de base de données RDS for SQL Server est prise en charge par plusieurs comptes AWS et Amazon Virtual Private Cloud (Amazon VPC). Un seul AWS Managed Microsoft AD peut être partagé entre plusieurs comptes AWS et VPC pour gérer facilement les charges de travail des bases de données prenant en charge les répertoires. Toutefois, cela est uniquement possible si les instances de base de données RDS for SQL Server se trouvent dans la même région AWS qu'AWS Managed Microsoft AD.

Solution

Remarque : si vous recevez des erreurs lors de l'exécution des commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Le répertoire Active Directory n'est pas répertorié ou n'est pas disponible lors de la création d'une instance de base de données.

Important : le type de domaine géré doit être AWS Managed Active Directory pour le répertoire Active Directory, et doit être répertorié dans la console Amazon RDS.

Si AWS Managed Microsoft AD se trouve dans une autre région que l'instance, le répertoire n'est pas répertorié lorsque vous créez ou modifiez une instance de base de données. Afin de résoudre ce problème, assurez-vous que l'instance de base de données se trouve dans la même région AWS que votre Directory Service.

Vérifiez que l'instance de base de données RDS et le Directory Service se trouvent dans la même région :

1.    Ouvrez la console Amazon RDS, puis choisissez Databases (Bases de données) dans le panneau de navigation.

2.    Choisissez l'instance de base de données que vous voulez connecter au répertoire.

3.    Dans la section Summary (Résumé), consultez la région associée à votre instance de base de données.

4.    Vérifiez que Directory Service se trouve dans la même région AWS que l'instance de base de données, en accédant à la console AWS Directory Service.

Si votre AWS Managed Microsoft AD se trouve dans un compte AWS différent de celui de l'instance de base de données, partagez l'AD avec le compte AWS. Vous pouvez ensuite répertorier le Directory Service lors de la création ou de la modification de l'instance de base de données.

1.    Commencez à partager le répertoire avec le compte AWS dans lequel l'instance de base de données sera créée. Suivez les étapes décrites dans Sharing your AWS Managed Microsoft AD directory for seamless EC2 domain-join (Partage de votre répertoire AWS Managed Microsoft AD pour la bonne exécution de la commande domain-join EC2) du Guide d'administration AWS Directory Service.

2.    Connectez-vous à la console AWS Directory Service à l'aide du compte de l'instance de base de données. Vérifiez que le domaine présente le statut SHARED (PARTAGÉ) avant de continuer.

3.    Connectez-vous à la console AWS Directory Service à l'aide du compte de l'instance de base de données, et non de la valeur de l'ID du répertoire Active Directory. Utilisez l'ID de ce répertoire afin de joindre l'instance de base de données au domaine.

Erreur reçue lors de la jonction d'une instance de base de données à un domaine ou lorsque le statut du répertoire Active Directory sur la console RDS affiche « Failed » (Échec)

Lorsque vous joignez une instance de base de données à un domaine, le message d'erreur suivant peut s'afficher, ou le statut du répertoire peut apparaître comme Failed (Échec) :

« Failed to join a host to a domain. Domain membership status for instance XXXXXXX has been set to Failed. » (Échec de la jonction d'un hôte à un domaine. Le statut d'appartenance de l'instance XXXXXXX à un domaine a été défini sur Échec.)

1.    Vérifiez que le groupe de sécurité de l'instance RDS for SQL Server est configuré pour autoriser le trafic sortant correct.

  • Port 53 TCP et UDP
  • Port 88 TCP et UDP
  • Port 135 TCP et UDP
  • Port 389 TCP et UDP
  • Port 445 TCP et UDP

2.    Vérifiez que le groupe de sécurité d'AWS Managed Microsoft AD est configuré pour autoriser le trafic entrant correct. Un groupe de sécurité est créé lorsque vous créez un AWS Managed Microsoft AD. Pour obtenir la liste des règles entrantes et sortantes ajoutées à ce groupe de sécurité, consultez What gets created (Ce qui est créé) dans le Guide d'administration d'AWS Directory Service.

3.    Il se peut que votre instance de base de données et AWS Managed Microsoft AD se trouvent dans des VPC différents ou dans des comptes différents. Si tel est le cas, assurez-vous qu'il existe un acheminement correct pour que l'instance de base de données atteigne l'AD. De même, assurez-vous qu'il existe un acheminement correct de l'AD pour atteindre l'instance de base de données. Pour plus d'informations, consultez RDS Support for cross-account and cross-VPC domain joins (vidéo).

Après avoir identifié et traité les causes potentielles de l'échec de la jointure du domaine, procédez comme suit pour annuler la jointure et joindre le domaine à l'instance de base de données :

1.    Ouvrez la console Amazon RDS, puis choisissez Databases (Bases de données) dans le panneau de navigation.

2.    Sélectionnez l'instance de base de données dont la jonction au domaine échoue, puis choisissez Modify (Modifier).

3.    Dans la section Authentification Windows pour Microsoft SQL Server, sous Directory (Répertoire), choisissez None (Aucun).

4.    Choisissez Apply immediately (Appliquer immédiatement). Une fois la modification effectuée, l'instance de base de données redémarre automatiquement.

5.    Afin de rejoindre le répertoire, choisissez Databases (Bases de données) dans le panneau de navigation.

6.    Sélectionnez l'instance de base de données, puis Modify (Modifier).

7.    Dans la section Microsoft SQL Server Windows Authentication (Authentification Windows pour Microsoft SQL Server), sous Directory (Répertoire), choisissez votre répertoire dans la liste.

8.    Choisissez Apply immediately (Appliquer immédiatement). Une fois la modification effectuée, l'instance de base de données redémarre une nouvelle fois.

Une erreur s'est produite (InvalidParameterCombination) lors de l'appel de l'opération ModifyDBInstance : le rôle IAM fourni n'est pas valide, veuillez vérifier que le rôle existe et dispose des politiques appropriées

Lorsque vous utilisez l'AWS CLI afin d'associer un Directory Service à votre instance de base de données, utilisez le rôle IAM par défaut rds-directoryservice-access-role. Si vous utilisez un rôle personnalisé, associez la politique par défaut AmazonRDSDirectoryServiceAccess au rôle personnalisé. Cela permet de résoudre l'erreur Le rôle IAM fourni n'est pas valide.

Impossible de se connecter à l'instance de base de données via l'authentification Windows

La connexion à l'aide de l'authentification Windows nécessite une connexion SQL sur l'instance pour l'utilisateur ou le groupe AD à l'aide des informations d'identification de l'utilisateur principal de l'instance de base de données. Si vous utilisez des groupes ou des utilisateurs dans votre répertoire AD sur site, vous devez créer une relation de confiance.

1.    Connectez-vous à votre instance de base de données en tant qu'utilisateur principal à l'aide de SQL Server Management Studio (SSMS).

2.    Utilisez T-SQL afin de créer la connexion d'authentification Windows :

CREATE LOGIN [Domain Name\user or group] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];

Remarque : la création d'une connexion d'authentification Windows sur une instance RDS for SQL Server est prise uniquement prise en charge par T-SQL. Vous ne pouvez pas utiliser l'interface graphique afin de créer une connexion sur SQL Server Management Studio.

3.    Connectez-vous à l'instance de base de données à l'aide de l'authentification Windows.