

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 l’authentification Kerberos avec Amazon RDS pour PostgreSQL
<a name="postgresql-kerberos"></a>

Vous pouvez utiliser Kerberos pour authentifier les utilisateurs lorsqu’ils se connectent à votre instance de base de données qui exécute PostgreSQL. Pour ce faire, configurez votre instance de de base de données à utiliser AWS Directory Service for Microsoft Active Directory pour l'authentification Kerberos. AWS Directory Service for Microsoft Active Directory est également appelé AWS Managed Microsoft AD. C'est une fonctionnalité disponible avec Directory Service. Pour en savoir plus, consultez [Qu'est-ce que c'est Directory Service ?](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) dans le *Guide AWS Directory Service d'administration*.

Pour commencer, créez un AWS Managed Microsoft AD répertoire pour stocker les informations d'identification des utilisateurs. Vous fournissez ensuite à votre instance de base de données PostgreSQL le domaine d’Active Directory ainsi que d’autres informations. Lorsque les utilisateurs s’authentifient auprès de l’instance de de bases de données PostgreSQL, les demandes d’authentification sont transférées vers l’annuaire AWS Managed Microsoft AD . 

Vous pouvez gagner du temps et de l’argent en conservant toutes les informations d’identification dans le même annuaire. Vous avez 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.

Vous pouvez également accéder aux informations d’identification à partir de votre propre annuaire Microsoft Active Directory sur site. Pour ce faire, vous créez une relation de domaine d’approbation afin que l’annuaire AWS Managed Microsoft AD approuve votre annuaire Microsoft Active Directory sur site. De cette façon, vos utilisateurs peuvent accéder à vos instances PostgreSQL avec la même expérience d’authentification unique (SSO) Windows que lorsqu’ils accèdent aux charges de travail de votre réseau sur site.

Une base de données peut utiliser l'authentification par mot de passe ou l'authentification par mot de passe avec l'authentification Kerberos ou Gestion des identités et des accès AWS (IAM). Pour plus d’informations sur l’authentification IAM, consultez [Authentification de base de données IAMpour MariaDB, MySQL et PostgreSQL](UsingWithRDS.IAMDBAuth.md). 

**Note**  
RDS pour PostgreSQL ne prend pas en charge l’authentification Kerberos pour les groupes Active Directory.

