Configuration de l'authentification Windows pour les instances RDS personnalisées pour les SQL serveurs - 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 personnalisées pour les SQL serveurs

Nous recommandons de créer une unité d'organisation dédiée et des informations d'identification de service étendues à cette unité d'organisation pour tous Compte AWS ceux qui possèdent une instance de base de données RDS personnalisée pour SQL serveur jointe à votre domaine AD. En consacrant une UO et des informations d'identification de service, vous évitez les conflits d'autorisations et respectez le principe du moindre privilège.

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

  • Pour créer un utilisateur de domaine UO et AD dans votre 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 AWS Directory Service annuaire, vous devez être connecté à une instance de gestion et vous devez également être connecté en tant qu'utilisateur autorisé à créer des utilisateurs et des groupes. Pour plus d'informations, consultez la section Gestion des utilisateurs et des groupes AWS Managed Microsoft AD dans le Guide d'AWS Directory Service administration.

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

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

Les exigences relatives à un compte de service de domaine AD sont les suivantes :

  • Vous devez disposer d'un compte de service dans votre domaine AD avec des autorisations déléguées pour associer des ordinateurs au domaine. Un compte de service de domaine est un compte utilisateur de votre AD qui dispose d'une autorisation déléguée pour effectuer certaines tâches.

  • Déléguez les autorisations suivantes à votre compte de service de domaine dans l'unité organisationnelle à laquelle vous rejoignez votre instance RDS Custom for SQL Server :

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

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

    • Création et suppression d'objets informatiques

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

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

Il s'agit de l'ensemble minimal d'autorisations requis pour joindre des objets informatiques à votre AD autogéré et AWS Managed Microsoft AD. Pour plus d'informations, voir 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 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 peut 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 AmazonRDS, utilisez l'odifyDBInstanceaction M pour modifier les paramètres du domaine en fonction de l'emplacement souhaité pour les objets informatiques.

Étape 1 : créer une unité organisationnelle (UO) dans votre AD

Procédez comme suit pour créer une unité organisationnelle dans votre AD :

Créez une UO dans votre 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 toute suppression accidentelle.

  5. Choisissez OK. Votre nouvelle unité d'organisation apparaît sous votre domaine.

En effet AWS Managed Microsoft AD, le nom de cette unité d'organisation est basé sur le BIOS nom réseau que vous avez saisi lors de la création de votre répertoire. Cette unité d'organisation est détenue par AWS et contient tous vos AWS objets de répertoire associés, sur lesquels vous avez un contrôle total. Par défaut, deux enfants OUs existent sous cette UO, à savoir Computers et Users. Les nouveautés OUs créées par RDS Custom sont un enfant de l'unité d'organisation basée sur le réseauBIOS.

Étape 2 : créer un utilisateur de domaine AD

Les informations d'identification de l'utilisateur du domaine sont utilisées pour le secret dans Secrets Manager.

Créez un utilisateur de domaine AD dans votre AD
  1. Ouvrez Utilisateurs et ordinateurs Active Directory et sélectionnez le domaine et l'unité d'organisation dans lesquels vous souhaitez créer l'utilisateur.

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

  3. Entrez le prénom, le nom de famille et le nom de connexion de l'utilisateur. Cliquez sur Next (Suivant).

  4. Saisissez un mot de passe pour l'utilisateur. Ne sélectionnez pas L'utilisateur doit changer de mot de passe à la prochaine connexion ou le compte est désactivé. . Cliquez sur Next (Suivant).

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

Étape 3 : déléguer le contrôle à l'utilisateur AD en mode autogéré ou AWS Managed Microsoft AD

