Utilisation de Kerberos l'authentification pour Amazon RDS for MySQL - 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.

Utilisation de Kerberos l'authentification pour Amazon RDS for MySQL

Vous pouvez utiliser l'authentification Kerberos pour authentifier les utilisateurs lorsqu'ils se connectent à votre instance de base de données MySQL. L'instance de base de données fonctionne avec AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) pour activer l'authentification Kerberos. Lorsque les utilisateurs s'authentifient avec une instance de base de données MySQL jointe au domaine d'approbation, les demandes d'authentification sont transférées. Les demandes transférées sont redirigées vers le répertoire de domaines que vous avez créé AWS Directory Service.

Vous pouvez gagner du temps et de l'argent en conservant toutes les informations d'identification dans le même annuaire. Cette approche vous permet d'avoir un endroit centralisé de stockage et de gestion des informations d'identification pour plusieurs instances de base de données. L'utilisation d'un annuaire peut également améliorer votre profil de sécurité global.

Disponibilité des régions et des versions

La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour obtenir plus d'informations sur la disponibilité des versions et des régions d'Amazon RDS avec authentification Kerberos, consultez Régions et moteurs de base de données pris en charge pour l'authentification Kerberos dans Amazon RDS.

Vue d'ensemble de la configuration de l'authentification Kerberos pour les instances de bases de données MySQL

Pour configurer l'authentification Kerberos pour une instance de base de données MySQL, effectuez les étapes générales suivantes, décrites plus en détails par la suite :

  1. AWS Managed Microsoft AD À utiliser pour créer un AWS Managed Microsoft AD répertoire. Vous pouvez utiliser le AWS Management Console AWS CLI, le ou le AWS Directory Service pour créer le répertoire. Pour plus de détails à ce sujet, consultez la section Créer votre AWS Managed Microsoft AD répertoire dans le Guide d'AWS Directory Service administration.

  2. Créez un rôle AWS Identity and Access Management (IAM) qui utilise la politique IAM gérée. AmazonRDSDirectoryServiceAccess Le rôle autorise Amazon RDS à effectuer des appels vers votre annuaire.

    Pour que le rôle autorise l'accès, le point de terminaison AWS Security Token Service (AWS STS) doit être activé dans le Région AWS AWS compte. AWS STS les points de terminaison sont actifs par défaut dans tous les cas Régions AWS, et vous pouvez les utiliser sans autre action. Pour plus d'informations, consultez la section Activation et désactivation AWS STS dans et Région AWS dans le guide de l'utilisateur IAM.

  3. Créez et configurez des utilisateurs dans l' AWS Managed Microsoft AD annuaire à l'aide des outils Microsoft Active Directory. Pour plus d'informations sur la création d'utilisateurs dans votre Active Directory, voir Gérer les utilisateurs et les groupes dans Microsoft AD AWS géré dans le Guide d'AWS Directory Service administration.

  4. Créez ou modifiez une instance de base de données MySQL. Si vous utilisez CLI ou l'API RDS dans la demande de création, spécifiez un identificateur de domaine avec le paramètre Domain. Utilisez l'identificateur d-* généré lors de la création de votre annuaire et le nom du rôle que vous avez créé.

    Si vous modifiez une instance de base de données MySQL existante pour utiliser l'authentification Kerberos, définissez les paramètres de domaine et de rôle IAM pour l'instance de base de données. Recherchez l'instance de base de données dans le même VPC que l'annuaire de domaine.

  5. Utilisez les informations d'identification de l'utilisateur principal Amazon RDS pour vous connecter à l'instance de base de données MySQL. Créez l'utilisateur dans MySQL en utilisant la clause CREATE USER IDENTIFIED WITH 'auth_pam'. Les utilisateurs que vous créez de cette façon peuvent se connecter à l'instance de base de données MySQL en utilisant l'authentification Kerberos.

Configuration de l'authentification Kerberos pour les instances de base de données MySQL

Vous l'utilisez AWS Managed Microsoft AD pour configurer l'authentification Kerberos pour une instance de base de données MySQL. Pour configurer l'authentification Kerberos, procédez comme suit :

Étape 1 : créer un répertoire à l'aide de AWS Managed Microsoft AD