**Topics**
+ [Disponibilité des régions et des versions](#postgresql-kerberos.RegionVersionAvailability)
+ [Présentation de l’authentification Kerberos pour les instances de base de données PostgreSQL](#postgresql-kerberos-overview)
+ [Configuration de l’authentification Kerberos pour les instances de base de données PostgreSQL](postgresql-kerberos-setting-up.md)
+ [Gestion d'une RDS pour PostgreSQL dans un domaine Active Directory](postgresql-kerberos-managing.md)
+ [Connexion à PostgreSQL avec l’authentification Kerberos](postgresql-kerberos-connecting.md)

## Disponibilité des régions et des versions
<a name="postgresql-kerberos.RegionVersionAvailability"></a>

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 de RDS pour PostgreSQL avec authentification Kerberos, consultez [Régions et moteurs de base de données pris en charge pour l’authentification Kerberos dans Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md).

## Présentation de l’authentification Kerberos pour les instances de base de données PostgreSQL
<a name="postgresql-kerberos-overview"></a>

Pour configurer l’authentification Kerberos pour une instance de base de données PostgreSQL, exécutez les étapes 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 l' Directory Service API pour créer le répertoire. Veillez à ouvrir les ports sortants appropriés sur le groupe de sécurité de répertoire afin que le répertoire puisse communiquer avec l’instance.

1. Créez un rôle qui fournit à un accès Amazon RDS pour passer des appels vers votre AWS Managed Microsoft AD annuaire. Pour ce faire, créez un rôle Gestion des identités et des accès AWS (IAM) qui utilise la politique IAM gérée. `AmazonRDSDirectoryServiceAccess` 

   Pour que le rôle IAM autorise l'accès, le point de terminaison AWS Security Token Service (AWS STS) doit être activé dans la AWS région appropriée pour votre 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 une AWS région](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate) dans le guide de l'*utilisateur IAM*.

1. 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 AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html) dans le *Guide d'Directory Service administration*.

1. Si vous prévoyez de localiser le répertoire et l'instance de base de données dans différents AWS comptes ou clouds privés virtuels (VPCs), configurez le peering VPC. Pour plus d’informations, consultez [Qu’est-ce que l’appairage de VPC ?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) dans le *Guide d’appairage de VPC Amazon*.

1. Créez ou modifiez une instance de base de données PostgreSQL depuis la console, la CLI ou l’API RDS à l’aide de l’une des méthodes suivantes :
   + [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md) 
   + [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md) 
   + [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md)
   + [Restauration d’une instance de base de données à un instant précis pour Amazon RDS](USER_PIT.md)

   Vous pouvez localiser l'instance de dans le même Amazon Virtual Private Cloud (VPC) que le répertoire ou dans un autre compte AWS ou VPC. Lors de la création ou de la modification de l’instance de base de données PostgreSQL, procédez comme suit :
   + Fournissez l’identifiant du domaine (identifiant `d-*`) qui a été généré lors de la création de votre annuaire.
   + Fournissez le nom du rôle IAM que vous avez créé.
   + 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.

1. Utilisez les informations d’identification de l’utilisateur principal RDS pour vous connecter à l’instance de base de données PostgreSQL. Créez l’utilisateur dans PostgreSQL en vue de son identification externe. Les utilisateurs identifiés en externe peuvent se connecter à l’instance de base de données PostgreSQL à l’aide de l’authentification Kerberos.

# Configuration de l’authentification Kerberos pour les instances de base de données PostgreSQL
<a name="postgresql-kerberos-setting-up"></a>

 Pour configurer l’authentification Kerberos, procédez comme suit : 

**Topics**
+ [Étape 1 : créer un répertoire à l'aide de AWS Managed Microsoft AD](#postgresql-kerberos-setting-up.create-directory)
+ [Étape 2 : (Facultatif) Créez une relation de confiance entre votre Active Directory local et Directory Service](#postgresql-kerberos-setting-up.create-trust)
+ [Étape 3 : créer un rôle IAM pour RDS) afin d'accéder au Directory Service](#postgresql-kerberos-setting-up.CreateIAMRole)
+ [Étape 4 : Créer et configurer des utilisateurs](#postgresql-kerberos-setting-up.create-users)
+ [Étape 5 : Activer le trafic entre VPC entre le répertoire et l’instance de base de données](#postgresql-kerberos-setting-up.vpc-peering)
+ [Étape 6 : Créer ou modifier une de cluster de bases de données PostgreSQL](#postgresql-kerberos-setting-up.create-modify)
+ [Étape 7 : Créer des utilisateurs PostgreSQL pour vos principaux Kerberos](#postgresql-kerberos-setting-up.create-logins)
+ [Étape 8 : Configurer un client PostgreSQL](#postgresql-kerberos-setting-up.configure-client)

## Étape 1 : créer un répertoire à l'aide de AWS Managed Microsoft AD
<a name="postgresql-kerberos-setting-up.create-directory"></a>

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 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. 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é organisationnelle, 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é organisationnelle 
+ 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 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 Directory Service](https://console.aws.amazon.com/directoryservicev2/), choisissez **Directories** (Répertoires), puis **Set up directory** (Configurer le répertoire). 

1. Choisissez **AWS Managed Microsoft AD**. AWS Managed Microsoft AD est la seule option actuellement prise en charge pour une utilisation avec Amazon RDS. 

1. Choisissez **Suivant**.

1. 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 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 (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"’<>,.?/)   
**Confirmer le mot de passe**  
 Saisissez à nouveau le mot de passe de l’administrateur.   
Assurez-vous d'enregistrer ce mot de passe. Directory Service ne stocke pas ce mot de passe et il ne peut pas être récupéré ou réinitialisé.

1. Choisissez **Suivant**.

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

1. Choisissez **Suivant**.

1.  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\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

 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\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## Étape 2 : (Facultatif) Créez une relation de confiance entre votre Active Directory local et Directory Service
<a name="postgresql-kerberos-setting-up.create-trust"></a>

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 Directory Service](#postgresql-kerberos-setting-up.CreateIAMRole).

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](#postgresql-kerberos-setting-up.create-directory) 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 Directory Service de la section Quand créer une relation de confiance](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) 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 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](postgresql-kerberos-connecting.md). 

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\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/kerberos-auth-trust.png)


## Étape 3 : créer un rôle IAM pour RDS) afin d'accéder au Directory Service
<a name="postgresql-kerberos-setting-up.CreateIAMRole"></a>

Pour qu' Amazon RDS puisse vous appeler 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 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:CreateRole`autorisation, 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 IAM`Directory 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 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 pour 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 :

------
#### [ 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": "*"
    }
  ]
}
```

------

Pour l'opt-in Régions AWS, utilisez les principes de service spécifiques à la région dans les politiques de confiance des rôles IAM. Lorsque vous créez une stratégie d’approbation pour les services dans ces régions, indiquez le code de région dans le principal de service.

L’exemple suivant présente une stratégie d’approbation qui fait appel à des principaux de service spécifiques à la région :

------
#### [ JSON ]

****  

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

------

Remplacez REGION-CODE par le code de votre région spécifique. Utilisez par exemple les principaux de service suivants pour la région Asie-Pacifique (Melbourne) :

```
"Service": [
  "directoryservice.rds.ap-southeast-4.amazonaws.com",
  "rds.ap-southeast-4.amazonaws.com"
]
```

## Étape 4 : Créer et configurer des utilisateurs
<a name="postgresql-kerberos-setting-up.create-users"></a>

 Vous pouvez créer des utilisateurs à l’aide de l’outil Active Directory Users and Computers. C’est l’un des outils Active Directory Domain Services et Active Directory Lightweight Directory Services. Pour plus d’informations, consultez [Ajouter des utilisateurs et des ordinateurs au domaine Active Directory](https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/create-an-active-directory-server#add-users-and-computers-to-the-active-directory-domain) 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 Directory Service annuaire, vous devez être connecté à une instance Amazon EC2 basée sur Windows qui est membre de 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](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html) 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
<a name="postgresql-kerberos-setting-up.vpc-peering"></a>

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](#postgresql-kerberos-setting-up.create-modify).

[Si vous prévoyez de localiser le répertoire et l'instance de base de données différemment VPCs, configurez le trafic inter-VPC à l'aide du peering VPC ou de Transit Gateway.AWS](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)

La procédure suivante active le trafic entre les utilisateurs de VPCs l'appairage VPC. Suivez les instructions de [Qu’est-ce que l’appairage de VPC ?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) 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.

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

1. 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 Directory Service guide](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html) d'administration.*

1. Connectez-vous à la 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.

1. Lorsque vous êtes connecté à la 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 d’annuaire 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
<a name="postgresql-kerberos-setting-up.create-modify"></a>

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 :
+  Créez une nouvelle instance de base de données PostgreSQL à l'aide de la console, de la commande [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)CLI ou de l'opération DBInstance Create [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) API. Pour obtenir des instructions, veuillez consulter [Création d'une instance de base de données Amazon RDS](USER_CreateDBInstance.md).
+  Modifiez une instance de base de données PostgreSQL existante à l'aide de la console, de la commande [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI ou de l'opération DBInstance Modify [RDS](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API. Pour obtenir des instructions, veuillez consulter [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md). 
+  [Restaurez une instance de base de données PostgreSQL à partir d'un instantané de base de données à l'aide de la console, de la commande CLI [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) ou de l'opération Restore From RDS API. DBInstance DBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) Pour obtenir des instructions, veuillez consulter [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md). 
+  Restaurez une instance de base de données PostgreSQL à point-in-time l'aide de la console, de la commande [restore-db-instance-to- point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI ou de l'opération DBInstance ToPointInTime Restore [RDS API](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html). Pour obtenir des instructions, veuillez consulter [Restauration d’une instance de base de données à un instant précis pour Amazon RDS](USER_PIT.md). 

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.

### Console
<a name="postgresql-kerberos-setting-up.create-modify.Console"></a>

Lorsque vous utilisez la console pour créer, modifier ou restaurer une instance de bases de données, choisissez **Mot de passe et authentification Kerberos** dans la section **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.\]](http://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/images/rpg-authentication-use-kerberos.png)


### AWS CLI
<a name="postgresql-kerberos-setting-up.create-modify.CLI"></a>

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-\$1 ») 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
<a name="postgresql-kerberos-setting-up.create-logins"></a>

À ce stade, votre instance de base de données RDS pour 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](#postgresql-kerberos-setting-up.create-users) 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 pour 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 pour 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
   ```

1. 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
   ```

1. 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 pour PostgreSQL à l’aide de leurs informations d’identification Kerberos. 

Les utilisateurs de base de données qui s’authentifient à l’aide de Kerberos doivent utiliser des 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 IAMpour MariaDB, MySQL et PostgreSQL](UsingWithRDS.IAMDBAuth.md). 

## Étape 8 : Configurer un client PostgreSQL
<a name="postgresql-kerberos-setting-up.configure-client"></a>

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 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 dépassé TCP/UDP pour le port 53 et pour Kerberos, qui inclut les ports 88 et 464 pour. 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.rproxy.goskope.com.cn = EXAMPLE.COM
 .amazon.com = EXAMPLE.COM
```

# Gestion d'une RDS pour PostgreSQL dans un domaine Active Directory
<a name="postgresql-kerberos-managing"></a>

Vous pouvez utiliser la console, la CLI ou l’API RDS pour gérer votre instance de base de données et sa relation avec Microsoft Active Directory. Par exemple, vous pouvez associer un annuaire Active Directory de façon à activer l’authentification Kerberos. Vous pouvez également supprimer l’association d’un annuaire Active Directory pour désactiver l’authentification Kerberos. Vous pouvez également transférer une instance de base de données vers un autre élément de même type afin de subir une authentification en externe par un annuaire Microsoft Active Directory.

Par exemple, la CLI vous permet d’effectuer les actions suivantes :
+ Pour réessayer d'activer l'authentification Kerberos en cas d'échec d'adhésion, utilisez la commande CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html). Spécifiez l’ID d’annuaire du membre actuel pour l’option `--domain`.
+ Pour désactiver l'authentification Kerberos sur une instance de base de données, utilisez la commande [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI. Spécifiez `none` pour l’option `--domain`.
+ Pour déplacer une instance de base de données d'un domaine à un autre, utilisez la commande [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI. Spécifiez l’identifiant du nouveau domaine pour l’option `--domain`.

## Présentation de l’appartenance au domaine
<a name="postgresql-kerberos-managing.understanding"></a>

Une fois que vous avez créé ou modifié votre instance de base de données, il devient membre du domaine. Vous pouvez consulter l'état de l'appartenance au domaine dans la console ou en exécutant la commande [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)CLI. 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 AWS empêché l'activation de l'authentification Kerberos sur l'instance de base de données. Corrigez le problème de configuration avant de réémettre 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. Dans certains cas, la tentative d’activation de l’authentification Kerberos peut échouer lorsque vous créez ou modifiez une instance de base de données. Si tel est le cas, vérifiez que vous utilisez le rôle IAM correct, puis modifiez l’instance de base de données afin d’effectuer son rattachement au domaine.

**Note**  
Seule l’authentification Kerberos avec RDS pour PostgreSQL envoie le trafic aux serveurs DNS du domaine. Toutes les autres demandes DNS sont traitées comme un accès réseau sortant sur vos instances de bases de données exécutant PostgreSQL. Pour plus d’informations sur l’accès réseau sortant avec RDS pour PostgreSQL, consultez [Utilisation d'un serveur DNS personnalisé pour l'accès réseau sortant.](Appendix.PostgreSQL.CommonDBATasks.CustomDNS.md).

# Connexion à PostgreSQL avec l’authentification Kerberos
<a name="postgresql-kerberos-connecting"></a>

Vous pouvez vous connecter à PostgreSQL via l’authentification Kerberos avec l’interface pgAdmin ou avec une CLI telle que psql. Pour plus d’informations sur la connexion, consultez [Connexion à une instance de base de données exécutant le moteur de base de données PostgreSQL](USER_ConnectToPostgreSQLInstance.md) . Pour plus d’informations sur l’obtention du point de terminaison, du numéro de port et d’autres détails nécessaires à la connexion, consultez [Se connecter à une instance DB PostgreSQL](CHAP_GettingStarted.CreatingConnecting.PostgreSQL.md#CHAP_GettingStarted.Connecting.PostgreSQL). 

**Note**  
L’authentification et le chiffrement GSSAPI dans PostgreSQL sont implémentés par la bibliothèque Kerberos `libkrb5.so`. Des fonctionnalités telles que `postgres_fdw` et `dblink` s’appuient également sur cette même bibliothèque pour établir des connexions sortantes nécessitant une authentification ou un chiffrement Kerberos.

## pgAdmin
<a name="collapsible-section-pgAdmin"></a>

Pour vous connecter à PostgreSQL avec l’authentification Kerberos en utilisant pgAdmin, procédez comme suit :

1. Lancez l’application pgAdmin sur votre ordinateur client.

1. Dans l’onglet **Dashboard** (Tableau de bord), choisissez **Add New Server** (Ajouter un nouveau serveur).

1. Dans la boîte de dialogue **Créer : serveur**, entrez un nom sur l’onglet **Général** pour identifier le serveur dans pgAdmin.

1. Dans l’onglet **Connection** (Connexion), entrez les informations suivantes à partir de votre base de données RDS pour PostgreSQL. 
   + Pour **Host** (Hôte), entrez le point de terminaison de . Instance de base de données RDS pour PostgreSQL. Un point de terminaison ressemble à ce qui suit :

     ```
     RDS-DB-instance.111122223333.aws-region.rds.amazonaws.com
     ```

     Pour vous connecter à un Microsoft Active Directory local à partir d'un client Windows, vous devez utiliser le nom de domaine du AWS Managed Active Directory plutôt que celui du point `rds.amazonaws.com` de terminaison hôte. Supposons, par exemple, que le nom de domaine de AWS Managed Active Directory soit`corp.example.com`. Puis, pour **Host** (Hôte), le point de terminaison serait spécifié comme suit : 

     ```
     RDS-DB-instance.111122223333.aws-region.corp.example.com
     ```
   + Pour **Port**, entrez le port attribué. 
   + Pour **Maintenance database** (Base de données de maintenance), entrez le nom de la base de données initiale à laquelle le client se connectera.
   + Pour **Username** (Nom d’utilisateur), saisissez le nom d’utilisateur que vous avez entré pour l’authentification Kerberos dans [Étape 7 : Créer des utilisateurs PostgreSQL pour vos principaux Kerberos](postgresql-kerberos-setting-up.md#postgresql-kerberos-setting-up.create-logins). 

1. Choisissez **Enregistrer**.

## Psql
<a name="collapsible-section-psql"></a>

Pour vous connecter à PostgreSQL avec l’authentification Kerberos en utilisant psql, procédez comme suit :

1. A partir d’une invite de commande, exécutez la commande suivante.

   ```
   kinit username                
   ```

   Remplacez *`username`* par le nom de l’utilisateur. À l’invite, entrez le mot de passe stocké dans le Microsoft Active Directory pour l’utilisateur.

1. Si l’instance de base de données PostgreSQL utilise un VPC accessible au public, placez une adresse IP pour le point de terminaison de votre instance de base de données dans votre fichier `/etc/hosts` sur le client EC2. Par exemple, les commandes suivantes permettent d’obtenir l’adresse IP et de la placer dans le fichier `/etc/hosts`.

   ```
   % dig +short PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com  
   ;; Truncated, retrying in TCP mode.
   ec2-34-210-197-118.AWS-Region.compute.amazonaws.com.
   34.210.197.118 
   
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com" >> /etc/hosts
   ```

   Si vous utilisez une instance Microsoft Active Directory sur site à partir d’un client Windows, vous devez vous connecter à l’aide d’un point de terminaison spécifique. Au lieu d'utiliser le domaine Amazon `rds.amazonaws.com` dans le point de terminaison hôte, utilisez le nom de domaine du AWS Managed Active Directory.

   Supposons, par exemple, que le nom de domaine de votre annuaire Active Directory AWS géré soit`corp.example.com`. Alors, utilisez le format `PostgreSQL-endpoint.AWS-Region.corp.example.com` pour le point de terminaison et placez-le dans le fichier `/etc/hosts`.

   ```
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.corp.example.com" >> /etc/hosts
   ```

1. Utilisez la commande psql suivante pour vous connecter à une instance de base de données PostgreSQL intégré(e) à Active Directory. 

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com postgres
   ```

   Pour vous connecter au cluster de bases de données PostgreSQL à partir d’un client Windows à l’aide d’un Active Directory sur site, utilisez la commande psql suivante avec le nom de domaine de l’étape précédente (`corp.example.com`):

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.corp.example.com postgres
   ```