Configuration de l'authentification Kerberos pour les clusters de bases de données Aurora MySQL - Amazon Aurora

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 Kerberos pour les clusters de bases de données Aurora MySQL

Utilisez AWS Managed Microsoft AD pour configurer l'authentification Kerberos pour un cluster de bases de données Aurora MySQL. Pour configurer l'authentification Kerberos, procédez comme suit :

Étape 1 : Créer un annuaire à l'aide d AWS Managed Microsoft AD

AWS Directory Service crée un annuaire Active Directory totalement géré dans le Cloud AWS. Lorsque vous créez un annuaire AWS Managed Microsoft AD, AWS Directory Service crée deux contrôleurs de domaine et serveurs de système de noms de domaine (DNS) en votre nom. Les serveurs de répertoire sont créés dans des sous-réseaux différents d'un VPC. Cette redondance permet de s'assurer que votre annuaire reste accessible, y compris en cas de défaillance.

Lorsque vous créez un annuaire AWS Managed Microsoft AD, AWS Directory Service effectue les tâches suivantes en votre nom :

  • Configuration d'un annuaire Active Directory dans le VPC.

  • Création d'un compte d'administrateur d'annuaire avec le nom d'utilisateur Admin et le mot de passe spécifié. Ce compte est utilisé pour gérer votre annuaire.

    Note

    Assurez-vous d'enregistrer ce mot de passe, car AWS Directory Service ne le stocke pas. Vous pouvez le réinitialiser, mais vous ne pouvez pas le récupérer.

  • Création d'un groupe de sécurité pour les contrôleurs de l'annuaire.

Lorsque vous lancez AWS Managed Microsoft AD, AWS crée une unité d'organisation (UO) qui contient tous les objets de votre annuaire. Cette unité d'organisation porte le nom NetBIOS que vous avez saisi lorsque vous avez créé votre annuaire. Elle se trouve à la racine du domaine, qui est détenue et gérée par AWS.

Le compte Admin qui a été créé avec votre annuaire AWS Managed Microsoft AD dispose des autorisations pour les activités d'administration les plus courantes pour votre unité d'organisation, dont :

  • Création, mise à jour et suppression des utilisateurs

  • Ajouter des ressources à votre domaine, comme des serveurs de fichiers ou d'impression, puis attribuer des autorisations pour ces ressources aux utilisateurs dans votre unité d'organisation

  • Créer des unités d'organisation et des conteneurs supplémentaires

  • Déléguer des autorités

  • Restaurer des objets supprimés de la corbeille Active Directory

  • Exécuter les PowerShell modules Windows AD et DNS sur le service Web Active Directory

Le compte Admin dispose également de droits pour exécuter les activités suivantes au niveau du domaine :

  • Gérer les configurations DNS (ajouter, supprimer ou mettre à jour des enregistrements, des zones et des redirecteurs)

  • Afficher les journaux d'évènements DNS

  • Afficher les journaux d'évènements de sécurité

