Configuration de l’authentification Windows pour les instances RDS Custom for SQL Server - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de l’authentification Windows pour les instances RDS Custom for SQL Server

Nous vous recommandons de créer une unité organisationnelle dédiée et des informations d’identification de service adaptées à cette unité organisationnelle pour tout Compte AWS possédant une instance de base de données RDS Custom for SQL Server jointe à votre domaine AD. En dédiant une unité organisationnelle et des informations d’identification de service, vous évitez les conflits d’autorisations et suivez le principe de moindre privilège.

Les stratégies de groupe au niveau d’Active Directory peuvent entrer en conflit avec les automatisations et les autorisations AWS. Nous vous recommandons de sélectionner des stratégies de groupe qui s’appliquent uniquement à l’unité organisationnelle que vous créez pour RDS Custom for SQL Server.

  • Pour créer une unité organisationnelle et un utilisateur de domaine AD dans votre annuaire AD autogéré ou sur site, vous pouvez connecter le contrôleur de domaine en tant qu’administrateur de domaine.

  • Pour créer des utilisateurs et des groupes dans un annuaire Directory Service, vous devez être connecté à une instance de gestion et être connecté en tant qu’utilisateur disposant des privilèges requis pour créer des utilisateurs et des groupes. Pour plus d’informations, consultez Gestion des utilisateurs et des groupes dans AWS Managed Microsoft AD dans le Guide d’administration d’AWS Directory Service Directory Service.

  • Pour gérer votre Active Directory à partir d’une instance Amazon EC2 Windows Server, vous devez installer les services de domaine Active Directory et les outils de service Active Directory Lightweight Directory sur l’instance EC2. Pour plus d’informations, consultez Installation des outils d’administration Active Directory pour AWS Managed Microsoft AD dans le Guide d’administration d’AWS Directory Service.

  • Nous vous recommandons d’installer ces outils sur une instance EC2 distincte à des fins d’administration, et non sur votre instance de base de données RDS Custom for SQL Server pour en faciliter l’administration.

Les conditions requises pour un compte de service de domaine AD sont les suivantes :

  • Vous devez disposer d’un compte de service dans votre domaine AD autogéré avec des autorisations déléguées pour joindre des ordinateurs au domaine. Un compte de service de domaine est un compte utilisateur de votre annuaire AD auquel l’autorisation d’effectuer certaines tâches a été déléguée.

  • Les autorisations suivantes doivent être déléguées au compte de service de domaine dans l’unité organisationnelle à laquelle vous joignez votre instance de base de données RDS Custom for SQL Server :

    • Capacité validée d’écrire sur le nom d’hôte DNS

    • Capacité validée d'écrire dans le nom du principal de service

    • Création et suppression d’objets informatiques

  • Pour l’annuaire AD autogéré et sur site, le compte de service de domaine doit être membre du groupe « Administrateurs délégués du système de noms de domaine d’AWS ».

  • Pour AWS Managed Microsoft AD, le compte de service de domaine doit être membre du groupe « DnsAdmins ».

Il s’agit de l’ensemble minimal d’autorisations requises pour joindre des objets informatiques à votre annuaire AD autogéré et AWS Managed Microsoft AD. Pour plus d’informations, consultez Erreur : l’accès est refusé lorsque des utilisateurs non administrateurs auxquels le contrôle a été délégué tentent de joindre des ordinateurs à un contrôleur de domaine dans la documentation de Microsoft Windows Server.

Important

Ne déplacez pas les objets informatiques créés par RDS Custom for SQL Server dans l’unité organisationnelle (UO) après la création de votre instance de base de données. Le déplacement des objets associés pourrait entraîner une mauvaise configuration de votre instance de base de données RDS Custom for SQL Server. Si vous devez déplacer les objets informatiques créés par Amazon RDS, utilisez l’action ModifyDBInstance pour modifier les paramètres du domaine en fonction de l’emplacement souhaité des objets informatiques.

Étape 1 : création d’une unité organisationnelle (UO) dans votre annuaire AD

Suivez les étapes ci-dessous pour créer une unité organisationnelle dans votre annuaire AD :