AWS Directory Service crée un Active Directory entièrement géré dans le AWS cloud. Lorsque vous créez un AWS Managed Microsoft AD annuaire, il AWS Directory Service crée deux contrôleurs de domaine et des serveurs DNS (Domain Name System) 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 AWS Managed Microsoft AD répertoire, il AWS Directory Service exécute 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

    N'oubliez pas d'enregistrer ce mot de passe. 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 un AWS Managed Microsoft AD, AWS crée une unité organisationnelle (UO) qui contient tous les objets de votre répertoire. Cette unité d'organisation, qui porte le nom NetBIOS que vous avez saisi lorsque vous avez créé votre annuaire, est située dans la racine du domaine. La racine du domaine est détenue et gérée par AWS.

Le compte administrateur créé avec votre AWS Managed Microsoft AD annuaire dispose d'autorisations pour les activités administratives les plus courantes de votre unité d'organisation :

  • 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éez des conteneurs OUs 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 répertoire avec AWS Managed Microsoft AD
  1. Connectez-vous à la AWS Directory Service console AWS Management Console et ouvrez-la à 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 actuellement utiliser 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 l'instance de base de données 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).

    La fenêtre Réviser et créer lors de la création du répertoire dans la AWS Directory Service console.

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, car vous avez besoin de cette valeur lorsque vous créez ou modifiez votre instance de base de données MySQL.

La section Détails du répertoire avec l'ID du répertoire dans la AWS Directory Service console.

Étape 2 : Créer le rôle IAM qui sera utilisé par Amazon RDS

Pour qu'Amazon RDS puisse vous appeler AWS Directory Service , un rôle IAM utilisant la politique AmazonRDSDirectoryServiceAccess IAM gérée est requis. Ce rôle permet à Amazon RDS d'appeler l' AWS Directory Service.

Lorsqu'une instance de base de données est créée à l'aide de AWS Management Console et que l'utilisateur de la console dispose de l'iam:CreateRoleautorisation, la console crée automatiquement ce rôle. 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 IAMDirectory Service, choisissez et associez la politique AWS gérée AmazonRDSDirectoryServiceAccess à celui-ci.

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

Note

Le rôle IAM utilisé pour l'authentification Windows pour RDS for SQL Server ne peut pas être utilisé pour RDS for MySQL.

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 :