Pour créer un annuaire avec AWS Managed Microsoft AD
  1. Connectez-vous à AWS Management Console et ouvrez la console AWS Directory Service à l'adresse https://console.aws.amazon.com/directoryservicev2/.

  2. Dans le panneau de navigation, choisissez Directories (Répertoires), puis Set up Directory (Configurer un répertoire).

  3. Choisissez AWS Managed Microsoft AD. AWS Managed Microsoft AD est la seule option que vous pouvez utiliser actuellement avec Amazon RDS.

  4. Entrez les informations suivantes :

    Nom de DNS de l'annuaire

    Nom complet de l'annuaire, par exemple corp.example.com.

    Nom NetBIOS de l'annuaire

    Nom court de l'annuaire, par exemple CORP.

    Description de l'annuaire

    (Facultatif) Une description de l'annuaire.

    Mot de passe administrateur

    Mot de passe de l'administrateur de l'annuaire. Le processus de création d'un annuaire crée un compte d'administrateur avec le nom d'utilisateur Admin et ce mot de passe.

    Le mot de passe de l'administrateur de l'annuaire ne peut pas contenir le terme « admin ». Le mot de passe est sensible à la casse et doit comporter entre 8 et 64 caractères. Il doit également contenir au moins un caractère de trois des quatre catégories suivantes :

    • Lettres minuscules (a–z)

    • Lettres majuscules (A–Z)

    • Chiffres (0–9)

    • Caractères non alphanumériques (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Confirmer le mot de passe

    Saisissez à nouveau le mot de passe de l'administrateur.

  5. Choisissez Suivant.

  6. Entrez les informations suivantes dans la section Networking (Réseaux), puis choisissez Suivant (Next) :

    VPC

    VPC de l'annuaire. Créez le cluster de bases de données Aurora MySQL dans ce même VPC.

    Sous-réseaux

    Sous-réseaux pour les serveurs d'annuaires. Les deux sous-réseaux doivent être dans des zones de disponibilité différentes.

  7. Vérifiez les informations concernant l'annuaire et effectuez les modifications nécessaires. Lorsque les informations sont correctes, choisissez Create directory (Créer le répertoire).

    Page de détails de l'annuaire lors de la création

La création de l'annuaire prend plusieurs minutes. Lorsqu'il est créé, la valeur du champ Status (Statut) devient Active (Actif).

Pour consulter les informations relatives à votre annuaire, choisissez le nom de l'annuaire dans la liste. Notez la valeur ID de l'annuaire. Vous en aurez besoin pour créer ou modifier votre cluster de bases de données Aurora MySQL.

ID de l'annuaire sur la page Détails de l'annuaire

Étape 2 : (Facultatif) Créer une approbation pour un annuaire Active Directory sur site

Si vous ne prévoyez pas d'utiliser votre propre Microsoft Active Directory sur site, passez à Étape 3 : Créer un rôle IAM pour une utilisation par Amazon Aurora.

Pour utiliser l'authentification Kerberos avec votre annuaire Active Directory sur site, vous devez créer une relation de domaine d'approbation à l'aide d'une approbation de forêt entre votre annuaire Microsoft Active Directory sur site et l'annuaire AWS Managed Microsoft AD (créé dans Étape 1 : Créer un annuaire à l'aide d AWS Managed Microsoft AD). L'approbation peut être unidirectionnelle. Dans ce cas, l'annuaire AWS Managed Microsoft AD approuve Microsoft Active Directory sur site. L'approbation peut également être bidirectionnelle. Dans ce cas, les deux Active Directory s'approuvent mutuellement. Pour plus d'informations sur la configuration des approbations avec AWS Directory Service, consultez Quand créer une relation d'approbation ? dans le Guide d'administration AWS Directory Service.

Note

Si vous utilisez un annuaire Microsoft Active Directory sur site :

  • Les clients Windows doivent se connecter en utilisant le nom de domaine du AWS Directory Service dans le point de terminaison plutôt que rds.amazonaws.com. Pour plus d'informations, consultez Connexion à Aurora MySQL avec l'authentification Kerberos.

  • Les clients Windows ne peuvent pas se connecter à l'aide de points de terminaison Aurora personnalisés. Pour en savoir plus, veuillez consulter la section Gestion des connexions Amazon Aurora.

  • Pour les bases de données globales :

    • Les clients Windows peuvent se connecter à l'aide de points de terminaison d'instance ou de points de terminaison de cluster dans la Région AWS principale de la base de données globale.

    • Les clients Windows ne peuvent pas se connecter à l'aide de points de terminaison de cluster dans les Régions AWS secondaires.

Assurez-vous que le nom de domaine de votre Microsoft Active Directory sur site inclut un routage de suffixe DNS correspondant à la relation d'approbation nouvellement créée. La capture d'écran suivante présente un exemple.

Le routage DNS correspond à l'approbation créée

Étape 3 : Créer un rôle IAM pour une utilisation par Amazon Aurora

Pour qu'Amazon Aurora appelle AWS Directory Service pour vous, vous avez besoin d'un rôle AWS Identity and Access Management (IAM) utilisant la politique IAM gérée AmazonRDSDirectoryServiceAccess. Ce rôle permet à Aurora d'effectuer des appels vers AWS Directory Service.

Lorsque vous créez un cluster de bases de données à l'aide de la AWS Management Console, et que vous disposez de l'autorisation iam:CreateRole, la console crée ce rôle automatiquement. Dans ce cas, le nom du rôle est rds-directoryservice-kerberos-access-role. Sinon, vous devez créer le rôle IAM manuellement. Lorsque vous créez ce rôle IAM, choisissez Directory Service et attachez-lui la stratégie gérée AWS AmazonRDSDirectoryServiceAccess.