Création d’une unité organisationnelle dans votre annuaire AD
  1. Connectez-vous à votre domaine AD en tant qu’administrateur de domaine.

  2. Ouvrez Utilisateurs et ordinateurs Active Directory et sélectionnez le domaine où vous souhaitez créer votre unité d’organisation.

  3. Cliquez avec le bouton droit sur le domaine et choisissez Nouveau, puis Unité organisationnelle.

  4. Saisissez un nom pour l’unité d’organisation.

    Activez Protéger le conteneur contre la suppression accidentelle.

  5. Choisissez OK. Votre nouvelle unité organisationnelle apparaît sous votre domaine.

Pour AWS Managed Microsoft AD, le nom de cette unité organisationnelle est basé sur le nom NetBIOS que vous avez saisi lors de la création de votre annuaire. Cette unité organisationnelle appartient à AWS et contient tous les objets d’annuaire AWS sur lesquels vous disposez d’un contrôle total. Deux unités organisationnelles enfants existent par défaut sous cette unité organisationnelle, à savoir Ordinateurs et Utilisateurs. Les nouvelles unités organisationnelles créées par RDS Custom sont issues de l’unité organisationnelle basée sur NetBIOS.

Étape 2 : création d’un utilisateur de domaine AD

Les informations d’identification de l’utilisateur de domaine seront utilisées pour le secret dans Secrets Manager.

Création d’un utilisateur de domaine AD dans votre annuaire AD
  1. Ouvrez Utilisateurs et ordinateurs Active Directory et sélectionnez le domaine et l’unité organisationnelle où vous souhaitez créer l’utilisateur.

  2. Cliquez avec le bouton droit sur l’objet Utilisateurs et choisissez Nouveau, puis Utilisateur.

  3. Saisissez le prénom, le nom de famille et le nom de connexion de l’utilisateur. Cliquez sur Suivant.

  4. Saisissez un mot de passe pour l’utilisateur. Ne sélectionnez pas L’utilisateur doit modifier le mot de passe lors de sa prochaine connexion ou Le compte est désactivé. Cliquez sur Suivant.

  5. Cliquez sur OK. Votre nouvel utilisateur apparaîtra sous votre domaine.

Étape 3 : délégation du contrôle à l’utilisateur de l’annuaire AD en mode autogéré ou AWS Managed Microsoft AD

Délégation du contrôle à l’utilisateur du domaine AD dans votre domaine
  1. Ouvrez le composant logiciel enfichable MMC Utilisateurs et ordinateurs Active Directory et sélectionnez votre domaine.

  2. Cliquez avec le bouton droit sur l’unité organisationnelle que vous avez créée précédemment et choisissez Déléguer le contrôle.

  3. Sur la page Assistant Délégation de contrôle, cliquez sur Suivant.

  4. Dans la section Utilisateurs ou groupes, cliquez sur Ajouter.

  5. Dans la section Sélectionner les utilisateurs, les ordinateurs ou les groupes, entrez l’utilisateur AD que vous avez créé et cliquez sur Vérifier les noms. Si votre vérification de l’utilisateur de l’annuaire AD aboutit, cliquez sur OK.

  6. Dans la section Utilisateurs ou groupes, confirmez que votre utilisateur d’annuaire AD a été ajouté et cliquez sur Suivant.

  7. Dans la section Tâches à déléguer, choisissez Créer une tâche personnalisée à déléguer et cliquez sur Suivant.

  8. Dans la section Type d’objet Active Directory :

    Choisissez Seulement les objets suivants dans le dossier.

    Sélectionnez Objets informatiques

    Sélectionnez Créer les objets sélectionnés dans ce dossier

    Sélectionnez Supprimer les objets sélectionnés dans ce dossier et cliquez sur Suivant.

  9. Dans la section Autorisations :

    Gardez l’option Général sélectionnée.

    Sélectionnez Écriture validée sur le nom d'hôte DNS.

    Sélectionnez Écriture validée sur le nom du principal de service et cliquez sur Suivant.

  10. Pour Fin de l’Assistant Délégation de contrôle, confirmez vos paramètres, puis cliquez sur Terminer.

Étape 4 : création d’un secret

