Connexion d’Athena à IAM Identity Center
La section suivante décrit le processus de connexion d’Athena à IAM Identity Center.
Configuration d’un émetteur de jetons de confiance
Suivez le guide sur la configuration d’un émetteur de jetons de confiance afin de configurer un émetteur de jetons de confiance. Cette opération permet de créer une instance d’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.
Configuration des rôles IAM
Configuration du rôle d’application IAM
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation de gauche, sélectionnez Rôles, puis Créer un rôle.
-
Dans Type d’entité approuvée, sélectionnez Politique d’approbation personnalisée.
-
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.
-
Dans les conditions de politique, ajoutez le public issu de votre fournisseur d’identité fédérée externe.
-
-
Ajoutez la politique en ligne suivante pour accorder à l’utilisateur l’accès aux autorisations CreateTokenWithIAM, ListTagsForResource et AssumeRoleWithWebIdentity.
Note
Les autorisations
CreateTokenWithIamsont accordées dans l’application IAM Identity Center gérée par le client. -
Copiez l’ARN du rôle d’application.
Configuration du rôle d’accès IAM
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation de gauche, sélectionnez Rôles, puis Créer un rôle.
-
Dans Type d’entité approuvée, sélectionnez Politique d’approbation personnalisée.
-
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.
-
Dans AWSPrincipal, ajoutez l’ARN du rôle d’application AWS IAM copié lors de la configuration du rôle d’application IAM.
-
-
Ajoutez la politique en ligne suivante pour accorder l’accès aux flux de travail des pilotes :
-
Copiez l’ARN du rôle d’accès.
Configuration de l’application client AWS IAM Identity Center
Pour configurer l’application client, suivez les étapes décrites dans la section Set up customer managed OAuth 2.0 applications for trusted identity propagation, en prenant en compte les éléments suivants concernant Athena.
-
Dans Balises, ajoutez la paire clé-valeur suivante :
-
Clé – AthenaDriverOidcAppArn
-
Valeur – AccessRoleARN, copiée lors de la configuration du rôle d’accès IAM
-
-
Lors de la spécification des informations d’identification de l’application, 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>.
-
Dans Scopes d’accès à appliquer, sélectionnez lakeformation:query.
Configuration de l’association du groupe de travail
-
Dans le panneau de navigation de la console Athena, choisissez Workgroups (Groupes de travail).
-
Choisissez un groupe de travail dans la liste et ouvrez l’onglet Balises.
-
Sélectionnez Gérer les balises et entrez les informations suivantes :
-
Clé –
AthenaDriverOidcAppArn -
Valeur – ARN de l’application AWS IAM Identity Center
-
-
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 :
-
ApplicationRoleARN – ARN du rôle d’application
-
JwtWebIdentityToken – Jeton JWT de vérification d’identité
-
WorkgroupARN – ARN du groupe de travail Athena
-
JwtRoleSessionName – Nom de session du rôle JWT
-
CredentialsProvider – 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 balisant correctement le groupe de travail Athena et l’application AWS IAM Identity Center gérée par le client, les personnes agissant en tant qu’administrateurs évitent aux utilisateurs d’avoir à fournir les éléments AccessRoleArn et 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
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. Vous pouvez choisir d’installer des pilotes ODBC en fonction de la plate-forme prise en charge. Pour de plus amples informations, consultez Prise en main du pilote ODBC 2.x. En fonction du pilote que vous souhaitez utiliser, fournissez les paramètres répertoriés dans les sections relatives aux sujets suivants :
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.
Utilisation des pilotes Athena et de la propagation d’identité de confiance à l’aide de DBeaver
-
Téléchargez le dernier fichier jar JDBC avec dépendances depuis Athena. Pour de plus amples informations, consultez Pilote Athena JDBC 3.x.
-
Ouvrez l’application DBeaver sur votre ordinateur.
-
Accédez au menu Database en haut de l’écran, puis choisissez Driver Manager.
-
Choisissez New, puis Libraries.
-
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. -
Ouvrez l’onglet Settings et renseignez les champs suivants
-
Driver name – Propagation d’identité de confiance JDBC Athena
-
Class name –
com.amazon.athena.jdbc.AthenaDriver -
Sélectionnez l’option Aucune authentification.
-
-
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, consultez Configuration du pilote.
-
Indiquez les détails suivants :
-
Workgroup – Groupe de travail dans lequel vous souhaitez exécuter les requêtes. Pour plus d'informations sur les groupes de travail, veuillez consulter WorkGroup.
-
Région – Région AWS dans laquelle les requêtes seront exécutées. Pour obtenir la liste des régions, veuillez consulter Amazon Athena endpoints and quotas (langue française non garantie).
-
OutputLocation – Emplacement dans Amazon S3 où vous souhaitez stocker les résultats des requêtes. Pour plus d'informations sur l'emplacement de sortie, veuillez consulter ResultConfiguration.
-
CredentialsProvider – Saisissez
JWT_TIP. -
ApplicationRoleArn – ARN du rôle pour activer
AssumeRoleWithWebIdentity. Pour plus d’informations sur les rôles ARN, consultez AssumeRole dans la documentation de référence de l’API AWS Security Token Service. -
WorkgroupArn – 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, veuillez consulter WorkGroup.
-
JwtRoleSessionName – Nom de la session lorsque vous utilisez les informations d’identification JWT pour l’authentification. Vous pouvez utiliser le nom de votre choix.
-
JwtWebIdentityToken – Jeton JWT obtenu auprès d’un fournisseur d’identité fédérée 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>;
-
-
Sélectionnez 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. 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 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.
-
Ouvrez l’éditeur de requêtes SQL et commencez à exécuter vos requêtes. Consultez les journaux Cloudtrail pour vérifier l’identité propagée de l’utilisateur.