Pour plus d'informations sur la création de rôles IAM pour un service, consultez Création d'un rôle pour déléguer des autorisations à un service AWS dans le Guide de l'utilisateur IAM.

Vous pouvez également créer des politiques avec les autorisations obligatoires au lieu d'utiliser la politique gérée IAM AmazonRDSDirectoryServiceAccess. Dans ce cas, le rôle IAM doit avoir la politique d'approbation IAM suivante :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Le rôle doit également avoir la politique de rôle IAM suivante.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Étape 4 : Créer et configurer des utilisateurs

Vous pouvez créer des utilisateurs avec l'outil Active Directory Users and Computers (Utilisateurs et ordinateurs Active Directory). Cet outil fait partie des outils Active Directory Domain Services et Active Directory Lightweight Directory Services (Services de domaine Active Directory et Services d'annuaire légers Active Directory). Les utilisateurs représentent des individus ou des entités individuelles qui ont accès à votre annuaire.

Pour créer des utilisateurs dans un annuaire AWS Directory Service, vous utilisez une instance sur site ou Amazon EC2 basée sur Microsoft Windows associée à votre annuaire AWS Directory Service. Vous devez être connecté à l'instance en tant qu'utilisateur disposant de privilèges pour créer des utilisateurs. Pour de plus amples informations, veuillez consulter Gérer des utilisateurs et des groupes dans AWS Managed Microsoft AD dans le Guide d'administration d'AWS Directory Service.

Étape 5 : Créer ou modifier un cluster de bases de données Aurora MySQL

Créez ou modifiez un cluster de bases de données Aurora MySQL à utiliser avec votre annuaire. Vous pouvez utiliser la console, l'AWS CLI ou l'API RDS pour associer un cluster de bases de données à un annuaire. Vous pouvez effectuer cette tâche de différentes manières :

L'authentification Kerberos est uniquement prise en charge pour les clusters de bases de données Aurora MySQL dans un VPC. Le cluster de bases de données peut se trouver dans le même VPC que l'annuaire ou dans un autre VPC. Le VPC du cluster de bases de données doit avoir un groupe de sécurité VPC qui autorise les communications sortantes vers votre annuaire.

Lorsque vous utilisez la console pour créer, modifier ou restaurer un cluster de base de données, choisissez Kerberos authentication (Authentification Kerberos) dans la section Database authentication (Authentification de base de données). Choisissez Browse Directory (Parcourir les répertoires), puis sélectionnez le répertoire, ou choisissez Create a new directory (Créer un nouveau répertoire).

Paramètre d'authentification Kerberos lors de la création d'un cluster de bases de données

Lorsque vous utilisez l'AWS CLI ou l'API RDS, associez un cluster de bases de données à un annuaire. Les paramètres suivants sont nécessaires pour que le cluster de bases de données utilise l'annuaire du domaine que vous avez créé :

  • Pour le paramètre --domain, vous devez indiquer l'identifiant du domaine (identifiant « d-* ») généré lors de la création de l'annuaire.

  • Pour le paramètre --domain-iam-role-name, utilisez le rôle que vous avez créé qui utilise la politique IAM gérée AmazonRDSDirectoryServiceAccess.

Par exemple, la commande d'interface de ligne de commande suivante modifie un cluster de bases de données de façon à utiliser un annuaire.

Pour LinuxmacOS, ou Unix :

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --domain d-ID \ --domain-iam-role-name role-name

Dans Windows :

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --domain d-ID ^ --domain-iam-role-name role-name
Important

Si vous modifiez un cluster de bases de données pour activer l'authentification Kerberos, redémarrez les instances de base de données de lecteur après avoir effectué la modification.

Étape 6 : Créer des utilisateurs Aurora MySQL utilisant l'authentification Kerberos

Le cluster de bases de données est joint au domaine AWS Managed Microsoft AD. Vous pouvez ainsi créer des utilisateurs Aurora MySQL à partir des utilisateurs Active Directory de votre domaine. Les autorisations de base de données sont gérées via des autorisations Aurora MySQL standard qui sont accordées et révoquées à partir de ces utilisateurs.