Pour déléguer le contrôle à l'utilisateur du domaine AD dans votre domaine
  1. Ouvrez le MMC composant logiciel enfichable Utilisateurs et ordinateurs Active Directory et sélectionnez votre domaine.

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

  3. Dans l'assistant de contrôle des délégations, cliquez sur Suivant.

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

  5. Dans 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 AD aboutit, cliquez sur OK.

  6. Dans la section Utilisateurs ou groupes, confirmez que votre utilisateur 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, puis cliquez sur Suivant.

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

    Choisissez ONlyles objets suivants dans le dossier.

    Sélectionnez des 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 Écrire sur le nom d'DNShôte validé.

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

  10. Après avoir terminé l'assistant de délégation de contrôle, confirmez vos paramètres et cliquez sur Terminer.

Étape 4 : Création d'un secret

Créez le secret dans la même Compte AWS région qui contient l'instance de base de données RDS personnalisée pour le SQL serveur que vous souhaitez inclure dans votre Active Directory. Stockez les informations d'identification de l'utilisateur du domaine AD créé dansÉtape 2 : créer un utilisateur de domaine AD.

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

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

  • Pour les paires clé/valeur, ajoutez deux clés :

    • La première clé, SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME et entrez le nom de votre utilisateur AD pour la valeur.

    • Pour la deuxième clé, entrez SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD le mot de passe de votre utilisateur AD sur votre domaine.

  • Pour la clé de chiffrement, entrez la même AWS KMS clé que celle que vous avez utilisée pour créer une instance RDS personnalisée pour le SQL serveur.

  • 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-le à jour RDSCustomInstanceProfile pour accéder au nom du secret.

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

  • Ajoutez les tags 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 de Secret ARN. Nous l'utiliserons à l'étape suivante pour configurer Active Directory.

CLI

Exécutez la commande suivante dans votre 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éer ou modifier une instance de base de données RDS personnalisée pour le SQL serveur

Créez ou modifiez une instance de base de données RDS personnalisée pour le SQL serveur à utiliser avec votre annuaire. Vous pouvez utiliser la console ou associer une instance RDS API de base de données à un répertoire. CLI Vous pouvez effectuer cette opération de différentes manières :

Note

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

Lorsque vous utilisez le AWS CLI, les paramètres suivants sont requis pour que l'instance de base de données puisse utiliser le répertoire que vous avez créé :

  • Pour le --domain-fqdn paramètre, utilisez le nom de domaine complet 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 --domain-auth-secret-arn paramètre, utilisez la valeur du secret ARN que vous avez créé.

Important

Si vous modifiez une instance de base de données pour rejoindre ou supprimer un domaine AD autogéré AWS Managed Microsoft AD, ou si un redémarrage de l'instance de base de données est nécessaire 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îne une interruption de service pour une instance de base de données mono-AZ. Un cluster de base de données multi-AZ effectue un basculement avant de terminer le redémarrage. Pour de plus amples informations, veuillez consulter Modification d'une RDS instance de base de données Amazon.

La CLI commande suivante crée une nouvelle instance de base de données RDS personnalisée pour le SQL serveur et la joint à une instance autogérée ou à un AWS Managed Microsoft AD domaine.

Dans 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

Dans 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 BIOS Netfor AWS Managed Microsoft AD est un corpexample, il apparaît lui-même sous la forme d'une unité d'organisation. Toute nouvelle unité d'organisation créée précédemment apparaîtra sous la forme d'une unité d'organisation imbriquée. Pour AWS Managed Microsoft AD, réglez --domain-ou sur"OU=RDSCustomOU,OU=corpexample,DC=corp,DC=example,DC=com".

La commande suivante modifie une instance de base de données RDS Custom for SQL Server existante afin d'utiliser un domaine Active Directory.

Dans 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" \

Dans 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 CLI commande suivante supprime une instance de base de données RDS personnalisée pour le SQL serveur d'un domaine Active Directory.

Dans Linux, macOS, ou Unix:

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

Dans 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.

Répertoire d'authentification Microsoft SQL Server Windows

Il est de votre responsabilité de vous assurer que votre domaine FQDN correspond aux adresses IP du contrôleur de domaine. Si le contrôleur de domaine IPs ne parvient pas à résoudre le problème, les opérations de jointure de domaine échouent mais la création d'une instance RDS personnalisée pour le SQL serveur réussit. Pour plus d’informations sur le dépannage, consultez Dépannage d’Active Directory.