Créez le secret dans le même Compte AWS et la même région qui contient l’instance de base de données RDS Custom for SQL Server que vous souhaitez inclure à votre annuaire AD. Stockez les informations d’identification de l’utilisateur du domaine AD créé dans Étape 2 : création d’un utilisateur de domaine AD.

Console
  • Dans AWS Secrets Manager, choisissez Stocker un nouveau secret.

  • Pour Secret type (Type de secret), choisissez Other type of secret (Autre type de secret).

  • Pour Paires clé/valeur, ajoutez deux clés :

    • Pour la première valeur, SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME et saisissez uniquement votre utilisateur d’annuaire AD (sans le préfixe de domaine) pour la valeur.

    • Pour la deuxième clé, saisissez SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD et saisissez le mot de passe de votre utilisateur d’annuaire AD sur votre domaine.

  • Pour Clé de chiffrement, saisissez la même clé AWS KMS que celle que vous avez utilisée pour créer l’instance RDS Custom for SQL Server.

  • Pour Nom du secret, choisissez le nom du secret commençant par do-not-delete-rds-custom- pour permettre à votre profil d’instance d’accéder à ce secret. SI vous souhaitez choisir un autre nom pour le secret, mettez à jour RDSCustomInstanceProfile pour accéder à Nom du secret.

  • (Facultatif) Pour Description, saisissez une description du nom du secret.

  • Ajoutez les balises Key="AWSRDSCustom",Value="custom-sqlserver"

  • Cliquez sur Enregistrer, puis sur Suivant.

  • Pour Configurer les paramètres de rotation, conservez les valeurs par défaut et choisissez Suivant.

  • Passez en revue les paramètres du secret et cliquez sur Stocker.

  • Choisissez le nouveau secret et copiez la valeur pour ARN du secret. Nous l’utiliserons à l’étape suivante pour configurer Active Directory.

CLI

Exécutez la commande suivante dans votre interface de ligne de commande (CLI) pour créer un secret :

# Linux based aws secretsmanager create-secret \ --name do-not-delete-rds-custom-DomainUserCredentails \ --description "Active directory user credentials for managing RDS Custom" \ --secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" \ --kms-key-id <RDSCustomKMSKey> \ --tags Key="AWSRDSCustom",Value="custom-sqlserver" # Windows based aws secretsmanager create-secret ^ --name do-not-delete-rds-custom-DomainUserCredentails ^ --description "Active directory user credentials for managing RDS Custom" ^ --secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" ^ --kms-key-id <RDSCustomKMSKey> ^ --tags Key="AWSRDSCustom",Value="custom-sqlserver"

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

Créez ou modifiez une instance de base de données RDS Custom for SQL Server en vue de son utilisation avec votre annuaire. Vous pouvez utiliser la console, la CLI ou l’API RDS pour associer une instance de base de données à un annuaire. Vous pouvez effectuer cette opération de différentes manières :

Note

Si votre instance RDS Custom pour SQL Server est déjà jointe manuellement à un AD, vérifiez les paramètres de Règles relatives aux ports de configuration réseauValidation du réseau, et effectuez les étapes 1 à 4. Mettez à jour --domain-fqdn, --domain-ou et --domain-auth-secret-arn sur votre annuaire AD, afin que les informations d’identification et les configurations de jonction de domaine soient enregistrées auprès de RDS Custom pour surveiller, enregistrer le CNAME et prendre des mesures de récupération.

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

  • Pour le paramètre --domain-fqdn, utilisez le nom de domaine entièrement qualifié de votre annuaire 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.

Important

Si vous modifiez une instance de base de données pour la joindre à un domaine AD autogéré ou AWS Managed Microsoft AD 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 une durée d’indisponibilité pour l’instance de base de données mono-AZ. Un cluster de bases de données multi-AZ effectuera un basculement avant de terminer le redémarrage. Pour plus d’informations, consultez Modification d'une instance de base de données Amazon RDS.

La commande de l’interface de ligne de commande (CLI) suivante crée une nouvelle instance de base de données RDS Custom for SQL Server et la joint à un domaine autogéré ou AWS Managed Microsoft AD.