JSON
{ "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.

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

Étape 3 : 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 AWS Directory Service annuaire, vous devez être connecté à une EC2 instance Amazon basée sur Microsoft Windows. Cette instance doit être membre de l' AWS Directory Service annuaire et être connectée en tant qu'utilisateur autorisé à 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 4 : Créer ou modifier une instance de base de données MySQL

Créez ou modifiez une instance de base de données MySQL à utiliser avec votre annuaire. Vous pouvez utiliser la console, 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 :

L'authentification Kerberos est uniquement prise en charge pour les instances de base de données MySQL dans un VPC. L'instance de base de données peut être dans le même VPC que l'annuaire ou dans un VPC différent. L'instance de base de données doit utiliser un groupe de sécurité qui accepte les sorties du VPC, afin que l'instance de base de données puisse communiquer avec l'annuaire.

Lorsque vous utilisez la console pour créer, modifier ou restaurer une instance de bases de données, choisissez Password and Kerberos authentication (Mot de passe et 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).

La section Authentification de base de données avec mot de passe et authentification Kerberos sélectionnée dans la console Amazon RDS.

Lorsque vous utilisez l'API AWS CLI ou RDS, associez une instance de base de données à un répertoire. Les paramètres suivants sont nécessaires pour que l'instance de base 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 de CLI suivante modifie une instance de base de données de façon à utiliser un annuaire.

Pour LinuxmacOS, ou Unix :

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --domain d-ID \ --domain-iam-role-name role-name

Dans Windows :

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --domain d-ID ^ --domain-iam-role-name role-name
Important

Si vous modifiez une instance de base de données de façon à activer l'authentification Kerberos, redémarrez l'instance de base de données après avoir effectué la modification.

Étape 5 : Créer les connexions MySQL d'authentification Kerberos

Utilisez les informations d'identification de l'utilisateur principal Amazon RDS pour vous connecter à l'instance de base de données MySQL comme vous le faites pour n'importe quelle instance de base de données. L'instance de base de données est jointe au AWS Managed Microsoft AD domaine. Vous pouvez ainsi allouer les connexions et utilisateurs MySQL depuis les utilisateurs Active Directory de votre domaine. Les autorisations de base de données sont gérées via des autorisations MySQL standard qui sont accordées et révoquées à partir de ces connexions.

Vous pouvez autoriser un utilisateur Active Directory à s'authentifier avec MySQL. Pour ce faire, utilisez d'abord les informations d'identification de l'utilisateur principal Amazon RDS pour vous connecter à l'instance de base de données MySQL comme avec n'importe quelle autre instance de base de données. Une fois connecté, créez un utilisateur authentifié en externe avec PAM (Pluggable Authentication Modules) dans MySQL en exécutant la commande suivante. Remplacez testuser par le nom de l'utilisateur.

CREATE USER 'testuser'@'%' IDENTIFIED WITH 'auth_pam';

Les utilisateurs (personnes et applications) de votre domaine peuvent désormais se connecter à l'instance de base de données à partir d'un ordinateur client joint au domaine à l'aide de l'authentification Kerberos.

Important

Nous recommandons vivement aux clients d'utiliser des SSL/TLS connexions lorsqu'ils utilisent l'authentification PAM. S'ils n'utilisent pas de SSL/TLS connexion, le mot de passe peut être envoyé en texte clair dans certains cas. Pour exiger une connexion SSL/TLS cryptée pour votre utilisateur AD, exécutez la commande suivante et remplacez-la testuser par le nom d'utilisateur :

ALTER USER 'testuser'@'%' REQUIRE SSL;

Pour de plus amples informations, veuillez consulter SSL/TLSsupport pour les instances My SQL DB sur Amazon RDS.

Gestion d'une instance de base de données dans un domaine

Vous pouvez utiliser CLI ou l'API RDS pour gérer votre instance de base de données et sa relation avec votre annuaire géré Active Directory. Par exemple, vous pouvez associer un annuaire Active Directory pour l'authentification Kerberos et dissocier un annuaire Active Directory pour désactiver l'authentification Kerberos. Vous pouvez également transférer une instance de base de données vers une autre afin qu'elle soit authentifiée en externe par un annuaire Active Directory.

Par exemple, l'API Amazon RDS vous permet d'effectuer les actions suivantes :

  • Pour retenter l'activation de l'authentification Kerberos en cas d'échec d'appartenance, utilisez l'opération d'API ModifyDBInstance et spécifiez l'ID d'annuaire d'appartenance actuelle.

  • Pour mettre à jour le nom du rôle IAM de l'appartenance, utilisez l'opération d'API ModifyDBInstance et spécifiez l'ID d'annuaire de l'appartenance actuelle et le nouveau rôle IAM.

  • Pour désactiver l'authentification Kerberos sur une instance de base de données, utilisez l'opération d'API ModifyDBInstance et spécifiez none comme paramètre de domaine.

  • Pour déplacer une instance de base de données d'un domaine à un autre, utilisez l'opération d'API ModifyDBInstance et spécifiez l'identifiant du nouveau domaine en tant que paramètre de domaine.

  • Pour répertorier l'appartenance pour chaque instance de base de données, utilisez l'opération d'API DescribeDBInstances.

Présentation de l'appartenance au domaine

Après la création ou la modification de votre instance de base de données, elle devient un membre du domaine. Vous pouvez consulter l'état de l'appartenance au domaine de l'instance de base de données en exécutant la commande describe-db-instancesCLI. Le statut de l'instance de base de données peut avoir les valeurs suivantes :

  • kerberos-enabled – L'instance de base de données a l'authentification Kerberos activée.

  • enabling-kerberos— AWS est en train d'activer l'authentification Kerberos sur cette instance de base de données.

  • pending-enable-kerberos – L'activation de l'authentification Kerberos est en attente sur cette instance de base de données.

  • pending-maintenance-enable-kerberos— AWS tentera d'activer l'authentification Kerberos sur l'instance de base de données lors de la prochaine fenêtre de maintenance planifiée.

  • pending-disable-kerberos – La désactivation de l'authentification Kerberos est en attente sur cette instance de base de données.

  • pending-maintenance-disable-kerberos— AWS tentera de désactiver l'authentification Kerberos sur l'instance de base de données lors de la prochaine fenêtre de maintenance planifiée.

  • enable-kerberos-failed – Un problème de configuration a empêché AWS d'activer l'authentification Kerberos sur l'instance de base de données. Vérifiez et corrigez votre configuration avant d'émettre à nouveau la commande de modification de l'instance de base de données.

  • disabling-kerberos— AWS est en train de désactiver l'authentification Kerberos sur cette instance de base de données.

Une demande d'activation de l'authentification Kerberos peut échouer à cause d'un problème de connectivité réseau ou d'un rôle IAM incorrect. Par exemple, supposons que vous créez une instance de base de données ou modifiez une instance de base de données et que la tentative d'activation de l'authentification Kerberos échoue. Si cela se produit, réémettez la commande modify ou modifiez l'instance de base de données nouvellement créée pour joindre le domaine.

Connexion à MySQL avec l'authentification Kerberos

Pour vous connecter à MySQL avec l'authentification Kerberos, vous devez vous connecter à l'aide du type d'authentification Kerberos.

Pour créer un utilisateur de base de données auquel vous pouvez vous connecter à l'aide de l'authentification Kerberos, utilisez une clause IDENTIFIED WITH avec l'instruction CREATE USER. Pour obtenir des instructions, consultez Étape 5 : Créer les connexions MySQL d'authentification Kerberos.

Pour éviter les erreurs, utilisez le client mysql MariaDB. Vous pouvez télécharger le logiciel MariaDB à l'adresse https://downloads.mariadb.org/.

À partir d'une invite de commande, connectez-vous à un des points de terminaison associés à votre instance de base de données MySQL. Suivez les procédures générales décrites dans Connexion à votre instance de base de données MySQL. Lorsque vous êtes invité à entrer le mot de passe, entrez le mot de passe Kerberos associé à ce nom d'utilisateur.

Restauration d'une instance de base de données MySQL et ajout de cette instance à un domaine

Vous pouvez restaurer un instantané de base de données ou terminer la point-in-time restauration d'une instance de base de données MySQL, puis l'ajouter à un domaine. Une fois que l'instance de base de données est restaurée, modifiez l'instance de base de données à l'aide du processus expliqué dans Étape 4 : Créer ou modifier une instance de base de données MySQL afin d'ajouter l'instance de base de données à un domaine.

Limitations MySQL de l'authentification Kerberos

Les limitations suivantes s'appliquent à l'authentification Kerberos pour MySQL :

  • Seul un AWS Managed Microsoft AD est pris en charge. Toutefois, vous pouvez joindre des instances de base de données RDS for MySQL à des domaines Microsoft AD gérés partagés qui appartiennent à différents comptes dans la même Région AWS.

  • Vous devez redémarrer l'instance de base de données après avoir activé la fonctionnalité.

  • La longueur du nom de domaine ne peut pas dépasser 61 caractères.

  • Vous ne pouvez pas activer l'authentification Kerberos et l'authentification IAM en même temps. Choisissez l'une ou l'autre des méthodes d'authentification pour votre instance de base de données MySQL.

  • Ne modifiez pas le port d'instance de base de données après avoir activé la fonctionnalité.

  • N'utilisez pas l'authentification Kerberos avec les réplicas en lecture.

  • Si la mise à niveau automatique des versions mineures est activée pour une instance de base de données MySQL qui utilise l'authentification Kerberos, vous devez désactiver cette authentification, puis la réactiver après une mise à niveau automatique. Pour plus d'informations sur les mises à niveau automatiques des versions mineures, consultez Mises à niveau automatiques des versions mineures pour RDS for My SQL.

  • Pour supprimer une instance de base de données pour laquelle cette fonctionnalité est activée, désactivez d'abord la fonctionnalité. Pour ce faire, exécutez la commande modify-db-instance CLI pour l'instance de base de données et spécifiez none le --domain paramètre.

    Si vous utilisez CLI ou l'API RDS pour supprimer une instance de base de données pour laquelle cette fonctionnalité est activée, laissez s'écouler un délai.

  • RDS pour MySQL ne prend pas en charge l'authentification Kerberos via une confiance forestière entre votre AD sur site ou auto-hébergé et le. AWS Managed Microsoft AD