Come posso risolvere gli errori di autorizzazione di Lake Formation in AWS Glue?

7 minuti di lettura
0

Il mio crawler AWS Glue o il mio processo ETL falliscono e si verifica un errore relativo ad AWS Lake Formation. Tuttavia, ho configurato le autorizzazioni AWS Identity and Access Management (IAM) richieste.

Breve descrizione

Per accedere a risorse come Catalogo dati AWS Glue e Amazon Simple Storage Service (Amazon S3), devi disporre delle policy IAM e delle autorizzazioni Lake Formation corrette. Quando un ruolo IAM associato al crawler o al processo ETL di Amazon S3 non dispone di autorizzazioni Lake Formation sufficienti, viene visualizzato un errore. È necessario disporre delle autorizzazioni corrette di Lake Formation per leggere e scrivere da e verso le seguenti risorse:

  • Database/tabella nel Catalogo dati
  • Dati sottostanti in Amazon S3

Risoluzione

Problemi di accesso durante la creazione del database del Catalogo dati

Se l'errore è causato dai problemi di creazione del Catalogo dati, viene visualizzato un messaggio di errore simile al seguente:

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

Per risolvere questo errore, utilizza il ruolo di amministratore del data lake per accedere alla console di Lake Formation. Quindi, concedi l'autorizzazione di creazione del database al ruolo IAM pertinente.

  1. Apri la console di AWS Lake Formation.
  2. Nel pannello di navigazione, in Autorizzazioni, scegli Ruoli e attività amministrativi.
  3. In Creatori di database, scegli Concedi.
  4. Per gli utenti e i ruoli IAM, dall'elenco a discesa, scegli il ruolo IAM a cui desideri concedere l'accesso.
  5. In Autorizzazioni catalogo, seleziona Crea database.
  6. Se desideri che il ruolo IAM conceda le autorizzazioni ad altri ruoli nel tuo account, in Autorizzazioni concesse, scegli Crea database.
  7. Scegli Concedi.

Problemi di accesso con il database del Catalogo dei dati

Se l'errore è causato dai problemi di creazione del Catalogo dati, viene visualizzato un messaggio di errore simile a uno dei seguenti:

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)

Per risolvere il primo e il terzo errore, concedi l'autorizzazione di creazione della tabella per example_database al ruolo IAM associato al crawler o al processo ETL.

Per risolvere il secondo errore, concedi l'autorizzazione Descrivi per example_database al ruolo IAM associato al crawler o al processo ETL.

  1. Apri la console Lake Formation.
  2. Nel pannello di navigazione, in Autorizzazioni, scegli Autorizzazioni data lake.
  3. Scegli Concedi.
  4. In Principali, scegli utenti e ruoli IAM.
  5. Per gli utenti e i ruoli IAM, scegli il ruolo IAM associato al crawler.
  6. In LF-tags o risorse del Catalogo, scegli Risorse del Catalogo dati denominate.
  7. Per Database, scegli il database su cui sta scrivendo il crawler.
  8. In Autorizzazioni del database, scegli Crea tabella o Descrivi in base al tuo caso d'uso. Nota: il ruolo del crawler deve disporre delle autorizzazioni Descrivi e Crea tabella sul database su cui sta scrivendo. Per AWS Glue ETL, anche queste autorizzazioni sono sufficienti, a meno che tu non stia eseguendo una chiamata API UpdateDatabase o DeleteDatabase dal processo stesso. In questi casi, concedi le autorizzazioni Alter o Drop.
  9. Se desideri che il ruolo IAM conceda le autorizzazioni ad altri ruoli nel tuo account, imposta le autorizzazioni in Autorizzazioni concesse.
  10. Scegli Concedi.

Problemi di accesso con la tabella del Catalogo dati

Se sono i problemi della tabella del Catalogo dati a causare l'errore, viene visualizzato un messaggio di errore simile a uno dei seguenti:

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

Se ricevi questo errore, significa che il crawler o il processo ETL di AWS Glue sta accedendo alla tabella. Per il crawler, concedi le autorizzazioni Descrivi e Alter per example_table al ruolo IAM associato al crawler.

