Tutoriel : Configuration de l’accès fédéré des utilisateurs Okta à Athena à l’aide de Lake Formation et de JDBC
Ce tutoriel vous montre comment configurer Okta, les autorisations AWS Lake Formation, AWS Identity and Access Management et le pilote JDBC d'Athena pour permettre une utilisation fédérée d'Athena basée sur SAML. Lake Formation fournit à l'utilisateur basé sur SAML un contrôle d'accès précis aux données disponibles dans Athena. Pour mettre en place cette configuration, le tutoriel utilise la console de développement Okta, les consoles AWS IAM et Lake Formation, et l'outil SQL Workbench/J.
Prérequis
Ce tutoriel suppose que vous avez effectué les opérations suivantes :
-
Création d'un compte Amazon Web Services. Pour créer un compte, visitez la page d'accueil d'Amazon Web Services
. -
Configuration d'un emplacement de résultats de requête pour Athena dans Simple Storage Service (Amazon S3).
-
Enregistrement d'un emplacement de compartiment de données Simple Storage Service (Amazon S3) dans Lake Formation.
-
Définition dans le catalogue de données AWS Glue d’une base de données et de tables qui pointent vers vos données dans Amazon S3.
-
Si vous n'avez pas encore défini de table, exécutez un crawler AWS Glue ou utilisez Athena pour définir une base de données et une ou plusieurs tables pour les données auxquelles vous souhaitez accéder.
-
Ce tutoriel utilise une table basée sur le jeu de données des courses de taxi de NYC
disponible dans le Registre des données ouvertes sur AWS . Le tutoriel utilise le nom de la base de données tripdbet le nom de la tablenyctaxi.
-
Étapes du didacticiel
Étape 1 : créer un compte Okta
Ce tutoriel utilise Okta comme fournisseur d'identité basé sur SAML. Si vous n'avez pas encore de compte Okta, vous pouvez en créer un gratuitement. Un compte Okta est nécessaire pour pouvoir créer une application Okta pour l'authentification SAML.
Création d'un compte
-
Pour utiliser Okta, rendez-vous sur la page d'inscription des développeurs Okta
et créez un compte d'essai Okta gratuit. Le service Developer Edition est gratuit dans les limites spécifiées par Okta à developer.okta.com/pricing . -
Lorsque vous recevez l'e-mail d'activation, activez votre compte.
Un nom de domaine Okta vous sera attribué. Notez le nom de domaine pour référence. Plus tard, vous utiliserez le nom de domaine (
<okta-idp-domain>) dans la chaîne JDBC qui se connecte à Athena.
Étape 2 : Ajouter des utilisateurs et des groupes à Okta
Dans cette étape, vous utilisez la console Okta pour effectuer les tâches suivantes :
-
Créer deux utilisateurs Okta.
-
Créer deux groupes Okta.
-
Ajouter un utilisateur Okta à chaque groupe Okta.
Ajout d'utilisateurs à Okta
-
Après avoir activé votre compte Okta, connectez-vous en tant qu'utilisateur administratif au domaine Okta attribué.
-
Dans le panneau de navigation de gauche, choisissez Directory (Répertoire), puis choisissez People (Personnes).
-
Choisissez Add Person (Ajouter une personne) pour ajouter un nouvel utilisateur qui accédera à Athena via le pilote JDBC.
-
Dans la boîte de dialogue Add Person (Ajouter une personne), sasissez les informations requises.
-
Saisissez les valeurs pour First name (Prénom) et Last name (Nom de famille). Ce tutoriel utilise
athena-okta-user. -
Saisissez un Username (Nom d'utilisateur) et un Primary email (E-mail principal). Ce tutoriel utilise
athena-okta-user@anycompany.com. -
Pour Password (Mot de passe), choisissez Set by admin (Défini par l'administrateur), puis fournissez un mot de passe. Ce tutoriel désactive l'option User must change password on first login (L'utilisateur doit changer son mot de passe à la première connexion) ; vos exigences en matière de sécurité peuvent varier.
-
-
Choisissez Save and Add Another (Enregistrer et ajouter un autre type).
-
Saisissez les informations pour un autre utilisateur. Cet exemple ajoute l'utilisateur analyste commercial
athena-ba-user@anycompany.com.
-
Choisissez Enregistrer.
Dans la procédure suivante, vous fournissez l'accès à deux groupes Okta par le biais du pilote JDBC d'Athena en ajoutant un groupe « Analystes commerciaux » et un groupe « Développeurs ».
Ajout de groupes Okta
-
Dans le panneau de navigation de gauche, choisissez Directory (Répertoire), puis choisissez Groups (Groupes).
-
Sur la page Groups (Groupes), choisissez Add Group (Ajouter un groupe).
-
Dans la boîte de dialogue Add Group (Ajouter un groupe), saisissez les informations requises.
-
For Name (Nom), saisissez
lf-business-analyst. -
Pour Group Description (Description du groupe), saisissez
Business Analysts(Analystes commerciaux).
-
-
Choisissez Add Group (Ajouter un groupe).
-
Sur la page Groups (Groupes), choisissez à nouveau Add Group (Ajouter un groupe). Cette fois, vous allez saisir les informations pour le groupe des développeurs.
-
Saisissez les informations requises.
-
Pour Name (Nom), saisissez
lf-developer. -
Pour Group Description (Description du groupe), saisissez
Developers(Développeurs).
-
-
Choisissez Add Group (Ajouter un groupe).
Maintenant que vous avez deux utilisateurs et deux groupes, vous pouvez ajouter un utilisateur à chaque groupe.
Ajout d'utilisateurs à un groupe
-
Sur la page Groups (Groupes), choisissez le groupe lf-developer que vous venez de créer. Vous allez ajouter à ce groupe l'un des utilisateurs Okta que vous avez créé en tant que développeur.
-
Choisissez Manage People (Gérer personnes).
-
Dans la liste Not Members (Non membres), choisissez athena-okta-user.
L'entrée de l'utilisateur passe de la liste Not Members (Non membres), à gauche, à la liste Members (Membres), à droite.
-
Choisissez Enregistrer.
-
Choisissez Back to Group (Retour au groupe), ou choisissez Directory (Répertoire), puis choisissez Groups (Groupes).
-
Choisissez le groupe lf-business-analyst.
-
Choisissez Manage People (Gérer personnes).
-
Ajoutez le athena-ba-user à la liste Members (Members) du groupe lf-business-analyst, puis choisissez Save (Enregistrer).
-
Choisissez Back to Group (Retour au groupe), ou choisissez Directory (Répertoire), Groups (Groupes).
La page Groups (Groupes) montre maintenant que chaque groupe a un utilisateur Okta.
Étape 3 : configurer une application Okta pour l'authentification SAML
Dans cette étape, vous utilisez la console du développeur Okta pour effectuer les tâches suivantes :
-
Ajouter une application SAML à utiliser avec AWS.
-
Affecter l'application à l'utilisateur Okta.
-
Affecter l'application à un groupe Okta.
-
Téléchargez les métadonnées du fournisseur d'identité résultant pour une utilisation ultérieure avec AWS.
Ajout d'une application pour l'authentification SAML
-
Dans le panneau de navigation Okta, choisissez Applications, Applications afin que vous puissiez configurer une application Okta pour l'authentification SAML à Athena.
-
Cliquez sur Browse App Catalog (Parcourir le catalogue d'applications).
-
Dans la zone de recherche, saisissez
Redshift. -
Choisissez Amazon Web Services Redshift. L'application Okta de ce tutoriel utilise l'intégration SAML existante pour Amazon Redshift.
-
Sur la page Amazon Web Services Redshift, choisissez Add (Ajouter) pour créer une application basée sur SAML pour Amazon Redshift.
-
Pour Application label (Étiquette d'application), saisissez
Athena-LakeFormation-Okta, puis Done (Terminé).
Maintenant que vous avez créé une application Okta, vous pouvez l'affecter aux utilisateurs et aux groupes que vous avez créés.
Affectation d'une application à des utilisateurs et des groupes
-
Sur la page Applications, choisissez l'application Athena-LakeFormation-Okta .
-
Dans l'onglet Assignments (Affectations), choisissez Assign (Affecter), Assign to People (Affecter à des personnes).
-
Dans la boîte de dialogue Assign Athena-LakeFormation-Okta to People (Affecter Athena-LakeFormation-Okta à des personnes), recherchez l'utilisateur athena-okta-user que vous avez créé précédemment.
-
Choisissez Assign (Affecter) pour affecter l'utilisateur à l'application.
-
Choisissez Save and Go Back (Sauvegarder et revenir).
-
Sélectionnez Exécuté.
-
Dans l'onglet Assignments (Affectations) de l'application Athena-LakeFormation-Okta, choisissez Assign (Affecter), Assign to Groups (Affecter à des groupes).
-
Pour lf-business-analyst, choisissez Assign (Affecter) pour affecter l'application Athena-LakeFormation-Okta au groupe lf-business-analyst, puis choisissez Done (Terminé).
Le groupe s'affiche dans la liste des groupes pour l'application.
Vous pouvez maintenant télécharger les métadonnées de l'application du fournisseur d'identité à utiliser avec AWS.
Téléchargement des métadonnées de l'application
-
Choisissez l'onglet Sign On (Authentification) de l'application Okta, puis cliquez à droite sur Identity Provider metadata (Métadonnées du fournisseur d'identité).
-
Choisissez Save Link As (Enregistrer le lien sous) pour enregistrer les métadonnées du fournisseur d'identité, qui sont au format XML, dans un fichier. Donnez-lui un nom que vous reconnaissez (par exemple,
Athena-LakeFormation-idp-metadata.xml).
Étape 4 : créer un fournisseur d'identité SAML AWS et un rôle IAM d'accès à Lake Formation
Dans cette étape, vous utilisez la console AWS Identity and Access Management (IAM) pour effectuer les tâches suivantes :
-
Créer un fournisseur d'identité pour AWS.
-
Créer un rôle IAM pour l'accès à Lake Formation.
-
Ajouter la politique gérée AmazonAthenaFullAccess au rôle.
-
Ajouter une politique pour Lake Formation et AWS Glue au rôle.
-
Ajouter une politique pour les résultats des requêtes Athena au rôle.
Création d'un fournisseur d'identité SAML AWS
-
Connectez-vous à la console du Amazon Web Services account (compte Amazon Web Services) en tant qu'Amazon Web Services account administrator (administrateur de compte Amazon Web Services) et accédez à la console IAM (https://console.aws.amazon.com/iam/
). -
Dans le panneau de navigation, choisissez Identity providers (Fournisseurs d'identité), puis Add provider (Ajouter un fournisseur).
-
Sur l'écran Configure provider (Configurer le fournisseur), saisissez les informations suivantes :
-
Pour Provider type (Type de fournisseur), choisissez SAML.
-
Pour Provider name (Nom du fournisseur), saisissez
AthenaLakeFormationOkta. -
Pour Metadata document (Document de métadonnées), utilisez l'option Choose file (Choisir un fichier) pour téléverser le fichier XML de métadonnées du fournisseur d'identité (IdP) que vous avez téléchargé.
-
-
Choisissez Add provider (Ajouter un fournisseur).
Ensuite, vous créez un rôle IAM pour l'accès à AWS Lake Formation. Vous ajoutez deux politiques en ligne au rôle. Une politique fournit les autorisations d'accès à Lake Formation et aux API AWS Glue. L'autre politique donne accès à Athena et à l'emplacement des résultats des requêtes Athena dans Simple Storage Service (Amazon S3).
Création d'un rôle IAM permettant d'accéder à AWS Lake Formation
-
Dans le panneau de navigation de la console IAM, choisissez Roles (Rôles), puis Create role (Créer un rôle).
-
Sur la page Create role (Créer un rôle), suivez les étapes ci-dessous :
-
Pour Select type of trusted entity (Sélectionner le type d'entité de confiance), choisissez SAML 2.0 Federation.
-
Pour SAML provider (Fournisseur SAML), sélectionnez AthenaLakeFormationOkta.
-
Pour SAML provider (Fournisseur SAML), sélectionnez l'option Allow programmatic and AWS Management Console access (Autoriser l'accès programmatique et par la console).
-
Choisissez Suivant : Autorisations.
-
-
Sur la page Attach Permissions policies (Attacher les politiques d'autorisations), pour Filter policies (Politiques de filtrage), saisissez
Athena. -
Sélectionnez la politique gérée AmazonAthenaFullAccess, puis cliquez sur Next: Tags (Suivant : Identifications).
-
Sur la page Add tags (Ajouter des identifications), choisissez Next: Review (Suivant : Révision).
-
Sur la page Review (Révision), à la rubrique Role name (Nom du rôle), saisissez un nom pour le rôle (par exemple,
Athena-LakeFormation-OktaRole), puis choisissez Create role (Créer un rôle).
Ensuite, vous ajoutez des politiques en ligne qui autorisent l'accès à Lake Formation, aux API AWS Glue et aux résultats des requêtes Athena dans Simple Storage Service (Amazon S3).
Chaque fois que vous utilisez des politiques IAM, veillez à respecter les bonnes pratiques IAM. Pour plus d'informations, consultez la rubrique Bonnes pratiques IAM du Guide de l'utilisateur IAM.
Ajout d'une politique en ligne au rôle pour Lake Formation et AWS Glue
-
Dans la liste des rôles de la console IAM, choisissez le rôle nouvellement créé
Athena-LakeFormation-OktaRole. -
Sur la page Summary (Résumé) du rôle, dans l'onglet Permissions (Autorisations), choisissez Add inline policy (Ajouter une politique en ligne).
-
Sur la page Créer une politique, choisissez JSON.
-
Ajoutez une politique en ligne comme la suivante qui donne accès à Lake Formation et aux API AWS Glue.
-
Choisissez Review policy (Examiner une politique).
-
Dans le champ Name (Nom), saisissez un nom pour la politique (par exemple,
LakeFormationGlueInlinePolicy). -
Choisissez Créer une politique.
Ajout d'une politique en ligne au rôle pour l'emplacement des résultats des requêtes Athena
-
Sur la page Summary (Résumé) du rôle
Athena-LakeFormation-OktaRole, dans l'onglet Permissions (Autorisations), choisissez Add inline policy (Ajouter une politique en ligne). -
Sur la page Créer une politique, choisissez JSON.
-
Ajoutez une politique en ligne comme la suivante qui autorise le rôle à accéder à l'emplacement des résultats des requêtes Athena. Remplacez les espaces réservés
<athena-query-results-bucket>dans l'exemple par le nom de votre compartiment Simple Storage Service (Amazon S3). -
Choisissez Review policy (Examiner une politique).
-
Dans le champ Name (Nom), saisissez un nom pour la politique (par exemple,
AthenaQueryResultsInlinePolicy). -
Choisissez Créer une politique.
Ensuite, vous copiez l'ARN du rôle d'accès de Lake Formation et l'ARN du fournisseur SAML que vous avez créé. Ils sont nécessaires lorsque vous configurez l'application Okta SAML dans la section suivante du tutoriel.
Copier le rôle ARN et ARN du fournisseur d'identité SAML
-
Dans la console IAM, sur la page Summary (Résumé) pour le rôle
Athena-LakeFormation-OktaRole, cliquez sur l'icône Copy to clipboard (Copier dans le presse-papiers) à côté de Role ARN (ARN de rôle). L'ARN a le format suivant :arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole -
Enregistrez l'ARN complet en toute sécurité pour référence ultérieure.
-
Dans le panneau de navigation de la console IAM, choisissez Identity providers (Fournisseurs d'identité).
-
Choisissez le fournisseur AthenaLakeFormationOkta.
-
Sur la page Summary (Résumé), cliquez sur l'icône Copy to clipboard (Copier dans le presse-papiers) à côté de Provider ARN (ARN du fournisseur). L'ARN doit ressembler à l'exemple suivant :
arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta -
Enregistrez l'ARN complet en toute sécurité pour référence ultérieure.
Étape 5 : ajouter le rôle IAM et le fournisseur d'identité SAML à l'application Okta
Dans cette étape, vous revenez à la console du développeur Okta et effectuez les tâches suivantes :
-
Ajouter les attributs URL Lake Formation de l'utilisateur et du groupe à l'application Okta.
-
Ajouter l'ARN pour le fournisseur d'identité et l'ARN pour le rôle IAM à l'application Okta.
-
Copier l'ID de l'application Okta. L'ID de l'application Okta est requis dans le profil JDBC qui se connecte à Athena.
Ajout d'attributs d'URL Lake Formation de l'utilisateur et du groupe à l'application Okta
-
Connectez-vous à la console de développement Okta.
-
Choisissez l'onglet Applications, puis choisissez l'application
Athena-LakeFormation-Okta. -
Choisissez l'onglet Sign On (Authentification) de l'application, puis choisissez Edit (Modifier).
-
Choisissez Attributes (optional) (Attributs [facultatif]) pour les développer.
-
Pour Attribute Statements (optional) (Instructions d'attribut [facultatif]), ajoutez l'attribut suivant :
-
Pour Nom, saisissez
https://lakeformation.amazon.com/SAML/Attributes/Username. -
Pour le champ Value (Valeur), saisissez
user.login.
-
-
Sous Group Attribute Statements (optional) (Instructions d'attribut de groupe [facultatif]), ajoutez l'attribut suivant :
-
Pour Nom, saisissez
https://lakeformation.amazon.com/SAML/Attributes/Groups. -
Pour Name format (Format du nom), saisissez
Basic -
Pour Filter (Filtre), choisissez Matches regex (Correspond à regex), puis saisissez
.*dans la zone de filtre.
-
-
Faites défiler vers le bas jusqu'à la section Advanced Sign-On Settings (Paramètres avancés d'ouverture de session), où vous ajouterez les ARN du fournisseur d'identité et du rôle IAM à l'application Okta.
Ajout des ARN pour le fournisseur d'identité et pour le rôle IAM à l'application Okta
-
Pour Idp ARN and Role ARN (ARN de fournisseur d'identité et ARN de rôle), saisissez les ARN du fournisseur d'identité AWS et du rôle sous forme de valeurs séparées par des virgules au format
<saml-arn>,<role-arn>. La chaîne combinée devrait ressembler à ce qui suit :arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta,arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
-
Choisissez Enregistrer.
Ensuite, copiez l'ID de l'application Okta. Vous en aurez besoin plus tard pour la chaîne JDBC qui se connecte à Athena.
Recherche et copie de l'ID de l'application Okta
-
Choisissez l'onglet General (Général) de l'application Okta.
-
Faites défiler la page jusqu'à la section App Embed Link (Intégrer lien d'application).
-
À partir de Embed Link (Intégrer lien), copiez et enregistrez de manière sécurisée la partie de l'URL contenant l'ID de l'application Okta. L'ID de l'application Okta est la partie de l'URL après
amazon_aws_redshift/, mais avant la prochaine barre oblique. Par exemple, si l'URL contientamazon_aws_redshift/aaa/bbb, l'ID de l'application estaaa.
Note
Le lien intégré ne peut pas être utilisé dans le but de se connecter directement à la console Athena pour afficher les bases de données. Les autorisations Lake Formation pour les utilisateurs et les groupes SAML sont reconnues uniquement lorsque vous utilisez le pilote JDBC ou ODBC pour envoyer des requêtes à Athena. Pour afficher les bases de données, vous pouvez utiliser l'outil SQL Workbench/J, qui utilise le pilote JDBC pour se connecter à Athena. L'outil SQL Workbench/J est couvert par Étape 7 : Vérifier l'accès via le client JDBC d'Athena.
Étape 6 : Accorder des autorisations aux utilisateurs et aux groupes par le biais de AWS Lake Formation
Dans cette étape, vous utilisez la console Lake Formation pour accorder des autorisations sur une table à l'utilisateur et au groupe SAML. Vous devez effectuer les tâches suivantes :
-
Spécifier l'ARN de l'utilisateur Okta SAML et les autorisations d'utilisateur associées sur la table.
-
Spécifier l'ARN du groupe Okta SAML et les autorisations de groupe associées sur la table.
-
Vérifiez les autorisations que vous avez accordées.
Octroi d'autorisations dans Lake Formation à l'utilisateur Okta
-
Connectez-vous à la en tant qu'administrateur du lac de données AWS Management Console.
Ouvrez la console Lake Formation à l’adresse https://console.aws.amazon.com/lakeformation/
. -
Dans le panneau de navigation, choisissez Tables, puis sélectionnez la table pour laquelle vous souhaitez accorder des autorisations. Ce tutoriel utilise la table
nyctaxide la base de donnéestripdb.
-
Dans Actions, choisissez Grant (Accorder).
-
Dans la boîte de dialogue Grant permissions (Accorder des autorisations), saisissez les informations suivantes :
-
Dans Utilisateurs et groupes SAML et Amazon Quick Suite, entrez l’ARN de l’utilisateur Okta SAML au format suivant :
arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>@<anycompany.com> -
Pour Columns (Colonnes), pour Choose filter type (Choisir un type de filtre), choisissez Include columns (Inclure des colonnes) ou Exclude columns (Exclure des colonnes).
-
Utilisez la liste déroulante Choose one or more columns (Choisir une ou plusieurs colonnes) sous le filtre pour spécifier les colonnes que vous voulez inclure ou exclure pour ou de l'utilisateur.
-
Pour Table permissions (Autorisations de table), choisissez Select (Sélectionner). Ce tutoriel n'accorde que l'autorisation
SELECT; vos besoins peuvent varier.
-
-
Choisissez Grant (Accorder).
Vous devez maintenant effectuer des étapes similaires pour le groupe Okta.
Octroi d'autorisations dans Lake Formation au groupe Okta
-
Sur la page Tables de la console Lake Formation, assurez-vous que la table nyctaxi est toujours sélectionnée.
-
Dans Actions, choisissez Grant (Accorder).
-
Dans la boîte de dialogue Grant permissions (Accorder des autorisations), saisissez les informations suivantes :
-
Dans Utilisateurs et groupes SAML et Amazon Quick Suite, entrez l’ARN du groupe Okta SAML au format suivant :
arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst -
Pour Columns (Colonnes), Choose filter type (Choisir un type de filtre), choisissez Include columns (Inclure des colonnes).
-
Pour Choose one or more columns (Choisir une ou plusieurs colonnes), choisissez les trois premières colonnes de la table.
-
Pour Table permissions (Autorisations de table), choisissez les autorisations d'accès spécifiques à accorder. Ce tutoriel n'accorde que l'autorisation
SELECT; vos besoins peuvent varier.
-
-
Choisissez Grant (Accorder).
-
Pour vérifier les autorisations que vous avez accordées, choisissez Actions, View permissions (Afficher les autorisations).
La page Autorisations de données de la table
nyctaxiindique les autorisations de l’utilisateur athena-okta-user et du groupe lf-business-analyst.
Étape 7 : Vérifier l'accès via le client JDBC d'Athena
Vous pouvez maintenant utiliser un client JDBC pour effectuer une connexion de test à Athena en tant qu'utilisateur Okta SAML.
Dans cette section, vous effectuez les tâches suivantes :
-
Préparer le client de test : téléchargez le pilote JDBC d'Athena, installez SQL Workbench et ajoutez le pilote à Workbench. Ce tutoriel utilise SQL Workbench pour accéder à Athena via l'authentification Okta et pour vérifier les autorisations Lake Formation.
-
Dans SQL Workbench :
-
Créez une connexion pour l'utilisateur Okta Athena.
-
Exécutez des requêtes de test en tant qu'utilisateur Okta Athena.
-
Créez et testez une connexion pour l'utilisateur analyste commercial.
-
-
Dans la console Okta, ajoutez l'utilisateur analyste commercial au groupe développeur.
-
Dans la console Lake Formation, configurez les autorisations de table pour le groupe développeur.
-
Dans SQL Workbench, exécutez des requêtes de test en tant qu'utilisateur analyste commercial et vérifiez comment la modification des autorisations affecte les résultats.
Préparation du client de test
-
Téléchargez et extrayez le pilote JDBC Athena compatible Lake Formation (version 2.0.14 ou ultérieure) à partir de Connexion à Amazon Athena avec JDBC.
-
Téléchargez et installez l'outil d'interrogation SQL gratuit SQL Workbench/J
, disponible sous une licence Apache 2.0 modifiée. -
Dans SQL Workbench/J, choisissez File (Fichier), puis Manage Drivers (Gérer les pilotes).
-
Dans la boîte de dialogue Manage Drivers (Gérer les pilotes), effectuez les étapes suivantes :
-
Choisissez l'icône du nouveau pilote.
-
Pour Nom, saisissez
Athena. -
Pour Library (Bibliothèque), recherchez et choisissez le fichier Simba Athena JDBC
.jarque vous venez de télécharger. -
Choisissez OK.
-
Vous pouvez maintenant créer et tester une connexion pour l'utilisateur Okta Athena.
Création d'une connexion pour l'utilisateur Okta Athena
-
Choisissez File (Fichier), Connect window (Fenêtre de connexion).
-
Dans la boîte de dialogue Connection profile (Profil de connexion), créez une connexion en saisissant les informations suivantes :
-
Dans le champ du nom, saisissez
Athena_Okta_User_Connection. -
Pour Driver (Pilote), choisissez le pilote JDBC Simba Athena.
-
Pour URL, effectuez l'une des actions suivantes :
-
Pour utiliser une URL de connexion, saisissez une chaîne de connexion d'une seule ligne. L'exemple suivant ajoute des sauts de ligne pour plus de lisibilité.
jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-okta-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-app-id; SSL_Insecure=true; LakeFormationEnabled=true; -
Pour utiliser une URL basée sur le profil AWS, effectuez les étapes suivantes :
-
Configurer un profil AWS qui contient un fichier d'informations d'identification AWS comme dans l'exemple suivant.
[athena_lf_dev] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domainapp_id=okta-app-iduid=athena-okta-user@anycompany.compwd=password -
Pour URL, saisissez une chaîne de connexion d'une seule ligne comme dans l'exemple suivant. L'exemple ajoute des sauts de ligne pour plus de lisibilité.
jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_dev; SSL_Insecure=true; LakeFormationEnabled=true;
-
Notez que ces exemples sont des représentations de base de l'URL nécessaire pour se connecter à Athena. Pour obtenir la liste complète des paramètres pris en charge dans l'URL, veuillez consulter la documentation JDBC.
-
L'image suivante montre un profil de connexion SQL Workbench qui utilise une URL de connexion.
-
Maintenant que vous avez établi une connexion pour l'utilisateur Okta, vous pouvez la tester en récupérant certaines données.
Test de la connexion de l'utilisateur Okta
-
Choisissez Test, puis vérifiez que la connexion réussit.
-
Dans la fenêtre Statement (Instruction) de SQL Workbench, exécutez la commande SQL
DESCRIBEsuivante. Vérifiez que toutes les colonnes sont affichées.DESCRIBE "tripdb"."nyctaxi"
-
Dans la fenêtre Statement (Instruction) de SQL Workbench, exécutez la commande SQL
SELECTsuivante. Vérifiez que toutes les colonnes sont affichées.SELECT * FROM tripdb.nyctaxi LIMIT 5
Vérifiez ensuite que l'utilisateur athena-ba-user, en tant que membre du groupe lf-business-analyst, n'a accès qu'aux trois premières colonnes de la table que vous avez spécifiée plus tôt dans Lake Formation.
Vérification de l'accès de l'utilisateur athena-ba-user
-
Dans SQL Workbench, dans la boîte de dialogue Connection profile (Profil de connexion), créez un autre profil de connexion.
-
Pour le nom du profil de connexion, saisissez
Athena_Okta_Group_Connection. -
Pour Driver (Pilote), choisissez le pilote JDBC Simba Athena.
-
Pour URL, effectuez l'une des actions suivantes :
-
Pour utiliser une URL de connexion, saisissez une chaîne de connexion d'une seule ligne. L'exemple suivant ajoute des sauts de ligne pour plus de lisibilité.
jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-ba-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-application-id; SSL_Insecure=true; LakeFormationEnabled=true; -
Pour utiliser une URL basée sur le profil AWS, effectuez les étapes suivantes :
-
Configurer un profil AWS qui contient un fichier d'informations d'identification comme dans l'exemple suivant.
[athena_lf_ba] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domainapp_id=okta-application-iduid=athena-ba-user@anycompany.compwd=password -
Pour URL, saisissez une chaîne de connexion d'une seule ligne comme la suivante. L'exemple ajoute des sauts de ligne pour plus de lisibilité.
jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_ba; SSL_Insecure=true; LakeFormationEnabled=true;
-
-
-
-
Choisissez Test pour confirmer que la connexion est réussie.
-
Dans la fenêtre SQL Statement (Instruction SQL), exécutez les mêmes commandes SQL
DESCRIBEetSELECTque précédemment et vérifiez les résultats.Comme athena-ba-user est membre du groupe lf-business-analyst, seules les trois premières colonnes que vous avez spécifiées dans la console Lake Formation sont renvoyées.
Revenez ensuite à la console Okta pour ajouter l'utilisateur athena-ba-user au groupe Okta lf-developer.
Ajout de l'utilisateur athena-ba-user au groupe lf-developer
-
Connectez-vous à la console Okta en tant qu'utilisateur administratif du domaine Okta attribué.
-
Choisissez Directory (Répertoire), puis choisissez Groups (Groupes).
-
Sur la page Groups (Groupes), choisissez le groupe lf-developer.
-
Choisissez Manage People (Gérer personnes).
-
Dans la liste Not Members (Non membres), choisissez l'utilisateur athena-ba-user pour l'ajouter au groupe lf-developer.
-
Choisissez Enregistrer.
Revenez maintenant à la console Lake Formation pour configurer les autorisations de table pour le groupe lf-developer.
Configuration des autorisations de table pour le groupe lf-developer
-
Connectez-vous à la console Lake Formation en tant qu'administrateur de lac de données.
-
Dans le volet de navigation, choisissez Tables.
-
Sélectionnez la table nyctaxi.
-
Choisissez Actions, Grant (Accorder).
-
Dans la boîte de dialogue Grant permissions (Accorder des autorisations), saisissez les informations suivantes :
-
Dans Utilisateurs et groupes SAML et Amazon Quick Suite, entrez l’ARN du groupe Okta SAML lf-developer au format suivant :
-
Pour Columns (Colonnes), Choose filter type (Choisir un type de filtre), choisissez Include columns (Inclure des colonnes).
-
Choisissez la colonne trip_type.
-
Pour Table permissions (Autorisations de table), choisissez SELECT (Sélectionner).
-
-
Choisissez Grant (Accorder).
Vous pouvez maintenant utiliser SQL Workbench pour vérifier la modification des autorisations pour le groupe lf-developer. La modification devrait se refléter dans les données disponibles pour l'utilisateur athena-ba-user, qui est maintenant membre du groupe lf-developer.
Vérification de la modification des autorisations pour l'utilisateur athena-ba-user
-
Fermez le programme SQL Workbench, puis rouvrez-le.
-
Connectez-vous au profil de l'utilisateur athena-ba-user.
-
À partir de la fenêtre Statement (Instruction), exécutez les mêmes instructions SQL que précédemment :
Cette fois, la colonne trip_type s'affiche.
Étant donné que l'utilisateur athena-ba-user est maintenant membre des deux groupes lf-developer et lf-business-analyst, la combinaison des autorisations Lake Formation pour ces groupes détermine les colonnes qui sont renvoyées.
Conclusion
Dans ce tutoriel, vous avez configuré l'intégration d'Athena à AWS Lake Formation en utilisant Okta comme fournisseur SAML. Vous avez utilisé Lake Formation et IAM pour contrôler les ressources disponibles pour l'utilisateur SAML dans le catalogue de données AWS Glue de votre lac de données.
Ressources connexes
Pour plus d'informations, consultez les ressources suivantes.
-
Octroi et révocation des autorisations du catalogue de données dans le Guide du développeur AWS Lake Formation.
-
Fournisseurs d'identité et fédération dans le Guide de l'utilisateur IAM.
-
Création de fournisseurs d'identité IAM SAML dans le Guide de l'utilisateur IAM.
-
Activation de la fédération à AWS à l'aide de Windows Active Directory, ADFS et SAML 2.0
sur le Blog de sécurité AWS.