Gestione dell'accesso a una tabella o a un database con Lake Formation - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione dell'accesso a una tabella o a un database con Lake Formation

Dopo l'integrazione dei table bucket con i servizi di AWS analisi, Lake Formation gestisce l'accesso alle risorse delle tabelle. Lake Formation utilizza il proprio modello di autorizzazioni (permessi Lake Formation) che consente un controllo granulare degli accessi per le risorse del Data Catalog. Lake Formation richiede che ogni principale IAM (utente o ruolo) sia autorizzato a eseguire azioni sulle risorse gestite da Lake Formation. Per ulteriori informazioni, consulta la pagina relativa alla panoramica delle autorizzazioni di Lake Formation nella Guida per gli sviluppatori di AWS Lake Formation . Per informazioni sulla condivisione dei dati tra account, consulta Condivisione dei dati tra account in Lake Formation nella AWS Lake Formation Developer Guide.

Prima che i responsabili IAM possano accedere alle tabelle nei servizi di AWS analisi, devi concedere loro le autorizzazioni Lake Formation su tali risorse.

Nota

Se sei l'utente che ha eseguito l'integrazione del table bucket, disponi già delle autorizzazioni Lake Formation per le tue tabelle. Se sei l'unico preside che accederà ai tuoi tavoli, puoi saltare questo passaggio. Devi solo concedere le autorizzazioni di Lake Formation sulle tue tabelle ad altri responsabili IAM. Ciò consente ad altri principali di accedere alla tabella durante l'esecuzione di query. Per ulteriori informazioni, consulta Concessione dell'autorizzazione a Lake Formation su una tabella o un database.

È necessario concedere ad altri dirigenti IAM le autorizzazioni Lake Formation sulle risorse della tabella per utilizzarli nei seguenti servizi:

  • Amazon Redshift

  • Amazon Data Firehose

  • Amazon QuickSight

  • Amazon Athena

Concessione dell'autorizzazione a Lake Formation su una tabella o un database

Puoi concedere le autorizzazioni principali di Lake Formation su una tabella o un database in un bucket di tabella, tramite la console Lake Formation o il. AWS CLI

Nota

Quando concedi le autorizzazioni di Lake Formation su una risorsa Data Catalog a un account esterno o direttamente a un responsabile IAM in un altro account, Lake Formation utilizza il servizio AWS Resource Access Manager (AWS RAM) per condividere la risorsa. Se l'account del beneficiario appartiene alla stessa organizzazione dell'account concedente, la risorsa condivisa è immediatamente disponibile per il beneficiario. Se l'account del beneficiario non appartiene alla stessa organizzazione, AWS RAM invia un invito all'account del beneficiario per accettare o rifiutare la concessione di risorse. Quindi, per rendere disponibile la risorsa condivisa, l'amministratore del data lake nell'account del beneficiario deve utilizzare la console o accettare l' AWS RAM invito. AWS CLI Per ulteriori informazioni sulla condivisione dei dati tra account, consulta Condivisione dei dati tra account in Lake Formation nella AWS Lake Formation Developer Guide.

Console
  1. Apri la AWS Lake Formation console all'indirizzo https://console.aws.amazon.com/lakeformation/ e accedi come amministratore del data lake. Per ulteriori informazioni su come creare un amministratore di data lake, consulta Create a data lake administrator nella AWS Lake Formation Developer Guide.

  2. Nel riquadro di navigazione, scegli Autorizzazioni dati, quindi scegli Concedi.

  3. Nella pagina Concedi autorizzazioni, in Principali, esegui una delle seguenti operazioni:

    • Per Amazon Athena o Amazon Redshift, scegli utenti e ruoli IAM e seleziona il principale IAM che usi per le query.

    • Per Amazon Data Firehose, scegli utenti e ruoli IAM e seleziona il ruolo di servizio che hai creato per lo streaming sulle tabelle.

    • Per QuickSight, scegli utenti e gruppi SAML e inserisci l'Amazon Resource Name (ARN) del QuickSight tuo utente amministratore.

    • Per l'accesso agli AWS GlueIceberg REST endpoint, scegli utenti e ruoli IAM, quindi seleziona il ruolo IAM che hai creato per il tuo cliente. Per ulteriori informazioni, consulta Crea un ruolo IAM per il tuo cliente

  4. In LF-Tags o risorse del catalogo, scegli Risorse Catalogo dati denominato.

  5. Per Catalogs, scegli il sottocatalogo che hai creato quando hai integrato il tuo table bucket, ad esempio,. account-id:s3tablescatalog/amzn-s3-demo-bucket

  6. Per Database, scegli lo spazio dei nomi del bucket di tabelle S3 che è stato creato.

  7. (Facoltativo) Per le tabelle, scegli la tabella S3 che hai creato nel tuo table bucket.

    Nota

    Se stai creando una nuova tabella nell'editor di query Athena, non selezionare una tabella.

  8. Esegui una di queste operazioni:

    • Se hai specificato una tabella nel passaggio precedente, per le autorizzazioni Table, scegli Super.

    • Se non hai specificato una tabella nel passaggio precedente, vai a Autorizzazioni del database. Per la condivisione dei dati tra account, non puoi scegliere Super per concedere all'altro principale tutte le autorizzazioni sul tuo database. Scegli invece autorizzazioni più dettagliate, come Descrivi.

  9. Scegli Concessione.

CLI
  1. Assicurati di eseguire i seguenti AWS CLI comandi come amministratore del data lake. Per ulteriori informazioni, consulta Creare un amministratore del data lake nella Guida per gli AWS Lake Formation sviluppatori.

  2. Esegui il seguente comando per concedere le autorizzazioni di Lake Formation sulla tabella nel bucket di tabelle S3 a un principale IAM per accedere alla tabella. Per utilizzare questo comando, sostituisci user input placeholders con le tue informazioni.

    aws lakeformation grant-permissions \ --region us-east-1 \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "user or role ARN, for example, arn:aws:iam::account-id:role/example-role" }, "Resource": { "Table": { "CatalogId": "account-id:s3tablescatalog/amzn-s3-demo-bucket", "DatabaseName": "S3 table bucket namespace, for example, test_namespace", "Name": "S3 table bucket table name, for example test_table" } }, "Permissions": [ "ALL" ] }'