Joindre votre instance de base de données à Active Directory autogéré - Amazon Relational Database Service

Joindre votre instance de base de données à Active Directory autogéré

Pour joindre votre instance de base de données RDS for SQL Server à Active Directory autogéré, procédez comme suit :

Étape 1 : Création ou modification d’une instance de base de données SQL Server

Vous pouvez utiliser la console, l'interface de ligne de commande ou l'API RDS pour associer une instance de base de données RDS for SQL Server à un domaine AD autogéré. Vous pouvez effectuer cette opération de différentes manières :

Lorsque vous utilisez l’AWS CLI, les paramètres suivants sont obligatoires pour que l’instance de base de données puisse utiliser le domaine AD autogéré que vous avez créé :

  • Pour le paramètre --domain-fqdn, utilisez le nom de domaine entièrement qualifié (FQDN) de votre AD autogéré.

  • Pour le paramètre --domain-ou, utilisez l’unité d’organisation que vous avez créée dans votre annuaire AD autogéré.

  • Pour le paramètre --domain-auth-secret-arn, utilisez la valeur de l'ARN du secret que vous avez créé dans une étape précédente.

  • Pour le paramètre --domain-dns-ips, utilisez les adresses IPv4 principale et secondaire des serveurs DNS pour votre annuaire AD autogéré. Si vous ne possédez pas d'adresse IP de serveur DNS secondaire, entrez deux fois l'adresse IP principale.

Les exemples de commandes CLI suivants montrent comment créer, modifier et supprimer une instance de base de données RDS for SQL Server avec un domaine AD autogéré.

Important

Si vous modifiez une instance de base de données pour la joindre à un domaine AD autogéré ou pour l'en supprimer, un redémarrage de l'instance de base de données est requis pour que la modification prenne effet. Vous pouvez choisir d'appliquer les modifications immédiatement ou d'attendre la prochaine fenêtre de maintenance. Le choix de l'option Appliquer immédiatement entraînera un temps d'arrêt pour l'instance de base de données mono-AZ. Une instance de base de données multi-AZ effectuera un basculement avant de terminer le redémarrage. Pour plus d’informations, consultez Utilisation du paramètre de planification des modifications.

La commande CLI suivante crée une nouvelle instance de base de données RDS for SQL Server et la joint à un domaine AD autogéré.

Pour Linux, macOS ou Unix :

aws rds create-db-instance \ --db-instance-identifier my-DB-instance \ --db-instance-class db.m5.xlarge \ --allocated-storage 50 \ --engine sqlserver-se \ --engine-version 15.00.4043.16.v1 \ --license-model license-included \ --master-username my-master-username \ --master-user-password my-master-password \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Pour Windows :

aws rds create-db-instance ^ --db-instance-identifier my-DB-instance ^ --db-instance-class db.m5.xlarge ^ --allocated-storage 50 ^ --engine sqlserver-se ^ --engine-version 15.00.4043.16.v1 ^ --license-model license-included ^ --master-username my-master-username ^ --master-user-password my-master-password ^ --domain-fqdn my-AD-test.my-AD.mydomain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

La commande d’interface de ligne de commande suivante modifie une instance de base de données RDS for SQL Server existante afin d’utiliser un domaine AD autogéré.

Pour Linux, macOS ou Unix :

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --domain-fqdn my_AD_domain.my_AD.my_domain \ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" \ --domain-dns-ips "10.11.12.13" "10.11.12.14"

Pour Windows :

aws rds modify-db-instance ^ --db-instance-identifier my-DBinstance ^ --domain-fqdn my_AD_domain.my_AD.my_domain ^ --domain-ou OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:my-AD-test-secret-123456" ^ --domain-dns-ips "10.11.12.13" "10.11.12.14"

La commande d’interface de ligne de commande suivante supprime une instance de base de données RDS for SQL Server d’un domaine AD autogéré.

Pour Linux, macOS ou Unix :

aws rds modify-db-instance \ --db-instance-identifier my-DB-instance \ --disable-domain

Pour Windows :

aws rds modify-db-instance ^ --db-instance-identifier my-DB-instance ^ --disable-domain

Étape 2 : Utilisation de l’authentification Kerberos ou NTLM

Authentifications NTLM

Chaque instance de base de données Amazon RDS possède un point de terminaison. Chaque point de terminaison possède un nom DNS et un numéro de port de l’instance de base de données. Pour connecter votre instance de base de données à l’aide d’une application cliente SQL, vous avez besoin du nom DNS et du numéro de port de votre instance de base de données. Pour vous authentifier à l’aide de l’authentification NTLM, vous devez vous connecter au point de terminaison RDS ou au point de terminaison d’écouteur si vous utilisez un déploiement multi-AZ.

