Configuration de l'authentification Kerberos pour les clusters de base de données PostgreSQL - 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 base de données PostgreSQL

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 deux serveurs DNS pour vous. 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 annuaire, AWS Directory Service exécute les tâches suivantes en votre nom :

  • Configuration d'un annuaire Active Directory dans votre 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.

    Important

    Assurez-vous d'enregistrer ce mot de passe. AWS Directory Service ne stocke pas ce mot de passe et il ne peut pas être récupéré ou réinitialisé.

  • Création d'un groupe de sécurité pour les contrôleurs de l'annuaire. Le groupe de sécurité doit autoriser la communication avec le cluster de base de données PostgreSQL.

Lorsque vous lancez AWS Directory Service for Microsoft Active Directory, 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 entré 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 Admin compte 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é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 modules Active Directory et DNS (Domain Name Service) pour Windows PowerShell 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. Dans le panneau de navigation de la console AWS Directory Service, choisissez Directories (Répertoires), puis Set up directory (Configurer le répertoire).

  2. Choisissez AWS Managed Microsoft AD. AWS Managed Microsoft AD est la seule option actuellement prise en charge pour être utilisée avec Amazon Aurora.

  3. Choisissez Suivant.

  4. Sur la page Enter directory information (Saisir les détails du répertoire), renseignez les informations suivantes :

    Edition

    Choisissez l'édition qui correspond à vos besoins.

    Nom de DNS de l'annuaire

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

    Nom NetBIOS de l'annuaire

    Nom court facultatif pour l'annuaire, par exemple CORP.

    Description de l'annuaire

    Description facultative 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 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.

    Important

    Assurez-vous d'enregistrer ce mot de passe. AWS Directory Service ne stocke pas ce mot de passe et il ne peut pas être récupéré ou réinitialisé.

  5. Choisissez Suivant.

  6. Sur la page Choose VPC and subnets (Choisir un VPC et des sous-réseaux), indiquez les informations suivantes :

    VPC

    Sélectionnez le VPC pour l'annuaire. Vous pouvez créer le cluster de base de données PostgreSQL dans ce même VPC ou dans un autre VPC.

    Sous-réseaux

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

  7. Choisissez Suivant.

  8. Vérifiez les informations du répertoire. Si vous devez apporter des modifications, choisissez Previous (Précédent) et entrez ces modifications. Lorsque les informations sont correctes, choisissez Create directory (Créer l'annuaire).

    Page de détails de l'annuaire

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

Pour consulter les informations relatives à votre annuaire, choisissez l'ID de l'annuaire dans la liste. Notez la valeur de Directory ID (ID du répertoire). Vous en aurez besoin pour créer ou modifier votre instance de base de données PostgreSQL.

Image de la page de détails

Étape 2 : (Facultatif) Créez une relation de confiance entre votre Active Directory local et AWS Directory Service

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 Amazon Aurora (Amazon au AWS Directory Service.

Pour obtenir l'authentification Kerberos à l'aide de votre Active Directory local, vous devez créer une relation de domaine de confiance à l'aide d'une approbation forestière entre votre Microsoft Active Directory local et l' AWS Managed Microsoft AD annuaire (créé dans). Étape 1 : créer un répertoire à l'aide de AWS Managed Microsoft AD La confiance peut être unidirectionnelle, lorsque l' AWS Managed Microsoft AD annuaire fait confiance à Microsoft Active Directory local. 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 à l'aide AWS Directory Service de la section Quand créer une relation de confiance dans le Guide d'AWS Directory Service administration.

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 endpoint plutôt que rds.amazonaws.com. Pour plus d’informations, consultez Connexion à PostgreSQL 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 situés uniquement dans la base de données principale Région AWS de la base de données globale.

    • Les clients Windows ne peuvent pas se connecter à l'aide des points de terminaison du cluster dans le secondaire Régions AWS.

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 Amazon Aurora (Amazon au AWS Directory Service

Pour qu'Amazon Aurora puisse vous appeler AWS Directory Service , votre AWS compte a besoin d'un rôle IAM qui utilise la politique IAM gérée. AmazonRDSDirectoryServiceAccess Ce rôle permet à Amazon Aurora d'appeler AWS Directory Service. (Notez que le rôle IAM auquel accéder AWS Directory Service est différent du rôle IAM utilisé.) Authentification de base de données IAM

Lorsque vous créez une instance de base de données à l'aide de AWS Management Console et que votre compte utilisateur de console dispose de l'iam:CreateRoleautorisation, la console crée automatiquement le rôle IAM nécessaire. 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 Microsoft SQL Server ne peut pas être utilisé pour Amazon Aurora.

Vous pouvez également créer des stratégies avec les autorisations obligatoires au lieu d'utiliser la politique gérée 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 à l'aide de l'outil Active Directory Users and Computers (Utilisateurs et ordinateurs Active Directory). Cet outil fait partie des outils Services AD DS (Active Directory Domain Services) et Services AD LDS (Active Directory Lightweight Directory Services). Pour plus d'informations, consultez Ajouter des utilisateurs et des ordinateurs au domaine Active Directory dans la documentation Microsoft. Dans ce cas, les utilisateurs sont des individus ou d'autres entités, tels que leurs ordinateurs, qui font partie du domaine et dont les identités sont conservées dans l'annuaire.

Pour créer des utilisateurs dans un AWS Directory Service annuaire, vous devez être connecté à une instance Amazon EC2 basée sur Windows qui est membre de AWS Directory Service l'annuaire. Parallèlement, vous devez être connecté en tant qu'utilisateur disposant de privilèges pour créer des utilisateurs. Pour plus d'informations, consultez Créer un utilisateur dans le Guide d'administration AWS Directory Service .

Étape 5 : Activer le trafic entre VPC entre le répertoire et l'instance de base de données

Si vous avez l'intention de rechercher le répertoire et le cluster de base de données dans le même VPC, ignorez cette étape et passez à Étape 6 : Créer ou modifier une instance de de bases de données PostgreSQL.

Si vous avez l'intention de rechercher le répertoire et l'instance de base de données dans des VPC différents, configurez le trafic entre VPC à l'aide de l'appairage de VPC ou à l'aide de AWS Transit Gateway.

La procédure suivante active le trafic entre les VPC à l'aide de l'appairage de VPC. Suivez les instructions de Qu'est-ce que l'appairage de VPC ? dans le Guide de l'appairage Amazon Virtual Private Cloud.

Pour activer le trafic entre VPC à l'aide de l'appairage de VPC
  1. Configurez les règles de routage de VPC appropriées afin de veiller à ce que le trafic réseau puisse être acheminé dans les deux sens.

  2. Veillez à ce que le groupe de sécurité de l'instance de base de données puisse recevoir le trafic entrant depuis le groupe de sécurité de l'annuaire.

  3. Assurez-vous qu'il n'existe aucune règle de liste de contrôle d'accès (ACL) pour bloquer le trafic.

Si le répertoire appartient à un autre AWS compte, vous devez le partager.

Pour partager le répertoire entre AWS comptes
  1. Commencez à partager le répertoire avec le AWS compte dans lequel l'instance de base de données sera créée en suivant les instructions du didacticiel : Partage de votre répertoire Microsoft AD AWS géré pour une connexion fluide à un domaine EC2 dans le AWS Directory Service guide d'administration.

  2. Connectez-vous à la AWS Directory Service console à l'aide du compte de l'instance de base de données et assurez-vous que le domaine possède le SHARED statut requis avant de continuer.

  3. Lorsque vous êtes connecté à la AWS Directory Service console à l'aide du compte de l'instance de base de données, notez la valeur de l'ID du répertoire. Vous utilisez cet ID pour joindre l'instance de base de données au domaine.

Étape 6 : Créer ou modifier une instance de de bases de données PostgreSQL

Créez ou modifiez un cluster de base de données PostgreSQL en vue de son utilisation avec votre répertoire. Vous pouvez utiliser la console, la CLI ou l'API RDS pour associer un cluster de base de données à un répertoire. Vous pouvez effectuer cette opération de différentes manières :

L'authentification Kerberos est uniquement prise en charge pour les clusters de base de données PostgreSQL dans un VPC. Le cluster de base de données peut se trouver dans le même VPC que le répertoire ou dans un autre VPC. Le cluster de base de données doit utiliser un groupe de sécurité qui accepte les entrées et les sorties dans le VPC du répertoire pour permettre au cluster de base de données de communiquer avec le répertoire.

Note

L'activation de l'authentification Kerberos n'est actuellement pas prise en charge sur le cluster de base de données Aurora PostgreSQL lors de la migration depuis RDS pour PostgreSQL. Vous pouvez activer l'authentification Kerberos uniquement sur un cluster de base de données Aurora PostgreSQL autonome.

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). Ensuite, choisissez Browse Directory (Parcourir le répertoire). Sélectionnez le répertoire ou choisissez Create a new directory (Créer un nouveau répertoire) pour utiliser Directory Service.

Choisissez Kerberos pour authentifier et identifier le répertoire à utiliser.

Lorsque vous utilisez le AWS CLI, les paramètres suivants sont requis pour que l' de cluster de base de données puisse utiliser le répertoire 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 un cluster de base de données de façon à utiliser un répertoire.

aws rds modify-db-cluster --db-cluster-identifier mydbinstance --domain d-Directory-ID --domain-iam-role-name role-name
Important

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

Étape 7 : Créer des utilisateurs PostgreSQL pour vos principaux Kerberos

À ce stade, votre cluster de bases de données Aurora PostgreSQL est joint au domaine AWS Managed Microsoft AD . Les utilisateurs que vous avez créés dans l'annuaire dans Étape 4 : Créer et configurer des utilisateurs doivent être configurés en tant qu'utilisateurs de base de données PostgreSQL et bénéficier de privilèges leur permettant de se connecter à la base de données. Pour ce faire, vous devez vous connecter en tant qu'utilisateur de base de données doté de privilèges rds_superuser. Par exemple, si vous avez accepté les valeurs par défaut lors de la création de votre cluster de bases de données Aurora PostgreSQL, vous utilisez postgres, comme indiqué dans les étapes suivantes.

Pour créer des utilisateurs de base de données PostgreSQL pour les principaux Kerberos
  1. Utilisez psql pour vous connecter à votre point de terminaison d'instance de base de données du cluster de bases de données Aurora PostgreSQL à l'aide de psql. L'exemple suivant utilise le compte postgres par défaut pour le rôle rds_superuser.

    psql --host=cluster-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. Créez un nom d'utilisateur de base de données pour chaque principal Kerberos (nom d'utilisateur Active Directory) auquel vous souhaitez accorder l'accès à la base de données. Utilisez le nom d'utilisateur canonique (identité) tel que défini dans l'instance Active Directory, c'est-à-dire un alias en minuscule (nom d'utilisateur dans Active Directory) et le nom en majuscule du domaine Active Directory pour ce nom d'utilisateur. Le nom d'utilisateur Active Directory est un utilisateur authentifié de manière externe. Utilisez donc des guillemets autour du nom, comme indiqué ci-dessous.

    postgres=> CREATE USER "username@CORP.EXAMPLE.COM" WITH LOGIN; CREATE ROLE
  3. Accordez le rôle rds_ad à l'utilisateur de la base de données.

    postgres=> GRANT rds_ad TO "username@CORP.EXAMPLE.COM"; GRANT ROLE

Une fois que vous avez fini de créer tous les utilisateurs PostgreSQL pour vos identités utilisateur Active Directory, les utilisateurs peuvent accéder au cluster de bases de données Aurora PostgreSQL à l'aide de leurs informations d'identification Kerberos.

Les utilisateurs de base de données qui s'authentifient à l'aide de Kerberos doivent le faire à partir de machines clientes membres du domaine Active Directory.

Les utilisateurs de base de données auxquels le rôle rds_ad a été attribué ne peuvent pas disposer également du rôle rds_iam. Cela s'applique également aux adhésions imbriquées. Pour plus d’informations, consultez Authentification de base de données IAM.

Configuration de votre cluster de bases de données Aurora PostgreSQL pour les noms d'utilisateur insensibles à la casse

Les versions 14.5, 13.8, 12.12 et 11.17 d'Aurora PostgreSQL prennent en charge le paramètre PostgreSQL krb_caseins_users. Ce paramètre prend en charge les noms d'utilisateur Active Directory insensibles à la casse. Par défaut, ce paramètre est défini sur false, de sorte que les noms d'utilisateur sont interprétés par Aurora PostgreSQL en tenant compte de la casse. Il s'agit du comportement par défaut de toutes les anciennes versions d'Aurora PostgreSQL. Toutefois, vous pouvez définir ce paramètre sur true dans le groupe de paramètres de votre cluster de bases de données personnalisé et autoriser votre cluster de bases de données Aurora PostgreSQL à interpréter les noms d'utilisateur, sans tenir compte de la casse. Pensez à le faire pour faciliter la tâche de vos utilisateurs de base de données, qui peuvent parfois se tromper dans la casse de leur nom d'utilisateur lorsqu'ils s'authentifient à l'aide d'Active Directory.

Pour modifier le paramètre krb_caseins_users, votre cluster de bases de données Aurora PostgreSQL doit utiliser un groupe de paramètres de cluster de bases de données personnalisé. Pour obtenir des informations sur l'utilisation d'un groupe de paramètres de cluster de bases de données, consultez Utilisation des groupes de paramètres.

Vous pouvez utiliser le AWS CLI ou le AWS Management Console pour modifier le réglage. Pour plus d’informations, consultez Modification de paramètres dans un groupe de paramètres de cluster de base de données.

Étape 8 : Configurer un client PostgreSQL

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

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

  • Vérifiez que le trafic peut circuler entre l'hôte 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.

  • 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 psql pour vous connecter à la base de données et y accéder.

Voici un exemple de contenu du fichier 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 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