Tutoriel : Configuration de l’accès fédéré des utilisateurs Okta à Athena à l’aide de Lake Formation et de JDBC - Amazon Athena

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 :

É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
  1. 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.

  2. 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
  1. Après avoir activé votre compte Okta, connectez-vous en tant qu'utilisateur administratif au domaine Okta attribué.

  2. Dans le panneau de navigation de gauche, choisissez Directory (Répertoire), puis choisissez People (Personnes).

  3. Choisissez Add Person (Ajouter une personne) pour ajouter un nouvel utilisateur qui accédera à Athena via le pilote JDBC.

    Choisissez Add Person (Ajouter une personne).
  4. 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.

    Ajout d'un utilisateur à l'application Okta.
  5. Choisissez Save and Add Another (Enregistrer et ajouter un autre type).

  6. Saisissez les informations pour un autre utilisateur. Cet exemple ajoute l'utilisateur analyste commercial athena-ba-user@anycompany.com.

    Ajout d'un utilisateur à l'application Okta.
  7. 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
  1. Dans le panneau de navigation de gauche, choisissez Directory (Répertoire), puis choisissez Groups (Groupes).

  2. Sur la page Groups (Groupes), choisissez Add Group (Ajouter un groupe).

    Choisissez Add Group (Ajouter un groupe).
  3. 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).

    Ajout d'un groupe Okta.
  4. Choisissez Add Group (Ajouter un groupe).

  5. 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.

  6. Saisissez les informations requises.

    • Pour Name (Nom), saisissez lf-developer.

    • Pour Group Description (Description du groupe), saisissez Developers (Développeurs).

  7. 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
  1. 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 lf-developer.
  2. Choisissez Manage People (Gérer personnes).

    Choisissez Manage People (Gérer personnes).
  3. Dans la liste Not Members (Non membres), choisissez athena-okta-user.

    Choisissez un utilisateur à ajouter à la liste des membres.

    L'entrée de l'utilisateur passe de la liste Not Members (Non membres), à gauche, à la liste Members (Membres), à droite.

    Utilisateur Okta ajouté à un groupe Okta.
  4. Choisissez Enregistrer.

  5. Choisissez Back to Group (Retour au groupe), ou choisissez Directory (Répertoire), puis choisissez Groups (Groupes).

  6. Choisissez le groupe lf-business-analyst.

  7. Choisissez Manage People (Gérer personnes).

  8. Ajoutez le athena-ba-user à la liste Members (Members) du groupe lf-business-analyst, puis choisissez Save (Enregistrer).

  9. 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.

    Un utilisateur a été ajouté à chaque groupe Okta de la console 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
  1. Dans le panneau de navigation Okta, choisissez Applications, Applications afin que vous puissiez configurer une application Okta pour l'authentification SAML à Athena.

  2. Cliquez sur Browse App Catalog (Parcourir le catalogue d'applications).

  3. Dans la zone de recherche, saisissez Redshift.

  4. Choisissez Amazon Web Services Redshift. L'application Okta de ce tutoriel utilise l'intégration SAML existante pour Amazon Redshift.

    Choisissez Amazon Web Services Redshift.
  5. Sur la page Amazon Web Services Redshift, choisissez Add (Ajouter) pour créer une application basée sur SAML pour Amazon Redshift.

    Choisissez Add (Ajouter) pour créer une application basée sur SAML.
  6. Pour Application label (Étiquette d'application), saisissez Athena-LakeFormation-Okta, puis Done (Terminé).

    Saisissez un nom pour l'application Okta.

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
  1. Sur la page Applications, choisissez l'application Athena-LakeFormation-Okta .

  2. Dans l'onglet Assignments (Affectations), choisissez Assign (Affecter), Assign to People (Affecter à des personnes).

    Choisissez Assign (Affecter), Assign to People (Affecter à des personnes).
  3. 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.

  4. Choisissez Assign (Affecter) pour affecter l'utilisateur à l'application.

    Choisissez Attribuer.
  5. Choisissez Save and Go Back (Sauvegarder et revenir).

  6. Sélectionnez Exécuté.

  7. Dans l'onglet Assignments (Affectations) de l'application Athena-LakeFormation-Okta, choisissez Assign (Affecter), Assign to Groups (Affecter à des groupes).

  8. Pour lf-business-analyst, choisissez Assign (Affecter) pour affecter l'application Athena-LakeFormation-Okta au groupe lf-business-analyst, puis choisissez Done (Terminé).

    Affectation d'une application Okta à un groupe d'utilisateurs Okta.

    Le groupe s'affiche dans la liste des groupes pour l'application.

    L'application Okta est affectée au groupe Okta.

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
  1. Choisissez l'onglet Sign On (Authentification) de l'application Okta, puis cliquez à droite sur Identity Provider metadata (Métadonnées du fournisseur d'identité).

    Faites un clic droit sur Identity Provider metadata (Métadonnées du fournisseur d'identité).
  2. 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).

    Enregistrement des métadonnées du fournisseur d'identité.

É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
  1. 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/).

  2. Dans le panneau de navigation, choisissez Identity providers (Fournisseurs d'identité), puis Add provider (Ajouter un fournisseur).

  3. 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é.

  4. 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
  1. Dans le panneau de navigation de la console IAM, choisissez Roles (Rôles), puis Create role (Créer un rôle).

  2. Sur la page Create role (Créer un rôle), suivez les étapes ci-dessous :

    Configuration d'un rôle IAM pour utiliser SAML 2.0.
    1. Pour Select type of trusted entity (Sélectionner le type d'entité de confiance), choisissez SAML 2.0 Federation.

    2. Pour SAML provider (Fournisseur SAML), sélectionnez AthenaLakeFormationOkta.

    3. 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).

    4. Choisissez Suivant : Autorisations.

  3. Sur la page Attach Permissions policies (Attacher les politiques d'autorisations), pour Filter policies (Politiques de filtrage), saisissez Athena.

  4. Sélectionnez la politique gérée AmazonAthenaFullAccess, puis cliquez sur Next: Tags (Suivant : Identifications).

    Attachement de la politique gérée AmazonAthenaFullAccess au rôle IAM.
  5. Sur la page Add tags (Ajouter des identifications), choisissez Next: Review (Suivant : Révision).

  6. 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).

    Saisissez un nom pour le rôle IAM.

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
  1. Dans la liste des rôles de la console IAM, choisissez le rôle nouvellement créé Athena-LakeFormation-OktaRole.

  2. Sur la page Summary (Résumé) du rôle, dans l'onglet Permissions (Autorisations), choisissez Add inline policy (Ajouter une politique en ligne).

  3. Sur la page Créer une politique, choisissez JSON.

  4. Ajoutez une politique en ligne comme la suivante qui donne accès à Lake Formation et aux API AWS Glue.

    JSON
    { "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" } }
  5. Choisissez Review policy (Examiner une politique).

  6. Dans le champ Name (Nom), saisissez un nom pour la politique (par exemple, LakeFormationGlueInlinePolicy).

  7. Choisissez Créer une politique.

Ajout d'une politique en ligne au rôle pour l'emplacement des résultats des requêtes Athena
  1. 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).

  2. Sur la page Créer une politique, choisissez JSON.

  3. 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).

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AthenaQueryResultsPermissionsForS3", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<athena-query-results-bucket>", "arn:aws:s3:::<athena-query-results-bucket>/*" ] } ] }
  4. Choisissez Review policy (Examiner une politique).

  5. Dans le champ Name (Nom), saisissez un nom pour la politique (par exemple, AthenaQueryResultsInlinePolicy).

  6. 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
  1. 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
  2. Enregistrez l'ARN complet en toute sécurité pour référence ultérieure.

  3. Dans le panneau de navigation de la console IAM, choisissez Identity providers (Fournisseurs d'identité).

  4. Choisissez le fournisseur AthenaLakeFormationOkta.

  5. 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
  6. 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
  1. Connectez-vous à la console de développement Okta.

  2. Choisissez l'onglet Applications, puis choisissez l'application Athena-LakeFormation-Okta.

  3. Choisissez l'onglet Sign On (Authentification) de l'application, puis choisissez Edit (Modifier).

    Modifiez l'application Okta.
  4. Choisissez Attributes (optional) (Attributs [facultatif]) pour les développer.

    Ajout d'un attribut URL Lake Formation d'utilisateur à l'application Okta.
  5. 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.

  6. 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.

    Ajout d'un attribut URL Lake Formation de groupe à l'application Okta.
  7. 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
  1. 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
    Saisie de l'ARN du fournisseur d'identité et de l'ARN du rôle IAM dans l'application Okta.
  2. 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
  1. Choisissez l'onglet General (Général) de l'application Okta.

    Choisissez l'onglet General (Général) de l'application Okta.
  2. Faites défiler la page jusqu'à la section App Embed Link (Intégrer lien d'application).

  3. À 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 contient amazon_aws_redshift/aaa/bbb, l'ID de l'application est aaa.

    Copie de l'ID de l'application Okta.
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
  1. Connectez-vous à la en tant qu'administrateur du lac de données AWS Management Console.

  2. Ouvrez la console Lake Formation à l’adresse https://console.aws.amazon.com/lakeformation/.

  3. Dans le panneau de navigation, choisissez Tables, puis sélectionnez la table pour laquelle vous souhaitez accorder des autorisations. Ce tutoriel utilise la table nyctaxi de la base de données tripdb.

    Choisissez la table pour laquelle vous voulez accorder des autorisations.
  4. Dans Actions, choisissez Grant (Accorder).

    Choisissez Grant (Accorder).
  5. Dans la boîte de dialogue Grant permissions (Accorder des autorisations), saisissez les informations suivantes :

    1. 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>
    2. Pour Columns (Colonnes), pour Choose filter type (Choisir un type de filtre), choisissez Include columns (Inclure des colonnes) ou Exclude columns (Exclure des colonnes).

    3. 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.

    4. Pour Table permissions (Autorisations de table), choisissez Select (Sélectionner). Ce tutoriel n'accorde que l'autorisation SELECT ; vos besoins peuvent varier.

      Octroi d'autorisations de niveau table et colonne à un utilisateur Okta.
  6. Choisissez Grant (Accorder).