Vous pouvez autoriser un utilisateur Active Directory à s'authentifier avec Aurora MySQL. Pour ce faire, utilisez d'abord les informations d'identification de l'utilisateur principal Amazon RDS pour vous connecter au cluster de bases de données Aurora MySQL comme avec n'importe quel autre cluster de bases de données. Après vous être connecté, créez un utilisateur authentifié en externe avec l'authentification Kerberos dans Aurora MySQL comme indiqué ici :

CREATE USER user_name@'host_name' IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';
  • Remplacez user_name par le nom de l'utilisateur. Les utilisateurs (personnes et applications) de votre domaine peuvent désormais se connecter au cluster de bases de données à partir d'un ordinateur client joint au domaine à l'aide de l'authentification Kerberos.

  • Remplacez host_name par le nom d'hôte. Vous pouvez utiliser % comme un caractère générique. Vous pouvez également utiliser des adresses IP spécifiques pour le nom d'hôte.

  • Remplacez realm_name par le nom de domaine de l'annuaire du domaine. Le nom de domaine est généralement identique au nom de domaine DNS en lettres majuscules, par exemple CORP.EXAMPLE.COM. Un domaine est un groupe de systèmes qui utilise le même centre de distribution de clés Kerberos.

L'exemple suivant crée un utilisateur de base de données dont le nom Admin s'authentifie auprès de l'annuaire Active Directory à l'aide du nom de domaine MYSQL.LOCAL.

CREATE USER Admin@'%' IDENTIFIED WITH 'authentication_kerberos' BY 'MYSQL.LOCAL';

Modification d'un identifiant Aurora MySQL existant

Vous pouvez également modifier un identifiant Aurora MySQL existant pour utiliser l'authentification Kerberos avec la syntaxe suivante :

ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';

Étape 7 : Configurer un client MySQL

Pour configurer un client MySQL, procédez comme suit :

  1. Créez un fichier krb5.conf (ou équivalent) pointant vers le domaine.

  2. Vérifiez que le trafic peut circuler entre l'hôte du client et AWS Directory Service. Utilisez un utilitaire réseau tel que Netcat pour les opérations suivantes :

    • Vérifiez le trafic via DNS pour le port 53.

    • Vérifiez le trafic via TCP/UDP pour le port 53 et pour Kerberos, cela incluant les ports 88 et 464 pour AWS Directory Service.

  3. Vérifiez que le trafic peut circuler entre l'hôte du client et l'instance de base de données via le port de la base de données. Par exemple, utilisez mysql pour vous connecter à la base de données et y accéder.

Voici un exemple de contenu krb5.conf pour AWS Managed Microsoft AD.

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM

Vous trouverez ci-après un exemple de contenu krb5.conf pour un annuaire Microsoft Active Directory sur site.

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } ONPREM.COM = { kdc = onprem.com admin_server = onprem.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM .onprem.com = ONPREM.COM onprem.com = ONPREM.COM .rds.amazonaws.com = EXAMPLE.COM .amazonaws.com.cn = EXAMPLE.COM .amazon.com = EXAMPLE.COM

Étape 8 : (Facultatif) Configurer la comparaison des noms d'utilisateur sans distinction de casse

Par défaut, la casse des caractères du nom d'utilisateur de base de données MySQL doit correspondre à celle de l'identifiant Active Directory. Cependant, vous pouvez désormais utiliser la comparaison des noms d'utilisateur sans distinction de casse avec le plug-in authentication_kerberos. Pour ce faire, vous devez définir le paramètre authentication_kerberos_caseins_cmp de cluster de bases de données sur true.

Pour utiliser la comparaison des noms d'utilisateur sans distinction de casse
  1. Créez un groupe personnalisé de paramètres de cluster de bases de données. Suivez la procédure fournie dans Création d'un groupe de paramètres de cluster de base de données.

  2. Modifiez le nouveau groupe de paramètres pour définir la valeur de authentication_kerberos_caseins_cmp sur true. Suivez la procédure fournie dans Modification de paramètres dans un groupe de paramètres de cluster de base de données.

  3. Associez le groupe de paramètres de cluster de bases de données à votre cluster de bases de données Aurora MySQL. Suivez la procédure fournie dans Associer un groupe de paramètres de cluster de base de données à un cluster de base de données.

  4. Redémarrez le cluster de bases de données.