Comment réparer les erreurs d'autorisation de Lake Formation dans AWS Glue ?

Lecture de 7 minute(s)
0

Ma tâche crawler ou ETL AWS Glue échoue en raison d'une erreur liée à AWS Lake Formation. Mais j'ai configuré les autorisations AWS Identity and Access Management (IAM) requises.

Brève description

Pour accéder à des ressources telles que le Catalogue de données AWS Glue et Amazon Simple Storage Service (Amazon S3), vous devez disposer des stratégies IAM et des autorisations Lake Formation appropriées. Lorsqu'un rôle IAM associé à votre tâche crawler ou ETL Amazon S3 ne dispose pas des autorisations Lake Formation suffisantes, vous recevez un message d'erreur. Vous devez disposer des autorisations correctes de Lake Formation pour lire et écrire dans les ressources suivantes :

  • Base de données et table du catalogue de données
  • Données sous-jacentes dans Amazon S3

Résolution

Problèmes d'accès lors de la création de la base de données du catalogue de données

Si des problèmes de création de la base de données du catalogue de données sont à l'origine de l'erreur, un message d'erreur similaire au suivant s'affiche :

Insufficient Lake Formation permission(s): Required Create Database on Catalog

Pour résoudre cette erreur, utilisez le rôle d'administrateur du lac de données pour accéder à la console Lake Formation. Accordez ensuite l'autorisation de création de base de données au rôle IAM approprié.

  1. Ouvrez la console AWS Lake Formation.
  2. Dans le panneau de navigation, sous Autorisations, choisissez Rôles et tâches d'administration.
  3. Sous Créateurs de bases de données, choisissez Accorder.
  4. Pour les utilisateurs et les rôles IAM, dans la liste déroulante, choisissez le rôle IAM auquel vous souhaitez accorder l'accès.
  5. Sous Autorisations du catalogue, sélectionnez Créer une base de données.
  6. Si vous voulez le rôle IAM pour accorder des autorisations à d'autres rôles de votre compte, sélectionnez Créer une base de données sous Autorisations accordables.
  7. Choisissez Accorder.

Problèmes d'accès à la base de données du catalogue de données

Si des problèmes de base de données du catalogue de données sont à l'origine de l'erreur, un message d'erreur similaire à l'un des suivants s'affiche :

Insufficient Lake Formation permission(s) on example_database: Required Create Table
Insufficient Lake Formation permission(s) on example_database: (Database name: example_database)
Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)

Pour résoudre les première et troisième erreurs, accordez l'autorisation Créer une table pour example_database au rôle IAM associé à l tâche crawler/ETL.

Pour résoudre la deuxième erreur, accordez l'autorisation Décrire pour example_database au rôle IAM associé à la tâche crawler/ETL.

  1. Ouvrez la console Lake Formation.
  2. Dans le panneau de navigation, sous Autorisations, choisissez Autorisations du lac de données.
  3. Choisissez Accorder.
  4. Sous Principaux, choisissezUtilisateurs et rôles IAM.
  5. Pour les utilisateurs et rôles IAM, choisissez le rôle IAM associé au crawler.
  6. Sous Étiquettes LF ou ressources du catalogue, choisissezRessources du catalogue de données nommées.
  7. Pour Bases de données, choisissez la base de données dans laquelle votre crawler écrit.
  8. Sous Autorisations de base de données, choisissez Créer une table ou Décrire en fonction de votre cas d'utilisation. Remarque : le rôle de crawler doit disposer à la fois des autorisations de Décrire ET de Créer une table sur la base de données dans laquelle il écrit. Pour l'ETL AWS Glue, ces autorisations sont également suffisantes, sauf si vous exécutez un appel d'API UpdateDatabase ou DeleteDatabase depuis la tâche elle-même. Dans ces cas, accordez les autorisations Alter ou Drop.
  9. Si vous avez besoin du rôle IAM pour accorder des autorisations à d'autres rôles de votre compte, sélectionnez les autorisations requises sous Autorisations accordables.
  10. Choisissez Accorder.

Problèmes d'accès à la table du catalogue de données

Si des problèmes liés à la table du catalogue de données sont à l'origine de l'erreur, vous recevez un message d'erreur similaire à l'un des suivants :

Insufficient Lake Formation permission(s) on example_table (Database name: example_database, Table Name: example_table)
Insufficient Lake Formation permission(s): Required Alter on example_table

Si vous recevez cette erreur, cela signifie que la tâche crawler ou ETL AWS Glue accède à la table. Pour le crawler, accordez les autorisations Describe et Alter pour example_table au rôle IAM associé au crawler.

Pour les tâches ETL affichant example_table, accordez les autorisations Describe et Select pour example_table au rôle IAM associé à la tâche. Si la tâche ETL met à jour example_table, accordez les autorisations Alter pour example_table au rôle IAM associé à la tâche.

  1. Ouvrez la console Lake Formation.
  2. Dans le panneau de navigation, sous Autorisations, choisissez Autorisations du lac de données.
  3. Choisissez Accorder.
  4. Sous Principaux, choisissezUtilisateurs et rôles IAM.
  5. Pour les Utilisateurs et rôles IAM, sélectionnez le rôle IAM.
  6. Sous Étiquettes LF ou ressources du catalogue, choisissez Ressources du catalogue de données nommées.
  7. Pour Bases de données, choisissez la base de données dans laquelle votre crawler écrit.
  8. Dans Tables-facultatif, choisissez la table à laquelle votre crawler accède.
  9. Sous Autorisations relatives aux tables, choisissez Sélectionner, Décrire ou Modifier en fonction de votre cas d'utilisation.
  10. Si vous avez besoin du rôle IAM pour accorder des autorisations à d'autres rôles de votre compte, sélectionnez les autorisations requises sous Autorisations accordables.
  11. Choisissez Accorder.

Problèmes d'accès liés aux autorisations IAM de Lake Formation

Si des problèmes d'autorisations IAM pour Lake Formation sont à l'origine de l'erreur, un message d'erreur similaire à l'un des suivants s'affiche :

com.amazonaws.services.lakeformation.model.AccessDeniedException: Service Principal: glue.amazonaws.com is not authorized to perform: lakeformation:GetDataAccess
on resource: s3://sample-bucket/sample-prefix/ because no identity-based policy allows the lakeformation:GetDataAccess action

Cette erreur s'affiche lorsque le rôle de tâche AWS Glue ou le rôle crawler AWS Glue ne dispose pas d'autorisations IAM suffisantes. La tâche ou le rôle doit être autorisé à vérifier si Lake Formation peut fournir des informations d'identification temporaires pour le rôle et l'emplacement Amazon S3.

  1. Ouvrez la console IAM.
  2. Créez une politique IAM pour votre crawler AWS Glue ou votre rôle professionnel dans AWS Glue.
  3. Ajoutez l'autorisation lakeformation:GetDataAccess en tant qu'action pour la ressource dans la politique. Remarque : L'API lakeformation:GetDataAccess doit utiliser le caractère générique comme ressource.
  4. Associez la politique à votre crawler AWS Glue ou à votre rôle professionnel dans AWS Glue.

Problèmes d'accès liés au chemin Amazon S3

Si des problèmes de chemin Amazon S3 sont à l'origine de l'erreur, le message d'erreur se présente à peu près comme suit. L'erreur inclut le chemin Amazon S3 :

Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/ (Database name: example-database, Table Name: example-table)<br>
Insufficient Lake Formation permission(s) on s3://s3-example-bucket/example-prefix/

Cette erreur se produit lorsque le rôle IAM associé à la tâche crawler ou ETL ne dispose pas de l'autorisation requise pour accéder au chemin Amazon S3.

Pour résoudre cette erreur, procédez comme suit :

  1. Ouvrez la console Lake Formation.
  2. Dans le panneau de navigation, sous Enregistrer et intégrer, choisissez Emplacements du lac de données.
  3. Vérifiez que le chemin ou le préfixe Amazon S3 du chemin S3 mentionné dans le message d'erreur est un emplacement enregistré dans la liste des emplacements du lac de données.
  4. Si le chemin ou le préfixe S3 du message d'erreur ne figure pas dans la liste des emplacements du lac de données, choisissez Enregistrer l'emplacement.
  5. Pour le chemin Amazon S3, choisissez Parcourir, puis choisissez le chemin Amazon S3 approprié.
  6. Pour le rôle IAM, conservez la sélection par défaut AWSServiceRoleForLakeFormationDataAccess. Si vous devez utiliser un rôle IAM personnalisé, assurez-vous que les conditions requises sont remplies. Important : lors de l'enregistrement d'un emplacement Amazon S3, Lake Formation assume le rôle IAM précédent. Cela confère des informations d'identification temporaires aux services AWS intégrés qui accèdent aux données de cet emplacement. Vérifiez que le rôle IAM associé à l'emplacement Amazon S3 enregistré possède les autorisations requises pour lire et écrire dans le compartiment S3. Cela permet d'éviter l'erreur AccessDenied.
  7. Dans le panneau de navigation, sous Autorisations, choisissez Emplacements des données.
  8. Choisissez Accorder.
  9. Pour Accorder des autorisations, choisissez Mon compte.
  10. Sous Utilisateurs et rôles IAM, choisissez le rôle IAM auquel vous souhaitez accorder l'accès.
  11. Choisissez Accorder.

Informations connexes

Gestion des autorisations Lake Formation

Enregistrement d'un emplacement Amazon S3

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an