Vous devez maintenant effectuer des étapes similaires pour le groupe Okta.

Octroi d'autorisations dans Lake Formation au groupe Okta
  1. Sur la page Tables de la console Lake Formation, assurez-vous que la table nyctaxi est toujours sélectionnée.

  2. Dans Actions, choisissez Grant (Accorder).

  3. Dans la boîte de dialogue Grant permissions (Accorder des autorisations), saisissez les informations suivantes :

    1. 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
    2. Pour Columns (Colonnes), Choose filter type (Choisir un type de filtre), choisissez Include columns (Inclure des colonnes).

    3. Pour Choose one or more columns (Choisir une ou plusieurs colonnes), choisissez les trois premières colonnes de la table.

    4. 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.

      Octroi d'autorisations de table à un groupe Okta.
  4. Choisissez Grant (Accorder).

  5. Pour vérifier les autorisations que vous avez accordées, choisissez Actions, View permissions (Afficher les autorisations).

    Choisissez View permissions (Afficher les autorisations) pour vérifier les autorisations que vous avez accordées.

    La page Autorisations de données de la table nyctaxi indique les autorisations de l’utilisateur athena-okta-user et du groupe lf-business-analyst.

    Affichage des autorisations accordées à l'utilisateur et au groupe Okta.

É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
  1. 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.

  2. Téléchargez et installez l'outil d'interrogation SQL gratuit SQL Workbench/J, disponible sous une licence Apache 2.0 modifiée.

  3. Dans SQL Workbench/J, choisissez File (Fichier), puis Manage Drivers (Gérer les pilotes).

    Choisissez Manage Drivers (Gérer les pilotes).
  4. Dans la boîte de dialogue Manage Drivers (Gérer les pilotes), effectuez les étapes suivantes :

    1. Choisissez l'icône du nouveau pilote.

    2. Pour Nom, saisissez Athena.

    3. Pour Library (Bibliothèque), recherchez et choisissez le fichier Simba Athena JDBC .jar que vous venez de télécharger.

    4. Choisissez OK.

      Ajout du pilote JDBC Athena à SQL Workbench.

