Comment réparer les erreurs d'autorisation de Lake Formation dans AWS Glue ?
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é.
- Ouvrez la console AWS Lake Formation.
- Dans le panneau de navigation, sous Autorisations, choisissez Rôles et tâches d'administration.
- Sous Créateurs de bases de données, choisissez Accorder.
- 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.
- Sous Autorisations du catalogue, sélectionnez Créer une base de données.
- 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.
- 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.
- Ouvrez la console Lake Formation.
- Dans le panneau de navigation, sous Autorisations, choisissez Autorisations du lac de données.
- Choisissez Accorder.
- Sous Principaux, choisissezUtilisateurs et rôles IAM.
- Pour les utilisateurs et rôles IAM, choisissez le rôle IAM associé au crawler.
- Sous Étiquettes LF ou ressources du catalogue, choisissezRessources du catalogue de données nommées.
- Pour Bases de données, choisissez la base de données dans laquelle votre crawler écrit.
- 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.
- 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.
- 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.
- Ouvrez la console Lake Formation.
- Dans le panneau de navigation, sous Autorisations, choisissez Autorisations du lac de données.
- Choisissez Accorder.
- Sous Principaux, choisissezUtilisateurs et rôles IAM.
- Pour les Utilisateurs et rôles IAM, sélectionnez le rôle IAM.
- Sous Étiquettes LF ou ressources du catalogue, choisissez Ressources du catalogue de données nommées.
- Pour Bases de données, choisissez la base de données dans laquelle votre crawler écrit.
- Dans Tables-facultatif, choisissez la table à laquelle votre crawler accède.
- Sous Autorisations relatives aux tables, choisissez Sélectionner, Décrire ou Modifier en fonction de votre cas d'utilisation.
- 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.
- 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.
- Ouvrez la console IAM.
- Créez une politique IAM pour votre crawler AWS Glue ou votre rôle professionnel dans AWS Glue.
- 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.
- 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 :
- Ouvrez la console Lake Formation.
- Dans le panneau de navigation, sous Enregistrer et intégrer, choisissez Emplacements du lac de données.
- 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.
- 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.
- Pour le chemin Amazon S3, choisissez Parcourir, puis choisissez le chemin Amazon S3 approprié.
- 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.
- Dans le panneau de navigation, sous Autorisations, choisissez Emplacements des données.
- Choisissez Accorder.
- Pour Accorder des autorisations, choisissez Mon compte.
- Sous Utilisateurs et rôles IAM, choisissez le rôle IAM auquel vous souhaitez accorder l'accès.
- Choisissez Accorder.
Informations connexes

Contenus pertinents
- demandé il y a 3 moislg...
- demandé il y a 8 moislg...
- demandé il y a 8 moislg...
- demandé il y a 6 moislg...
- AWS OFFICIELA mis à jour il y a 2 ans
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 9 mois