Lors d’une maintenance de base de données programmée ou d’une interruption non programmée du service, Amazon RDS bascule automatiquement vers la base de données secondaire à jour afin que les opérations puissent reprendre rapidement, sans intervention manuelle. Les instances principales et secondaires utilisent le même point de terminaison, dont l’adresse réseau physique est transférée vers l’instance secondaire dans le cadre du processus de basculement. Vous n’avez pas à reconfigurer votre application lorsqu’un basculement se produit.

Authentification Kerberos

L’authentification basée sur Kerberos pour RDS for SQL Server nécessite l’établissement de connexions à un nom principal de service (SPN) spécifique. Cependant, après un événement de basculement, il est possible que l’application ne connaisse pas le nouveau SPN. Pour résoudre ce problème, RDS for SQL Server propose un point de terminaison basé sur Kerberos.

Le point de terminaison basé sur Kerberos suit un format spécifique. Si votre point de terminaison RDS est rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com, le point de terminaison basé sur Kerberos correspondant est rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN).

Par exemple, si le point de terminaison RDS est ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com et que le nom de domaine est corp-ad.company.com, le point de terminaison basé sur Kerberos est ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com.

Ce point de terminaison basé sur Kerberos peut être utilisé pour s’authentifier auprès de l’instance SQL Server à l’aide de Kerberos, même après un événement de basculement, car le point de terminaison est automatiquement mis à jour pour pointer vers le nouveau SPN de l’instance SQL Server principale.

Trouver votre CNAME

Pour trouver votre CNAME, connectez-vous à votre contrôleur de domaine et ouvrez le Gestionnaire DNS. Accédez à Forward Lookup Zones et à votre FQDN.

Parcourez awsrds, aws-region et le hachage spécifique au compte et à la région.

Modification de la capacité de stockage d’une instance de base de données

Si, après avoir connecté le CNAME à partir d’un client distant, une connexion NTLM est renvoyée, vérifiez si les ports requis sont autorisés.

Pour vérifier que votre connexion utilise Kerberos, exécutez la requête suivante :

SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SSPID;

Si votre instance renvoie une connexion NTLM lorsque vous vous connectez à un point de terminaison Kerberos, vérifiez votre configuration réseau et les configurations utilisateur. Consultez Configuration de votre connectivité réseau.

Étape 3 : Création de connexions SQL Server pour l’authentification Windows

Utilisez les informations d’identification de l’utilisateur principal Amazon RDS pour vous connecter à l’instance de base de données SQL Server de la même manière qu’à n’importe quelle instance de base de données. Étant donné que l'instance de base de données est jointe au domaine AD autogéré, vous pouvez provisionner des connexions et des utilisateurs SQL Server. Pour ce faire, utilisez l'utilitaire Utilisateurs et groupes AD de votre domaine AD autogéré. Les autorisations pour la base de données sont gérées via des autorisations SQL Server standard accordées et révoquées en fonction des connexions Windows.

Pour qu’un compte de domaine de service AD autogéré puisse s’authentifier à SQL Server, une connexion Windows SQL Server doit exister pour le compte de domaine de service AD autogéré ou un groupe AD autogéré dont l’utilisateur est membre. Un contrôle précis des accès est géré par l’attribution ou la révocation d’autorisations pour ces connexions SQL Server. Un compte de domaine de service AD autogéré qui n’a pas de connexion SQL Server ou qui n’appartient pas à un groupe AD autogéré avec une telle connexion ne peut pas accéder à l’instance de base de données SQL Server.

L'autorisation ALTER ANY LOGIN est requise pour créer une connexion SQL Server à AD autogéré. Si vous n'avez pas créé de connexion avec cette autorisation, connectez vous en tant qu'utilisateur principal de l'instance de base de données à l'aide de l'authentification SQL Server et créez vos connexions SQL Server à AD autogéré dans le contexte de l'utilisateur principal.

Vous pouvez exécuter une commande DDL (Data Definition Language) telle que la suivante afin de créer une connexion SQL Server pour un compte de domaine de service ou un groupe AD autogéré.

Note

Spécifiez les utilisateurs et les groupes à l’aide du nom de connexion antérieur à Windows 2000 au format my_AD_domain\my_AD_domain_user. Vous ne pouvez pas utiliser un nom d’utilisateur principal (UPN) au format my_AD_domain_user@my_AD_domain.

USE [master] GO CREATE LOGIN [my_AD_domain\my_AD_domain_user] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english]; GO

Pour plus d’informations, consultez la section CREATE LOGIN (Transact-SQL) dans la documentation de Microsoft Developer Network.

Les utilisateurs (personnes et applications) de votre domaine peuvent désormais se connecter à l'instance RDS for SQL Server à partir d'un ordinateur client joint au domaine AD autogéré à l'aide de l'authentification Windows.