Vous pouvez maintenant créer et tester une connexion pour l'utilisateur Okta Athena.

Création d'une connexion pour l'utilisateur Okta Athena
  1. Choisissez File (Fichier), Connect window (Fenêtre de connexion).

    Choisissez Connect window (Fenêtre de connexion).
  2. 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 :

        1. 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-domain app_id=okta-app-id uid=athena-okta-user@anycompany.com pwd=password
        2. 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.

    Profil de connexion dans SQL Workbench.

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
  1. Choisissez Test, puis vérifiez que la connexion réussit.

  2. Dans la fenêtre Statement (Instruction) de SQL Workbench, exécutez la commande SQL DESCRIBE suivante. Vérifiez que toutes les colonnes sont affichées.

    DESCRIBE "tripdb"."nyctaxi"
    Toutes les colonnes sont affichées.
  3. Dans la fenêtre Statement (Instruction) de SQL Workbench, exécutez la commande SQL SELECT suivante. Vérifiez que toutes les colonnes sont affichées.

    SELECT * FROM tripdb.nyctaxi LIMIT 5
    Vérifiez que toutes les colonnes sont affichées.

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
  1. 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 :

        1. 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-domain app_id=okta-application-id uid=athena-ba-user@anycompany.com pwd=password
        2. 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;
  2. Choisissez Test pour confirmer que la connexion est réussie.

  3. Dans la fenêtre SQL Statement (Instruction SQL), exécutez les mêmes commandes SQL DESCRIBE et SELECT que 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.

    Seules les trois premières colonnes sont renvoyées.
    Données des trois premières colonnes.

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
  1. Connectez-vous à la console Okta en tant qu'utilisateur administratif du domaine Okta attribué.

  2. Choisissez Directory (Répertoire), puis choisissez Groups (Groupes).

  3. Sur la page Groups (Groupes), choisissez le groupe lf-developer.

    Choisissez le groupe lf-developer.
  4. Choisissez Manage People (Gérer personnes).

  5. Dans la liste Not Members (Non membres), choisissez l'utilisateur athena-ba-user pour l'ajouter au groupe lf-developer.

  6. 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
  1. Connectez-vous à la console Lake Formation en tant qu'administrateur de lac de données.

  2. Dans le volet de navigation, choisissez Tables.

  3. Sélectionnez la table nyctaxi.

  4. Choisissez Actions, Grant (Accorder).

  5. 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).

  6. 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
  1. Fermez le programme SQL Workbench, puis rouvrez-le.

  2. Connectez-vous au profil de l'utilisateur athena-ba-user.

  3. À 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.

    La quatrième colonne est disponible pour la requête.

    É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.

    La quatrième colonne des résultats des donné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.

Pour plus d'informations, consultez les ressources suivantes.