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.
Connectez Athena à IAM Identity Center
La section suivante décrit le processus de connexion d'Athena à IAM Identity Center.
Configurer un émetteur de jetons fiable
Suivez le guide de configuration d'un émetteur de jetons de confiance pour configurer un émetteur de jetons de confiance. Cela créera un AWS IAM Identity Center.
Note
Pour le type de fournisseur, choisissez OpenID Connect. Pour URL du fournisseur, entrez l'URL de l'émetteur de votre fournisseur d'identité. Pour Audience, 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
Configurer le rôle de l'application IAM
Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le menu de navigation de gauche, choisissez Rôles, puis sélectionnez Créer un rôle.
-
Pour le type d'entité de confiance, choisissez la politique de confiance personnalisée comme suit :
-
Pour Federated Principal, ajoutez l'ARN du fournisseur d'identité AWS IAM que vous avez copié lors de la configuration de l'émetteur de jetons fiables.
-
Pour les conditions de politique, ajoutez l'audience provenant de votre fournisseur d'identité fédéré externe.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/issuer-url" }, "Action": [ "sts:AssumeRoleWithWebIdentity" ], "Condition": { "StringEquals": { "issuer:aud": "identity-provider-audience" } } } ] }
-
-
Ajoutez la politique intégrée suivante pour accorder l'accès à l'utilisateur pour les autorisations CreateTokenWithIAM ListTagsForResource, et AssumeRoleWithWebIdentity.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListTags*", "sso:ListTags*" ], "Resource": "*" } ] }Note
CreateTokenWithIamles autorisations sont accordées dans l'application IAM Identity Center gérée par le client. -
Copiez l'ARN pour le 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 menu de navigation de gauche, choisissez Rôles, puis sélectionnez Créer un rôle.
-
Pour le type d'entité de confiance, choisissez la politique de confiance personnalisée comme suit :
-
Pour Federated Principal, ajoutez l'ARN pour AWS IAM Identity Center copié lors de la configuration de l'émetteur de jetons fiables.
-
Pour AWS Principal, ajoutez l'ARN pour le rôle d'application AWS IAM copié lors de la configuration du rôle d'application IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/application-role-arn" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] }, { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/issuer-url" }, "Action": [ "sts:AssumeRole" ] } ] }
-
-
Ajoutez la politique intégrée suivante pour accorder l'accès aux flux de travail des conducteurs :
{ "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": "*" } ] } -
Copiez l'ARN pour le rôle d'accès.
Configuration de l'application AWS IAM Identity Center client
Pour configurer une application 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, en tenant compte des considérations suivantes pour Athena.
-
Pour les 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, ajoutez l'ARN du rôle d'application AWS IAM que vous avez copié lors de la configuration du rôle d'application IAM.
-
<account-id>Pour les applications pouvant recevoir des demandes, choisissez AWS-Lake-Formation-AWS-Glue-Data-Catalog -.
-
Pour que les étendues d'accès s'appliquent, choisissez lakeformation:query.
Configuration de l'association de groupes 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 Tags.
-
Choisissez Gérer les balises et entrez les informations suivantes :
-
Clé :
AthenaDriverOidcAppArn -
Valeur : ARN de l' AWS IAM Identity Center application.
-
-
Choisissez Enregistrer.
Une fois que les administrateurs ont terminé la configuration unique, ils peuvent communiquer les informations de connexion essentielles à leurs utilisateurs. Les utilisateurs ont besoin de ces cinq paramètres obligatoires pour exécuter des charges de travail SQL :
-
ApplicationRoleARN — L'ARN du rôle d'application
-
JwtWebIdentityToken— Le jeton JWT pour la vérification d'identité
-
WorkgroupArn — L'ARN du groupe de travail Athena
-
JwtRoleSessionName— Le nom de session pour le rôle JWT
-
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 plugin gère cela automatiquement en utilisant le rôle d'application pour localiser les balises nécessaires et récupérer les valeurs ARN correspondantes pour son flux de travail.
Les administrateurs peuvent toujours obliger les utilisateurs à fournir AccessRoleArn ou CustomerIdcApplicationArn à saisir la chaîne de connexion en ajustant les autorisations du rôle de l'application selon les besoins.
Exécutez des requêtes à l'aide de pilotes Athena compatibles avec la propagation d'identité fiable
Téléchargez la dernière version du pilote que vous souhaitez utiliser. Pour plus d'informations sur l'installation de JDBC, consultez. Commencez avec le pilote JDBC 3.x Vous pouvez choisir d'installer les pilotes ODBC en fonction de la plate-forme prise en charge. Pour de plus amples informations, veuillez consulter Commencez avec le pilote ODBC 2.x. En fonction du pilote que vous souhaitez utiliser, fournissez les paramètres répertoriés dans :
Note
La propagation fiable des identités à l'aide de 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
-
Téléchargez le dernier fichier JDBC JDBC avec dépendances d'Athena. Pour de plus amples informations, veuillez consulter Pilote Athena JDBC 3.x.
-
Ouvrez l' DBeaver application sur votre ordinateur.
-
Accédez au menu Base de données en haut de l'écran, puis choisissez Driver Manager.
-
Choisissez Nouveau, puis Bibliothèques.
-
Ajoutez le dernier pilote et choisissez Rechercher une classe. Cela vous donnera un chemin de fichier comme
com.amazon.athena.jdbc.AthenaDriver. -
Ouvrez l'onglet Paramètres et renseignez les champs suivants
-
Nom du pilote — Propagation d'identité fiable Athena JDBC
-
Nom de la classe —
com.amazon.athena.jdbc.AthenaDriver -
Sélectionnez l'option Aucune authentification.
-
-
Choisissez Connect to a database et recherchez Athena JDBC Trusted Identity Propagation. Vous serez redirigé vers l'URL JDBC. Pour de plus amples informations, veuillez consulter Configuration du pilote.
-
Fournissez les informations suivantes
-
Groupe de travail : groupe de travail dans lequel vous souhaitez exécuter des requêtes. Pour plus d'informations sur les groupes de travail, consultez WorkGroup.
-
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 (langue française non garantie).
-
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.
-
CredentialsProvider— Entrez
JWT_TIP. -
ApplicationRoleArn— L'ARN du rôle à activer
AssumeRoleWithWebIdentity. Pour plus d'informations sur les rôles ARN, consultez AssumeRolela référence de l' AWS Security Token Service API. -
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 Groupe de travail. Pour plus d'informations sur les groupes de travail, consultez WorkGroup.
-
JwtRoleSessionName— Le nom de la session lorsque vous utilisez les informations d'identification JWT pour l'authentification. Il peut s'agir de n'importe quel nom de votre choix.
-
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'Athéna.
jdbc:athena://Workgroup=<value>;Region=<region>;OutputLocation=<location>;CredentialsProvider=JWT_TIP;ApplicationRoleArn=<arn>;WorkgroupArn=<arn>;JwtRoleSessionName=JDBC_TIP_SESSION;JwtWebIdentityToken=<token>;
-
-
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 réclamation JTI est présente dans le jeton et que vous choisissez Tester la connexion avant de choisir OK, cela empêche la même JTI d'être réutilisée pour les échanges de jetons. Pour plus d'informations, consultez la section Conditions préalables et considérations relatives aux émetteurs de jetons fiables. Pour gérer cela, 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.