Étape 6 : Création d'une connexion au SQL serveur d'authentification Windows

Utilisez les informations d'identification de l'utilisateur RDS principal Amazon pour vous connecter à l'instance de base de données SQL du serveur comme vous le faites pour toute autre instance de base de données. Étant donné que l'instance de base de données est jointe au domaine AD, vous pouvez configurer les connexions et les utilisateurs SQL du serveur. Pour ce faire, utilisez l'utilitaire Utilisateurs et groupes AD de votre domaine AD. Les autorisations de base de données sont gérées par le biais d'autorisations de SQL serveur standard accordées et révoquées à ces connexions Windows.

Pour qu'un utilisateur AD puisse s'authentifier auprès de SQL SQL Server, un identifiant Windows Server doit exister pour l'utilisateur AD ou pour un groupe Active Directory dont l'utilisateur est membre. Le contrôle d'accès précis est géré par l'octroi et la révocation d'autorisations sur ces SQL connexions au serveur. Un utilisateur AD qui n'a pas de connexion au SQL serveur ou qui n'appartient pas à un groupe AD avec un tel identifiant ne peut pas accéder à l'instance de base de données SQL du serveur.

L'ALTER ANY LOGINautorisation est requise pour créer une connexion au SQL serveur AD. Si vous n'avez créé aucune 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 du serveur et créez vos connexions au SQL serveur AD dans le contexte de l'utilisateur principal.

Vous pouvez exécuter une commande Data Definition Language (DDL) telle que la suivante pour créer une connexion au SQL serveur pour un utilisateur ou un groupe AD.

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

Les utilisateurs (humains 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 Kerberos ou de l'authentification NTLM

NTLMauthentification à l'aide d'un RDS terminal

Chaque RDS instance de base de données Amazon possède un point de terminaison et chaque point de terminaison possède un DNS nom et un numéro de port pour l'instance de base de données. Pour vous connecter à votre instance de base de données à l'aide d'une application SQL cliente, vous avez besoin du DNS nom et du numéro de port de votre instance de base de données. Pour vous authentifier à l'aide de NTLM l'authentification, vous devez vous connecter au RDS point de terminaison.

Lors de la maintenance planifiée de la base de données ou d'une interruption de service imprévue, Amazon bascule RDS automatiquement vers la base de données up-to-date secondaire afin que les opérations puissent reprendre rapidement sans intervention manuelle. Les instances principale et secondaire utilisent le même point de terminaison, dont l'adresse réseau physique passe au 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 que des connexions soient établies à un nom principal de service spécifique (). SPN Cependant, après un événement de basculement, il est possible que l'application ne soit pas consciente de la nouvelleSPN. Pour résoudre ce problème, RDS Custom 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 RDS point de terminaison l'estrds-instance-name.account-region-hash.aws-region.rds.amazonaws.com, le point de terminaison basé sur Kerberos correspondant serait. rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)

Par exemple, si le RDS point de terminaison est ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com et que le nom de domaine estcorp-ad.company.com, le point de terminaison basé sur Kerberos serait. 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 de SQL serveur à 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 la nouvelle instance de serveur principale. SPN SQL

Trouver votre CNAME

Pour le trouverCNAME, connectez-vous à votre contrôleur de domaine et ouvrez le DNSGestionnaire. Accédez à Forward Lookup Zones et à votreFQDN.

Parcourez les récompenses, l'aws-region et le hachage spécifique au compte et à la région.

Si vous connectez l'EC2instance RDS personnalisée et que vous essayez de vous connecter à la base de données localement en utilisantCNAME, votre connexion utilisera l'NTLMauthentification au lieu de Kerberos.

Si, après la connexion CNAME depuis un client distant, une NTLM connexion est renvoyée, vérifiez si les ports requis sont autorisés.

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

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