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

  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 l'instance 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 RDS afin d'accéder 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 en utilisant 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 Microsoft Active Directory local, les clients Windows se connectent en utilisant le nom de domaine du AWS Directory Service point de terminaison plutôt que rds.amazonaws.com. Pour en savoir plus, veuillez consulter la section Connexion à PostgreSQL avec l'authentification Kerberos.

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 RDS afin d'accéder au AWS Directory Service

Pour qu' Amazon RDS 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 RDS d'appeler AWS Directory Service.

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 RDS for PostgreSQL.

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 l'instance de base de données dans le même VPC, ignorez cette étape et passez à Étape 6 : Créer ou modifier une de cluster 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 de cluster de bases de données PostgreSQL

Créez ou modifiez une instance 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 une instance 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 instances de base de données PostgreSQL dans un VPC. L'instance de base de données peut se trouver dans le même VPC que le répertoire ou dans un autre VPC. L'instance 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 à l'instance de base de données de communiquer avec le répertoire.

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). Ensuite, choisissez Parcourir les annuaires. 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'instance de 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 une instance de base de données de façon à utiliser un répertoire.

aws rds modify-db-instance --db-instance-identifier mydbinstance --domain d-Directory-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 7 : Créer des utilisateurs PostgreSQL pour vos principaux Kerberos

À ce stade, votre instance de base de données RDS for PostgreSQL est jointe 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 instance de base de données RDS for 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 RDS for 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 à l'instance de base de données RDS for PostgreSQL à l'aide de leurs informations d'identification Kerberos.

Nous partons du principe que les utilisateurs de base de données qui s'authentifient à l'aide de Kerberos le font à 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 pour MariaDB, MySQL et PostgreSQL.

É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