

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 la propagation d’identité de confiance avec les pilotes Amazon Athena
<a name="using-trusted-identity-propagation"></a>

La propagation d’identité de confiance fournit une nouvelle option d’authentification aux organisations qui souhaitent centraliser la gestion des autorisations de données et autoriser les demandes en fonction de l’identité de leur fournisseur d’identité (IdP) au-delà des limites des services. Avec IAM Identity Center, vous pouvez configurer un IdP existant pour gérer les utilisateurs et les groupes et l' AWS Lake Formation utiliser pour définir des autorisations de contrôle d'accès détaillées sur les ressources du catalogue pour ces identités IdP. Athena prend en charge la propagation d’identité lors de l’interrogation des données afin d’auditer l’accès aux données par les identités des IdP, le but étant d’aider votre organisation à répondre à ses exigences réglementaires et de conformité.

Vous pouvez désormais vous connecter à Athena à l’aide des pilotes Java Database Connectivity (JDBC) ou Open Database Connectivity (ODBC) et de leurs fonctions d’authentification unique via IAM Identity Center. Lorsque vous accédez à Athena à partir d'outils tels que PowerBI, Tableau DBeaver, votre identité et vos autorisations se propagent automatiquement à Athena via IAM Identity Center. Cela signifie que vos autorisations individuelles d’accès aux données sont appliquées directement lorsque vous interrogez des données, sans nécessiter d’étapes d’authentification distinctes ou la gestion des informations d’identification.

Pour les personnes agissant en tant qu’administrateurs, cette fonctionnalité centralise le contrôle d’accès via IAM Identity Center et Lake Formation, garantissant ainsi une application cohérente des autorisations dans tous les outils d’analyse pris en charge qui se connectent à Athena. Pour commencer, assurez-vous que votre organisation a configuré IAM Identity Center en tant que source d’identité pour vous, et configurez les autorisations d’accès aux données appropriées pour vos utilisateurs.

