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

Dernière mise à jour : 10/02/2021

AWS Directory Service pour Microsoft Active Directory (Microsoft AD) est configuré sur mon compte AWS. Cependant, lorsque j'essaie de créer une instance de base de données Amazon Relational Database Service (Amazon RDS) qui exécute 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 puis-je résoudre ces problèmes avec AWS Managed Microsoft AD ?

Brève description

L'authentification Windows pour les instances de base de données Amazon RDS exécutant SQL Server est désormais prise en charge sur plusieurs comptes AWS et VPC Amazon. Un AWS Managed Microsoft AD peut être partagé entre plusieurs comptes AWS et VPC, afin 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 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 Directory Service se trouve dans une région AWS différente de l'instance de base de données, 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 les Directory Services se trouvent dans la même région :

  1. Ouvrez la console Amazon RDS, puis sélectionnez Databases (Bases de données) dans le volet de navigation.
  2. Choisissez l'instance de base de données que vous souhaitez 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 e données, en accédant à la console Directory Service.

Si votre AWS Managed Directory Service se trouve dans un compte AWS différent de celui de l'instance de base de données, partagez AWS Directory Service 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 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 par le biais 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 par le biais du compte de l'instance de base de données, et non 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 Active Directory peut être 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.)

Si votre AWS Managed Directory Service se trouve dans le même compte et dans un VPC différent, ou dans un compte AWS différent de celui de l'instance de base de données, activez le trafic inter-VPC entre le VPC AWS Managed Directory Service et le VPC de l'instance de base de données. Pour ce faire, utilisez VPC-Peering ou AWS Transit Gateway. Assurez-vous que les tables de routage de VPC disposent des routes de destination requises afin d'activer le flux de trafic inter-VPC.

Vérifiez que les règles entrantes et sortantes du groupe de sécurité sont configurées afin que l'instance de base de données puisse communiquer avec le répertoire Active Directory. Ensuite, joignez l'instance de base de données au domaine en procédant comme suit :

  1. Ouvrez la console Amazon RDS, puis sélectionnez Databases (Bases de données) dans le volet 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 Microsoft SQL Server Windows Authentication (Authentification Windows pour Microsoft SQL Server), sous Directory (Répertoire), choisissez None (Aucun).
  4. Sélectionnez Apply immediately (Appliquer immédiatement). Une fois la modification effectuée, l'instance de base de données redémarre automatiquement.
  5. Afin de joindre le répertoire, choisissez Databases (Bases de données) dans le volet de navigation.
  6. Sélectionnez l'instance de base de données, puis choisissez 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. Sélectionnez 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, vérifiez que le rôle existe et dispose des stratégies appropriées

Lorsque vous utilisez l'AWS CLI afin d'attacher 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 IAM personnalisé, attachez la stratégie par défaut AmazonRDSDirectoryServiceAccess à votre rôle IAM personnalisé afin de résoudre l'erreur « IAM role provided is not valid » (Rôle IAM fourni non valide).

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

Afin d'utiliser l'authentification Windows, créez une connexion SQL sur l'instance de base de données pour l'utilisateur ou le groupe Active Directory à 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 Active Directory sur site, vous devez créer une relation de confiance.

  1. Connectez-vous à votre instance de base de données par le biais de l'utilisateur principal en utilisant 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 RDS 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.

  • Connectez-vous à l'instance de base de données par le biais de l'authentification Windows.