Perché il mio crawler o il processo ETL di AWS Glue non riesce riportando l'errore "Autorizzazioni Lake Formation insufficienti"?

Ultimo aggiornamento: 15/02/2022

Il mio crawler o il processo ETL di AWS Glue non riesce riportando l'errore "Autorizzazioni Lake Formation insufficienti". Tuttavia, il ruolo AWS Identity and Access Management (IAM) associato al crawler o al processo ETL di AWS Glue dispone delle autorizzazioni IAM necessarie.

Breve descrizione

L'accesso alle risorse del catalogo dei dati di AWS Glue e Amazon Simple Storage Service (Amazon S3) viene gestito non solo con le policy IAM, ma anche con le autorizzazioni di AWS Lake Formation. Viene visualizzato l'errore Autorizzazioni Lake Formation insufficienti quando il ruolo IAM associato al crawler o al processo ETL di AWS Glue non dispone delle autorizzazioni Lake Formation necessarie per leggere e/o scrivere da/verso quanto segue:

  • Database/tabella nel catalogo dei dati
  • Dati sottostanti in Amazon S3

Soluzione

Problemi di accesso con il database del catalogo dei dati

Se l'errore è causato da problemi di accesso relativi al database del catalogo dei dati, il messaggio di errore è simile al seguente:

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

Per risolvere questo errore, accedi alla console di AWS Lake Formation con il ruolo di amministratore di data lake, quindi concedi l'autorizzazione Crea database al ruolo IAM associato al crawler/processo ETL:

  1. Apri la Console di AWS Lake Formation.
  2. Nel pannello di navigazione, in Permissions (Autorizzazioni), scegli Administrative roles and tasks (Ruoli e attività amministrativi).
  3. In Database creators (Creatori di database), scegli Grant (Concedi).
  4. Per IAM users and roles (Utenti e ruoli IAM), dall'elenco a discesa, seleziona il ruolo IAM per il quale desideri concedere l'accesso.
  5. In Catalog permissions (Autorizzazioni catalogo), seleziona Create database (Crea database).
  6. Se hai bisogno del ruolo IAM per concedere le autorizzazioni ad altri ruoli nel tuo account, seleziona Create database (Crea database) in Grantable permissions (Autorizzazioni concedibili).
  7. Scegli Grant (Concedi).

Problemi di accesso con la tabella del catalogo dei dati

Se l'errore è causato da problemi di accesso relativi alla tabella del catalogo dei dati, il messaggio di errore è simile al seguente:

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

Per risolvere questo errore, concedi l'autorizzazione Crea tabella per example-database al ruolo IAM associato al processo crawler/ETL:

  1. Apri la Console di AWS Lake Formation.
  2. Nel pannello di navigazione, in Permissions (Autorizzazioni), scegli Data lake permissions (Autorizzazioni data lake).
  3. Scegli Grant (Concedi).
  4. In Principals (Principali), seleziona IAM users and roles (Utenti e ruoli IAM).
  5. Per IAM users and roles (Utenti e ruoli IAM), seleziona il ruolo IAM.
  6. In LF-Tags or catalog resources (LF-Tag o risorse catalogo), seleziona Named data catalog resources (Riconoscimento risorse del catalogo dei dati).
  7. Per Databases (Database), seleziona il database.
  8. In Database permissionsAutorizzazioni database, seleziona Create table (Crea tabella) o Super in base al caso d'uso.
  9. Se hai bisogno del ruolo IAM per concedere le autorizzazioni ad altri ruoli nel tuo account, seleziona le autorizzazioni richieste in Grantable permissions (Autorizzazioni concedibili).
  10. Scegli Grant (Concedi).

Problemi di accesso con il percorso Amazon S3

Se l'errore è causato da problemi di accesso relativi al percorso Amazon S3, il messaggio di errore include il percorso S3 ed è simile al seguente:

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

Ciò significa che il ruolo IAM associato al crawler/processo ETL non dispone dell'autorizzazione necessaria per accedere al percorso S3.

Per risolvere l'errore, procedi come segue:

  1. Apri la Console di AWS Lake Formation.
  2. Nel pannello di navigazione, in Register and ingest (Registra e inserisci), scegli Data lake locations (Posizioni dei data lake).
    È possibile visualizzare le posizioni dei data lake.
  3. Verifica che il percorso Amazon S3 o il prefisso del percorso S3 indicato nel messaggio di errore sia una posizione registrata nell'elenco delle Posizioni dei data lake.
  4. Se il percorso o il prefisso S3 nel messaggio di errore è diverso da quello elencato nell'elenco delle Posizioni dei data lake, scegli Register location (Registra posizione).
  5. Per Amazon S3 path (Percorso Amazon S3), scegli Browse (Sfoglia) e seleziona il percorso S3 corretto.
  6. Per IAM role (Ruolo IAM), lascia la selezione predefinita AWSServiceRoleForLakeFormationDataAccess. Se devi utilizzare un ruolo IAM personalizzato, assicurati che i requisiti pertinenti siano soddisfatti.
    Importante: quando registri una posizione S3, Lake Formation assume il ruolo IAM precedente per concedere credenziali temporanee ai servizi AWS integrati che accedono ai dati in quella posizione. Pertanto, assicurati che il ruolo IAM associato al crawler/processo ETL disponga delle autorizzazioni necessarie per leggere/scrivere nel bucket S3 per evitare l'errore AccessDenied.
  7. Nel pannello di navigazione, in Permissions (Autorizzazioni), scegli Data locations (Posizioni dei dati).
  8. Scegli Grant (Concedi).
  9. Per Grant permissions (Concedi autorizzazioni), seleziona My account (Il mio account).
  10. In IAM users and roles (Utenti e ruoli IAM), seleziona il ruolo IAM per il quale si desidera concedere l'accesso.
  11. Scegli Grant (Concedi).

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?