**Topics**
+ [Définitions clés](#using-trusted-identity-propagation-key-definitions)
+ [Considérations](#using-trusted-identity-propagation-considerations)
+ [Conditions préalables](#using-trusted-identity-propagation-prerequisites)
+ [Connexion d’Athena à IAM Identity Center](using-trusted-identity-propagation-setup.md)
+ [Configurer et déployer des ressources à l'aide de AWS CloudFormation](using-trusted-identity-propagation-cloudformation.md)

## Définitions clés
<a name="using-trusted-identity-propagation-key-definitions"></a>

1. **Rôle d'application : rôle** permettant d'échanger des jetons, de récupérer l'ARN de l'application AWS IAM Identity Center géré par le client et le groupe de travail.

1. **Rôle d’accès** : rôle à utiliser avec les pilotes Athena pour exécuter des flux de travail client à l’aide d’informations d’identification améliorées par l’identité. Cela signifie que ce rôle est nécessaire pour accéder à des services en aval.

1. **Application gérée par le client** : application AWS IAM Identity Center. Pour plus d’informations, consultez [Customer Managed Application](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps.html).

## Considérations
<a name="using-trusted-identity-propagation-considerations"></a>

1. Cette fonctionnalité ne fonctionne que pour les régions dans lesquelles Athena est globalement disponible avec la fonction de propagation d’identité de confiance. Pour plus d’informations sur la disponibilité, consultez [Considerations and Limitations](https://docs.aws.amazon.com/athena/latest/ug/workgroups-identity-center.html).

1. Les pilotes JDBC et ODBC prennent en charge la propagation fiable des identités avec les groupes de travail compatibles IAM.

1. Vous pouvez utiliser JDBC et ODBC en tant que pilotes autonomes ou avec n’importe quel outil d’informatique décisionnelle ou SQL avec fonction de propagation d’identité de confiance qui utilise ce plug-in d’authentification.

## Conditions préalables
<a name="using-trusted-identity-propagation-prerequisites"></a>

1. Une instance AWS IAM Identity Center doit être activée. Pour plus d’informations, consultez [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/identity-center-instances.html) afin d’en savoir plus.

1. Vous devez disposer d'un fournisseur d'identité externe fonctionnel et les utilisateurs ou groupes doivent être présents dans AWS IAM Identity Center. Vous pouvez configurer vos utilisateurs ou groupes automatiquement, manuellement ou à l’aide de SCIM. Pour plus d’informations, consultez [Provisioning an external identity provider into IAM Identity Center using SCIM](https://docs.aws.amazon.com/singlesignon/latest/userguide/provision-automatically.html).

1. Vous devez accorder des autorisations Lake Formation aux utilisateurs ou aux groupes pour les catalogues, les bases de données et les tables. Pour plus d’informations, consultez [Use Athena to query data with Lake Formation](https://docs.aws.amazon.com/athena/latest/ug/security-athena-lake-formation.html).

1. Vous devez disposer d’un outil d’informatique décisionnelle ou d’un client SQL fonctionnel afin d’exécuter des requêtes Athena à l’aide du pilote JDBC ou ODBC.

# Connexion d’Athena à IAM Identity Center
<a name="using-trusted-identity-propagation-setup"></a>

La section suivante décrit le processus de connexion d’Athena à IAM Identity Center.

## Configuration d’un émetteur de jetons de confiance
<a name="using-trusted-identity-propagation-step1"></a>

Suivez le guide sur la [configuration d’un émetteur de jetons de confiance](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html) afin de configurer un émetteur de jetons de confiance. Cela créera un AWS IAM Identity Center.

**Note**  
Dans **Type de fournisseur**, sélectionnez **OpenID Connect**. Dans **URL du fournisseur**, entrez l’URL de l’émetteur de votre fournisseur d’identité. Dans **Public**, spécifiez l’ID client émis par le fournisseur d’identité pour votre application.  
 

Copiez le nom de ressource d'application (ARN) du fournisseur d'identité AWS IAM. Pour de plus amples informations, consultez [Fournisseurs d'identité et fédération](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html).

## Configuration des rôles IAM
<a name="using-trusted-identity-propagation-step2"></a>

### Configuration du rôle d’application IAM
<a name="using-trusted-identity-propagation-step2-application-role"></a>

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation de gauche, sélectionnez **Rôles**, puis **Créer un rôle**.

1. Dans **Type d’entité approuvée**, sélectionnez **Politique d’approbation personnalisée**.

   1. Dans **Principal fédéré**, ajoutez l’ARN du fournisseur d’identité AWS IAM que vous avez copié lors de la configuration de l’émetteur de jetons de confiance.

   1. Dans les conditions de politique, ajoutez le public issu de votre fournisseur d’identité fédérée externe.

1. Ajoutez la politique intégrée suivante pour accorder l'accès à l'utilisateur pour les autorisations [CreateTokenWithIAM [ListTagsForResource](https://docs.aws.amazon.com/athena/latest/APIReference/API_ListTagsForResource.html)](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html), et [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html).

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "athena:ListTags*",
                   "sso:ListTags*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------
**Note**  
Les autorisations `CreateTokenWithIam` sont accordées dans l’application IAM Identity Center gérée par le client.

1. Copiez l’ARN du rôle d’application.

### Configuration du rôle d’accès IAM
<a name="using-trusted-identity-propagation-step2-access-role"></a>

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation de gauche, sélectionnez **Rôles**, puis **Créer un rôle**.

1. Dans **Type d’entité approuvée**, sélectionnez **Politique d’approbation personnalisée**.

   1. Dans **Principal fédéré**, ajoutez l’ARN d’ AWS IAM Identity Center copié lors de la configuration de l’émetteur de jetons de confiance.

   1. Dans **AWS Principal**, ajoutez l’ARN du rôle d’application AWS IAM copié lors de la configuration du rôle d’application IAM.

1. Ajoutez la **politique en ligne** suivante pour accorder l’accès aux flux de travail des pilotes :

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "athena:StartQueryExecution",
                   "athena:GetQueryExecution",
                   "athena:GetQueryResults",
                   "athena:ListWorkGroups",
                   "athena:ListDataCatalogs",
                   "athena:ListDatabases",
                   "athena:ListTableMetadata"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:CreateTable",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:UpdateTable",
                   "glue:DeleteTable",
                   "glue:BatchDeleteTable",
                   "glue:GetTableVersion",
                   "glue:GetTableVersions",
                   "glue:DeleteTableVersion",
                   "glue:BatchDeleteTableVersion",
                   "glue:CreatePartition",
                   "glue:BatchCreatePartition",
                   "glue:GetPartition",
                   "glue:GetPartitions",
                   "glue:BatchGetPartition",
                   "glue:UpdatePartition",
                   "glue:DeletePartition",
                   "glue:BatchDeletePartition"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lakeformation:GetDataAccess"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Copiez l’ARN du rôle d’accès.

## Configuration de l'application gérée par le AWS IAM Identity Center client
<a name="using-trusted-identity-propagation-step3"></a>

Pour configurer une application gérée par le client, suivez les étapes décrites dans [Configurer des applications OAuth 2.0 gérées par le client pour une propagation d'identité fiable](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html), en tenant compte des considérations suivantes pour Athena.
+ Dans **Balises**, ajoutez la paire clé-valeur suivante :
  + **Clé** : **AthenaDriverOidcAppArn**
  + **Valeur** : **AccessRoleARN** copié lors de la configuration du rôle d'accès IAM.
+ Lorsque vous [spécifiez les informations d'identification de l'application](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.html#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-application-credentials), ajoutez l'ARN du rôle d'application AWS IAM que vous avez copié lors de la configuration du rôle d'application IAM.
+ Dans **Applications pouvant recevoir des demandes**, sélectionnez **AWS-Lake-Formation-AWS-Glue-Data-Catalog-<account-id>**.
+ ****Pour que les **étendues d'accès s'appliquent, sélectionnez lakeformation:query pour** **les groupes de travail compatibles IAM, ou lakeformation:query**, athena:workgroup:read\$1write et s3:access\$1grants:read\$1write pour les groupes de travail compatibles avec **Identity Center**.****

## Configuration de l’association du groupe de travail
<a name="using-trusted-identity-propagation-step4"></a>

1. Dans le panneau de navigation de la console Athena, choisissez **Workgroups** (Groupes de travail).

1. Choisissez un groupe de travail dans la liste et ouvrez l’onglet **Balises**. 

1. Sélectionnez **Gérer les balises** et entrez les informations suivantes :

   1. **Clé** : `AthenaDriverOidcAppArn`

   1. **Valeur** : ARN de l’application AWS IAM Identity Center 

1. Choisissez **Enregistrer**.

Une fois que les personnes agissant en tant qu’administrateurs ont terminé la configuration en une fois, ils peuvent diffuser les détails de connexion essentiels auprès de leurs utilisateurs. Les utilisateurs ont besoin des cinq paramètres obligatoires suivants pour exécuter des charges de travail SQL :

1. **ApplicationRoleARN** — L'ARN du rôle d'application

1. **JwtWebIdentityToken**— Le jeton JWT pour la vérification d'identité

1. **WorkgroupARN** : ARN du groupe de travail Athena

1. **JwtRoleSessionName**— Le nom de session pour le rôle JWT

1. **CredentialsProvider**— La configuration du fournisseur d'informations d'identification

**Note**  
Nous avons simplifié la configuration des chaînes de connexion grâce à un balisage stratégique. En étiquetant correctement le groupe de travail Athena AWS IAM Identity Center et l'application gérée par le client, les administrateurs évitent aux utilisateurs d'avoir à fournir et. `AccessRoleArn` `CustomerIdcApplicationArn` Le plug-in gère cela automatiquement en utilisant le rôle d’application afin de localiser les balises nécessaires et de récupérer les valeurs ARN correspondantes pour son flux de travail.   
Les personnes agissant en tant qu’administrateurs peuvent toujours faire en sorte que les utilisateurs aient à fournir l’élément `AccessRoleArn` ou `CustomerIdcApplicationArn` dans la chaîne de connexion en ajustant les autorisations du rôle d’application selon les besoins.

## Exécution des requêtes à l’aide de pilotes Athena compatibles avec la propagation d’identité de confiance
<a name="using-trusted-identity-propagation-step5"></a>

Téléchargez la version la plus récente du pilote que vous souhaitez utiliser. Pour plus d’informations sur l’installation de JDBC, consultez [Prise en main du pilote JDBC 3.x](jdbc-v3-driver-getting-started.md). Vous pouvez choisir d’installer des pilotes ODBC en fonction de la plate-forme prise en charge. Pour de plus amples informations, veuillez consulter [Prise en main du pilote ODBC 2.x](odbc-v2-driver-getting-started.md). En fonction du pilote que vous souhaitez utiliser, fournissez les paramètres répertoriés dans les sections relatives aux sujets suivants :
+ [Paramètres de connexion du plug-in d’authentification JDBC](jdbc-v3-driver-jwt-tip-credentials.md)
+ [Paramètres de connexion du plug-in d’authentification ODBC](odbc-v2-driver-jwt-tip.md)

**Note**  
La propagation d’identité de confiance à l’aide des pilotes n’est disponible qu’après la version 3.6.0 dans JDBC et la version 2.0.5.0 dans ODBC.

## Utilisez les pilotes Athena et une propagation d'identité fiable avec DBeaver
<a name="using-trusted-identity-propagation-step6"></a>

1. Téléchargez le dernier fichier jar JDBC avec dépendances depuis Athena. Pour de plus amples informations, veuillez consulter [Pilote Athena JDBC 3.x](jdbc-v3-driver.md).

1. Ouvrez l' DBeaver application sur votre ordinateur.

1. Accédez au menu **Database** en haut de l’écran, puis choisissez **Driver Manager**.

1. Choisissez **New**, puis **Libraries**.

1. Ajoutez le pilote le plus récent et sélectionnez **Find class**. Cela vous donnera un chemin de fichier de type `com.amazon.athena.jdbc.AthenaDriver`.

1. Ouvrez l’onglet **Settings** et renseignez les champs suivants

   1. **Driver name** : propagation d’identité de confiance JDBC Athena

   1. **Class name** : `com.amazon.athena.jdbc.AthenaDriver`

   1. Sélectionnez l’option **Aucune authentification**.

1. Choisissez **Connect to a database** et recherchez l’option de propagation d’identité de confiance Athena JDBC. Vous serez redirigé vers l’URL JDBC. Pour de plus amples informations, veuillez consulter [Configuration du pilote](jdbc-v3-driver-getting-started.md#jdbc-v3-driver-configuring-the-driver).

1. Indiquez les détails suivants :

   1. **Workgroup** : groupe de travail dans lequel vous souhaitez exécuter les requêtes. Pour plus d'informations sur les groupes de travail, consultez [WorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroup.html).

   1. **Région** — L' Région AWS endroit où les requêtes seront exécutées. Pour obtenir la liste des régions, veuillez consulter [Amazon Athena endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/athena.html) (langue française non garantie).

   1. **OutputLocation**— L'emplacement dans Amazon S3 où vous souhaitez stocker les résultats de la requête. Pour plus d'informations sur l'emplacement de sortie, consultez [ResultConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_ResultConfiguration.html).

   1. **CredentialsProvider**— Entrez`JWT_TIP`.

   1. **ApplicationRoleArn**— L'ARN du rôle à activer`AssumeRoleWithWebIdentity`. Pour plus d'informations sur les rôles ARN, consultez [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)la référence de l' AWS Security Token Service API.

   1. **WorkgroupArn**— L'ARN du groupe de travail dans lequel les requêtes seront exécutées. Il doit s’agir du même groupe de travail que celui indiqué dans le champ **Workgroup**. Pour plus d'informations sur les groupes de travail, consultez [WorkGroup](https://docs.aws.amazon.com/athena/latest/APIReference/API_WorkGroup.html).

   1. **JwtRoleSessionName**— Le nom de la session lorsque vous utilisez les informations d'identification JWT pour l'authentification. Vous pouvez utiliser le nom de votre choix.

   1. **JwtWebIdentityToken**— Le jeton JWT obtenu auprès d'un fournisseur d'identité fédéré externe. Ce jeton est utilisé pour s’authentifier auprès d’Athena.

      ```
      jdbc:athena://Workgroup=<value>;Region=<region>;OutputLocation=<location>;CredentialsProvider=JWT_TIP;ApplicationRoleArn=<arn>;WorkgroupArn=<arn>;JwtRoleSessionName=JDBC_TIP_SESSION;JwtWebIdentityToken=<token>;
      ```

1. Cliquez **sur OK** et fermez la fenêtre. DBeaver commencera à charger vos métadonnées après cette étape et vous devriez commencer à voir vos catalogues, bases de données et tables se remplir.
**Note**  
Si une revendication JTI est présente dans le jeton et que vous choisissez **Test connection** avant de sélectionner **OK**, cette action empêchera ladite revendication JTI d’être réutilisée pour les échanges de jetons. Pour plus d’informations, consultez [Prerequisites and considerations for trusted token issuers](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-apps-with-trusted-token-issuer.html#trusted-token-issuer-prerequisites).​ Pour gérer cet aspect, JDBC implémente un cache en mémoire, dont le cycle de vie dépend de l’instance de pilote principale. Pour ODBC, un [cache de fichiers](odbc-v2-driver-jwt-tip.md#odbc-v2-driver-jwt-tip-file-cache) est éventuellement présent pour permettre la mise en cache des informations d’identification temporaires et leur réutilisation afin de réduire le nombre de jetons d’identité Web utilisés pendant le cycle de vie des sessions.

1. Ouvrez l’**éditeur de requêtes SQL** et commencez à exécuter vos requêtes. Consultez les [journaux Cloudtrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) pour vérifier l’identité propagée de l’utilisateur.

# Configurer et déployer des ressources à l'aide de AWS CloudFormation
<a name="using-trusted-identity-propagation-cloudformation"></a>

Vous pouvez configurer et déployer des ressources à l'aide de CloudFormation modèles pour commencer à utiliser Trusted Identity Propagation avec les pilotes Athena comme suit.

1. Téléchargez un CloudFormation modèle pour configurer l'application gérée par le client IAM Identity Center et les rôles d'accès, ainsi que les balises de groupe de travail et d'application IAM Identity Center. Vous pouvez le télécharger à partir de ce [CloudFormation lien CloudFormation](https://downloads.athena.us-east-1.amazonaws.com/drivers/CFNTemplate/AthenaDriversTrustedIdentityPropagationCFNTemplate.yaml) .

1. Exécutez la `create-stack` AWS CLI commande pour déployer la CloudFormation pile qui fournira les ressources configurées comme suit.

   ```
   aws cloudformation create-stack \
       --stack-name my-stack \
       --template-url URL_of_the_file_that_contains_the_template_body \
       --parameters file://params.json
   ```

1. Pour consulter le statut de provisionnement des ressources, accédez à la console CloudFormation . Une fois la création du cluster terminée, consultez la nouvelle application IAM Identity Center dans la console Identity Center. Vous pouvez consulter le rôle IAM dans la console IAM. 

   Les balises seront associées dans le groupe de travail ainsi que dans l’application IAM Identity Center.

1. Vous pouvez immédiatement utiliser les pilotes Athena à l’aide des rôles et de l’application créés. Pour utiliser le pilote JDBC, consultez les [paramètres de connexion du plug-in d’authentification JDBC.](jdbc-v3-driver-jwt-tip-credentials.md) Pour utiliser le pilote ODBC, consultez les [paramètres de connexion du plug-in d’authentification ODBC.](odbc-v2-driver-jwt-tip.md)