Per i processi ETL che leggono example_table, concedi le autorizzazioni Descrivi e Seleziona per example_table al ruolo IAM associato al processo. Se il processo ETL sta aggiornando example_table, concedi le autorizzazioni Alter per example_table al ruolo IAM associato al processo.

  1. Apri la console Lake Formation.
  2. Nel pannello di navigazione, in Autorizzazioni, scegli Autorizzazioni data lake.
  3. Scegli Concedi.
  4. In Principali, scegli utenti e ruoli IAM.
  5. Per gli utenti e i ruoli IAM, scegli il ruolo IAM.
  6. In LF-tags o risorse del Catalogo, scegli Risorse del Catalogo dati denominate.
  7. Per Database, scegli il database su cui sta scrivendo il crawler.
  8. In Tables-optional, scegli la tabella a cui accede il crawler.
  9. In Autorizzazioni della tabella, scegli Seleziona, Descrivi o Modifica in base al tuo caso d'uso.
  10. Se desideri che il ruolo IAM conceda le autorizzazioni ad altri ruoli nel tuo account, imposta le autorizzazioni in Autorizzazioni concesse.
  11. Scegli Concedi.

Problemi di accesso con le autorizzazioni IAM di Lake Formation

Se l'errore è causato da problemi di autorizzazione IAM per Lake Formation, viene visualizzato un messaggio di errore simile a uno dei seguenti:

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

Questo errore viene visualizzato quando il ruolo del processo di AWS Glue o il ruolo del crawler di AWS Glue non dispongono di autorizzazioni IAM sufficienti. Il processo o il ruolo deve avere l'autorizzazione per verificare se Lake Formation è in grado di inviare credenziali temporanee al ruolo e alla sede di Amazon S3.

  1. Apri la console IAM.
  2. Crea una policy IAM per il tuo crawler AWS Glue o il tuo ruolo lavorativo in AWS Glue.
  3. Aggiungi l'autorizzazione LakeFormation:GetDataAccess come azione per la risorsa nella policy. Nota: l'API LakeFormation:GetDataAccess deve utilizzare il carattere jolly come risorsa.
  4. Collega la policy al tuo crawler AWS Glue o al ruolo lavorativo di AWS Glue.

Problemi di accesso con il percorso Amazon S3

Se l'errore è causato da problemi di percorso di Amazon S3, il messaggio di errore è simile al seguente. L'errore include il percorso 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/

Questo errore si verifica quando il ruolo IAM associato al crawler o al job ETL non dispone dell'autorizzazione necessaria per accedere al percorso Amazon S3.

Per risolvere questo errore, completa i seguenti passaggi:

  1. Apri la console Lake Formation.
  2. Nel pannello di navigazione, in Registra e inserisci, scegli Posizioni dei data lake.
  3. Verifica che il percorso o il prefisso Amazon S3 del percorso indicato nel messaggio di errore sia una posizione registrata nell'elenco delle posizioni del data lake.
  4. Se il percorso o il prefisso Amazon S3 nel messaggio di errore non è elencato nella lista delle sedi del data lake, scegli Registra posizione.
  5. Per il percorso Amazon S3, scegli Sfoglia, quindi scegli il percorso Amazon S3 corretto.
  6. Per il ruolo IAM, mantieni la selezione predefinita di AWSServiceRoleForLakeFormationDataAccess. Se utilizzi un ruolo IAM personalizzato, assicurati che i requisiti pertinenti siano soddisfatti. Importante: quando si registra una sede Amazon S3, Lake Formation assume il ruolo IAM precedente. Ciò garantisce credenziali temporanee ai servizi AWS integrati che accedono ai dati in quella posizione. Verifica che il ruolo IAM associato alla posizione Amazon S3 registrata disponga delle autorizzazioni necessarie per leggere e scrivere nel bucket S3. In questo modo si evita l'erroreAccessDenied.
  7. Nel pannello di navigazione, in Autorizzazioni, scegli Posizioni dei dati.
  8. Scegli Concedi.
  9. Per concedere le autorizzazioni, scegli Il mio account.
  10. In Utenti e ruoli IAM, scegli il ruolo IAM per cui desideri concedere l'accesso.
  11. Scegli Concedi.

Informazioni correlate

Gestione delle autorizzazioni Lake Formation

Registrazione di una posizione Amazon S3

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa