Pourquoi ma tâche analyseur ou ETL AWS Glue échoue-t-elle avec l'erreur « Permission(s) insuffisante(s) de Lake Formation » ?

Dernière mise à jour : 15-02-2022

Ma tâche Analyseur ou ETL AWS Glue échoue avec l'erreur « Permission(s) insuffisante(s) de Lake Formation ». Toutefois, le rôle AWS Identity and Access Management (IAM) associé à la tâche analyseur AWS Glue ou à la tâche ETL AWS Glue possède les autorisations IAM nécessaires.

Brève description

L'accès aux ressources du catalogue de données AWS Glue et d’Amazon Simple Storage Service (Amazon S3) est géré non seulement par des politiques IAM, mais également par des autorisations AWS Lake Formation. Vous obtenez l'erreur Autorisation(s) de Lake Formation insuffisante(s) lorsque le rôle IAM associé à la tâche analyseur ou ETL AWS Glue ne dispose pas des autorisations Lake Formation nécessaires pour lire et/ou écrire depuis/vers les éléments suivants :

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

Résolution

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

Si l'erreur est due à des problèmes d'accès liés à la base de données du catalogue de données, le message d'erreur se présente comme suit :

ERROR : Insufficient Lake Formation permission(s) on example-database (Database name: example-database)

Pour résoudre cette erreur, connectez-vous à la console AWS Lake Formation avec le rôle d'administrateur du lac de données, puis accordez l'autorisation Créer une base de données au rôle IAM associé à la tâche analyseur/ETL :

  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, sélectionnez le rôle IAM pour lequel vous souhaitez accorder l'accès.
  5. Sous Autorisations du catalogue, sélectionnez Créer une base de données.
  6. Si vous avez besoin du 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 table du catalogue de données

Si l'erreur est due à des problèmes d'accès liés à la table du catalogue de données, le message d'erreur se présente comme suit :

ERROR : Insufficient Lake Formation permission(s) on example-table (Database name: example-database, Table Name: example-table)

Pour résoudre cette erreur, accordez l'autorisation Créer une table pour exemple de base de données au rôle IAM associé à la tâche analyseur/ETL :

  1. Ouvrez la console AWS Lake Formation.
  2. Dans le panneau de navigation, sous Autorisations, choisissez Autorisations du lac de données.
  3. Choisissez Accorder.
  4. Sous Principaux, sélectionnez Utilisateurs 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, sélectionnez Ressources du catalogue de données nommées.
  7. Pour Bases de données, sélectionnez la base de données.
  8. Sous Autorisations de base de données, sélectionnez Créer une table ou Super en fonction de votre cas d'utilisation.
  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 liés au chemin Amazon S3

Si l'erreur est due à des problèmes d'accès liés au chemin Amazon S3, le message d'erreur inclut le chemin S3 et ressemble au suivant :

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

Cela signifie que le rôle IAM associé à la tâche analyseur/ETL n'a pas l'autorisation requise pour accéder au chemin S3.

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

  1. Ouvrez la console AWS Lake Formation.
  2. Dans le panneau de navigation, sous Enregistrer et ingérer, choisissez Emplacements du lac de données.
    Vous pouvez afficher les 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 est différent de celui répertorié dans la liste des emplacements du lac de données, choisissez Enregistrer l'emplacement.
  5. Pour Chemin Amazon S3, choisissez Parcourir, puis sélectionnez le bon chemin S3.
  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 : Lorsque vous enregistrez un emplacement S3, Lake Formation assume le rôle IAM précédent pour accorder des informations d'identification temporaires aux services AWS intégrés qui accèdent aux données de cet emplacement. Par conséquent, assurez-vous que le rôle IAM associé à la tâche analyseur/ETL possède les autorisations requises pour la lecture/écriture dans le compartiment S3 afin d'empêcher l'erreur AccessDenied.
  7. Dans le panneau de navigation, sous Autorisations, choisissez Emplacements des données.
  8. Choisissez Accorder.
  9. Pour Accorder des autorisations, sélectionnez Mon compte.
  10. Sous Utilisateurs et rôles IAM, sélectionnez le rôle IAM pour lequel vous souhaitez accorder l'accès.
  11. Choisissez Accorder.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?