Comment puis-je résoudre les erreurs d'autorisation de Lake Formation dans AWS Glue ?

Lecture de 3 minute(s)
0

Mon robot AWS Glue ou ma tâche ETL échoue en raison d'une erreur liée aux autorisations d’AWS Lake Formation. L'erreur se produit alors que j'ai configuré les autorisations AWS Identity and Access Management (IAM) requises.

Résolution

Les erreurs d'autorisation courantes incluent des autorisations par défaut insuffisantes ou des autorisations insuffisantes pour accorder des autorisations à d'autres utilisateurs.

Autorisations par défaut insuffisantes

Vous devez fournir des autorisations sur la base de données par défaut pour le rôle qui essaie d'interroger la table. Si ces autorisations sont manquantes, Lake Formation génère une exception similaire à l’exception suivante :

« AnalysisException: Unable to verify existence of default database: com.amazonaws.services.glue.model.AccessDeniedException: Insufficient Lake Formation permission(s) on default »

Pour accorder des autorisations par défaut :

  1. Connectez-vous à votre console Lake Formation en tant qu'administrateur de lac de données.
  2. Dans le volet de gauche, ouvrez Autorisations, Autorisations de lac de données, puis sélectionnez Accorder.
  3. Sur la page Accorder des autorisations de lac de données, sous Principaux, choisissez la catégorie de principaux de votre tâche Glue.
  4. Sous Utilisateurs et rôles IAM, sélectionnez un ou plusieurs rôles IAM.
  5. Sous Identifications LF ou ressources de catalogue, sélectionnez Ressources du catalogue de données nommées, puis sous Bases de données, sélectionnez Par défaut. Si vous ne voyez pas apparaître de base de données par défaut, créez-en une comme décrit ultérieurement.
  6. Sur la page Accorder des autorisations de lac de données, sous Autorisations de base de données, dans Autorisations de base de données, sélectionnez Décrire.
  7. Cliquez sur le bouton Accorder.
  8. Réexécutez votre tâche dans AWS Glue et vérifiez qu'elle aboutit.

Pour créer une base de données par défaut, s'il n'en existe pas déjà une :

  1. Ouvrez Rôles et tâches administratifs, puis sous Créateurs de base de données, sélectionnez Accorder.
  2. Dans la boîte de dialogue Accorder des autorisations, sélectionnez votre rôle Glue.
  3. Sous Autorisations octroyables, sélectionnez l'autorisation Créer une base de données pour les autorisations d'accès spécifiques à accorder, puis sélectionnez Accorder. Le rôle IAM associé à la tâche AWS Glue est alors configuré en tant que créateur de base de données dans Lake Formation. Lake Formation crée ensuite automatiquement une base de données par défaut (si aucune n'est présente) et accorde les autorisations requises pour le rôle.
  4. Exécutez votre tâche dans AWS Glue et vérifiez qu'elle aboutit.

Autorisations insuffisantes pour accorder des autorisations

Vous devez disposer d'autorisations octroyables sur une table AWS Glue lorsque vous accordez des autorisations à cette dernière. Par exemple, pour accorder des autorisations via un modèle CloudFormation ou un pipeline CI/CD, vous devez disposer d'autorisations octroyables. Si des autorisations octroyables sont manquantes, Lake Formation génère une exception comme l’exception suivante :

« Insufficient Glue permissions to access table test_table (Service: AWSLakeFormation; Status Code: 400; Error Code: AccessDeniedException; »

  1. Accordez des autorisations d'accès à la table ou à la base de données à un utilisateur ou à un rôle à l'aide de la méthode de ressource nommée.
  2. Cet utilisateur ou ce rôle peut accorder des autorisations, par exemple via AWS CloudFormation ou un pipeline CICD, à d'autres utilisateurs ou rôles.

Informations connexes

Gestion des autorisations de Lake Formation

Enregistrement d'un emplacement Amazon S3

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 mois