Comment puis-je utiliser mes informations d'identification de rôle IAM ou basculer vers un autre rôle IAM lorsque je me connecte à Athena via le pilote JDBC ?

Dernière mise à jour : 25/06/2020

Je souhaite utiliser un rôle AWS Identity and Access Management (IAM) pour me connecter à Amazon Athena via le pilote JDBC, ou basculer vers un autre rôle IAM, associé à mon compte AWS ou à un autre, avant de me connecter à Athena via le pilote JDBC.

Solution

Utiliser les informations d'identification de rôle IAM pour se connecter à Amazon Athena via le pilote JDBC

Récupérez les informations d'identification temporaires du rôle. Ce processus dépend de la façon dont vous assumez le rôle :

  • Rôle associé à un fournisseur d'identité SAML : Active Directory Federation Services (AD FS) 3.0 et Okta sont les seuls fournisseurs d'identité SAML 2.0 directement pris en charge par le pilote JDBC Athena. Si votre rôle est associé à un autre fournisseur d'identité, vous devrez utiliser la commande assume-role-with-saml pour obtenir les informations d'identification temporaires.
  • Autre rôle dans votre compte : si vous assumez un rôle différent au sein du même compte AWS, vous devrez utiliser la commande assume-role pour obtenir les informations d'identification temporaires.

Pour plus d'informations, consultez Utilisation des rôles IAM et consultez le tableau Comparaison des méthodes d'utilisation des rôles.

Les informations d'identification temporaires contiennent le jeton de session, l'ID de clé d'accès et la clé d'accès secrète. Ces trois éléments sont nécessaires afin d'authentifier la connexion JDBC à Athena. N'oubliez pas que les informations d'identification temporaires ont une durée de vie maximale de 12 heures.

1.    Sur la machine où est installé le pilote JDBC Athena, enregistrez les informations d'identification temporaires dans le fichier d'informations d'identification AWS (~/.aws/credentials) en tant que profil nommé. Pour plus d'informations, consultez la section Paramètres des fichiers de configuration et d'informations d'identification.

Dans cet exemple, les informations d'identification temporaires sont stockées dans un profil d'interface de ligne de commande AWS (AWS CLI) nommé testprofile :

[testprofile]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

2.    Pour vous connecter à Athena via le pilote JDBC, spécifiez le nom de profil dans la chaîne de connexion JDBC (par exemple :jdbc:awsathena://AwsRegion=us-west-2;Profile=testprofile;). Vous pouvez également définir le nom de profil dans la propriété de configuration Profile (Profil) de JDBC.

Remarque : la propriété de configuration Profile (Profil) de JDBC est disponible dans les versions 2.0.6 et ultérieures du pilote JDBC Athena. Pour obtenir le dernier pilote JDBC, rendez-vous sur la page Liens de téléchargement du pilote JDBC.

Basculer vers un autre rôle IAM avant de se connecter au pilote JDBC Athena

Pour changer de rôle avant de vous connecter à Athena via le pilote JDBC, utilisez l'option source_profile du profil nommé :

1.    Sur la machine où est installé le pilote JDBC Athena, ajoutez un profil nommé au fichier d'informations d'identification de l'interface de ligne de commande AWS (CLI) (~/.aws/credentials). Pour plus d'informations sur la création de profils nommés, consultez Profils nommés. Le profil doit comprendre les propriétés suivantes :

role_arn : l'Amazon Resource Name (ARN) du rôle que vous souhaitez assumer ;
source_profile : profil qui contient les informations d'identification d'un utilisateur ou d'un rôle IAM autorisé à assumer le rôle.

Par exemple, pour assumer un rôle nommé testrole ayant pour ARN arn:aws:iam::123456789012:role/testrole, vous devrez le créer en procédant ainsi :

[switchroletest]
role_arn=arn:aws:iam::123456789012:role/testrole
source_profile=default

Ici, le profil default contient les informations d'identification d'un utilisateur ou d'un rôle IAM qui dispose des autorisations nécessaires pour assumer le rôle testrole :

[default]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

2.    Pour vous connecter à Athena via le pilote JDBC, spécifiez le nom de profil dans la chaîne de connexion JDBC (par exemple : jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;). Vous pouvez également définir le nom de profil dans la propriété de configuration Profile (Profil) de JDBC.