Pour Linux, macOS ou Unix :

aws rds create-db-instance \ --engine custom-sqlserver-se \ --engine-version 15.00.4312.2.v1 \ --db-instance-identifier my-custom-instance \ --db-instance-class db.m5.large \ --allocated-storage 100 --storage-type io1 --iops 1000 \ --master-username my-master-username \ --master-user-password my-master-password \ --kms-key-id my-RDSCustom-key-id \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --domain-fqdn "corp.example.com" \ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \ --db-subnet-group-name my-DB-subnet-grp \ --vpc-security-group-ids my-securitygroup-id \ --no-publicly-accessible \ --backup-retention-period 3 \ --port 8200 \ --region us-west-2 \ --no-multi-az

Pour Windows :

aws rds create-db-instance ^ --engine custom-sqlserver-se ^ --engine-version 15.00.4312.2.v1 ^ --db-instance-identifier my-custom-instance ^ --db-instance-class db.m5.large ^ --allocated-storage 100 --storage-type io1 --iops 1000 ^ --master-usernamemy-master-username ^ --master-user-password my-master-password ^ --kms-key-id my-RDSCustom-key-id ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --domain-fqdn "corp.example.com" ^ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^ --db-subnet-group-name my-DB-subnet-grp ^ --vpc-security-group-ids my-securitygroup-id ^ --no-publicly-accessible ^ --backup-retention-period 3 ^ --port 8200 ^ --region us-west-2 ^ --no-multi-az
Important

Si votre NetBIOS pour AWS Managed Microsoft AD est corpexample, il apparaît lui-même sous la forme d’une unité organisationnelle. Toute nouvelle unité organisationnelle créée précédemment apparaîtra sous la forme d’une unité organisationnelle imbriquée. Pour AWS Managed Microsoft AD, réglez --domain-ou sur "OU=RDSCustomOU,OU=corpexample,DC=corp,DC=example,DC=com".

La commande de l’interface de ligne de commande (CLI) suivante modifie une instance de base de données RDS Custom for SQL Server existante afin d’utiliser un domaine Active Directory.

Pour Linux, macOS ou Unix :

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --domain-fqdn "corp.example.com" \ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \

Pour Windows :

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --domain-fqdn "corp.example.com" ^ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^

La commande de l’interface de ligne de commande (CLI) suivante supprime une instance de base de données RDS Custom for SQL Server d’un domaine Active Directory.

Pour Linux, macOS ou Unix :

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

Pour Windows :

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

Lorsque vous utilisez la console pour créer ou modifier votre instance, cliquez sur Activer l’authentification Microsoft SQL Server Windows pour voir les options suivantes.

Annuaire d’authentification Windows à Microsoft SQL Server

Il est de votre responsabilité de vous assurer que le nom de domaine complet de votre domaine correspond aux adresses IP de contrôleur de domaine. Si les adresses IP de contrôleur de domaine ne sont pas résolues, les opérations de jointure de domaine échouent, mais la création de l’instance RDS Custom for SQL Server réussit. Pour plus d’informations sur le dépannage, consultez Dépannage d’Active Directory.

Étape 6 : 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, vous pouvez allouer les connexions et utilisateurs SQL. Pour ce faire, utilisez l’utilitaire Utilisateurs et groupes de l’annuaire AD de votre domaine AD. 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 utilisateur d’annuaire AD puisse s’authentifier à SQL Server, une connexion Windows SQL Server doit exister pour l’utilisateur ES ou un groupe Active Directory 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 utilisateur d’annuaire AD qui n’a pas de connexion SQL Server ou qui n’appartient pas à un groupe AD 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 à l’annuaire AD. Si vous n’avez pas créé de connexions 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 à l’annuaire AD 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 utilisateur ou un groupe d’annuaire AD.

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

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

Étape 7 : utilisation de l’authentification Kerberos ou NTLM

Authentification NTLM à l’aide du point de terminaison RDS

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.

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 Custom 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 Custom pour 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.

Si vous connectez l’instance RDS Custom EC2 et que vous essayez de vous connecter à la base de données localement à l’aide de CNAME, votre connexion utilisera l’authentification NTLM au lieu de Kerberos.

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;