Lakehouse for Apache Iceberg supporta il controllo dell'accesso a livello di catalogo, spazio dei nomi e tabella per le tabelle Apache Iceberg in Cloud Storage che utilizzano il catalogo di runtime Lakehouse.
Il catalogo di runtime Lakehouse gestisce i metadati, mentre le policy IAM (Identity and Access Management) definiscono le autorizzazioni. Puoi utilizzare la
Google Cloud console o la gcloud CLI per ottenere e impostare queste policy IAM.
Prima di iniziare
-
Verifica che la fatturazione sia attivata per il tuo Google Cloud progetto.
-
Abilita l'API BigLake.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli. - Installa e inizializza Google Cloud SDK.
- Verifica di avere un endpoint e uno spazio dei nomi del catalogo REST Apache Iceberg esistenti.
- Verifica di avere una tabella Iceberg Lakehouse esistente all'interno del catalogo e dello spazio dei nomi specificati.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire le liste di controllo dell'accesso (ACL) per cataloghi, spazi dei nomi e tabelle Iceberg, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Tutti:
BigLake Admin (
roles/biglake.admin) per il progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Come funziona
Le policy IAM definiscono quali entità hanno ruoli e autorizzazioni specifici per una risorsa. Puoi gestire l'accesso alle tue risorse ottenendo e impostando queste policy.
Ambito dei ruoli IAM
Puoi concedere i ruoli IAM a diversi livelli della gerarchia delle risorse:
- A livello di progetto: concede l'accesso a tutte le risorse Lakehouse nel progetto.
- A livello di catalogo: concede l'accesso alle risorse appartenenti al catalogo specificato.
- A livello di spazio dei nomi: concede l'accesso alle risorse appartenenti allo spazio dei nomi specificato.
- A livello di tabella: concede l'accesso solo alla tabella specificata.
Ruoli IAM pertinenti
Il seguente elenco mostra alcuni dei ruoli IAM comuni che puoi applicare alle risorse Lakehouse. Per un elenco completo dei ruoli disponibili e delle relative autorizzazioni, consulta Ruoli IAM di Lakehouse.
roles/biglake.admin: fornisce il controllo completo sulle risorse Lakehouse.roles/biglake.user: consente alle entità di utilizzare le risorse Lakehouse, inclusa la lettura e la scrittura dei dati delle tabelle.roles/biglake.viewer: consente alle entità di visualizzare le risorse Lakehouse e leggere i dati delle tabelle.
Best practice
- Privilegio minimo: concedi solo le autorizzazioni necessarie a utenti e account di servizio.
- Utilizza gli ETag: includi sempre l'
etagdi una chiamataget-iam-policyrecente nel file di policy quando utilizziset-iam-policyper evitare sovrascritture involontarie. - Audit logging: assicurati che Cloud Audit Logs siano abilitati per tenere traccia delle modifiche alle policy IAM.
- Controllo della versione: archivia i file di policy in un sistema di controllo della versione.
Applicare i ruoli ACL ai cataloghi
La seguente sezione mostra come applicare le ACL ai cataloghi.
gcloud
Ottenere la policy IAM
Per visualizzare la policy IAM corrente su un catalogo Iceberg Lakehouse, utilizza il gcloud alpha biglake iceberg catalogs
get-iam-policy
comando.
Per ottenere la policy IAM, esegui il seguente comando:
gcloud alpha biglake iceberg catalogs get-iam-policy CATALOG_NAME \ --project=PROJECT_IDSostituisci quanto segue:
CATALOG_NAME: il nome dell'endpoint del catalogo REST Apache Iceberg.PROJECT_ID: il tuo Google Cloud ID del progetto.
Il comando restituisce la policy IAM in formato YAML, che mostra i binding dei ruoli e i membri correnti.
Impostare la policy IAM
Per aggiornare la policy IAM su un catalogo Iceberg Lakehouse, utilizza il gcloud alpha biglake iceberg catalogs set-iam-policy comando.
Questo comando utilizza un file JSON o YAML locale che contiene la policy che vuoi applicare.
Crea un file di policy locale in formato JSON o YAML. Il file di policy deve contenere i binding e un
etag. Il valoreetagfornisce controllo della contemporaneità ottimistico per impedire la sovrascrittura delle modifiche. Per ottenere l'etagcorrente, esegui prima il comandoget-iam-policy.Il seguente esempio mostra un file di policy denominato
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.user", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Per impostare la policy IAM, esegui il seguente comando:
gcloud alpha biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \ --project=PROJECT_IDSostituisci quanto segue:
CATALOG_NAME: il nome dell'endpoint del catalogo REST Apache Iceberg.POLICY_FILE: il percorso del file di policy locale.PROJECT_ID: il tuo Google Cloud progetto ID.
Applicare i ruoli ACL agli spazi dei nomi
La seguente sezione mostra come applicare le ACL agli spazi dei nomi.
La Google Cloud console non visualizza né gestisce le policy IAM ereditate.
Console
Nella Google Cloud console, apri la pagina Lakehouse.
Seleziona un catalogo esistente o creane uno se non ne hai.
Nella tabella Dettagli spazio dei nomi, seleziona uno spazio dei nomi ed espandi le opzioni del menu ().
Fai clic su Gestisci autorizzazioni.
Viene visualizzata la finestra di dialogo Condividi autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci l'account dell'entità a cui vuoi assegnare i ruoli.
In Seleziona un ruolo, scegli un ruolo da assegnare all'account dell'entità.
Fai clic su Salva.
Fai clic su Chiudi.
gcloud
Ottenere la policy IAM
Per visualizzare la policy IAM corrente su uno spazio dei nomi Iceberg Lakehouse, utilizza il gcloud alpha biglake iceberg namespaces
get-iam-policy
comando.
Per ottenere la policy IAM, esegui il seguente comando:
gcloud alpha biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \ --catalog=CATALOG_NAME \ --project=PROJECT_IDSostituisci quanto segue:
NAMESPACE_NAME: il nome dello spazio dei nomi di destinazione all'interno del catalogo.CATALOG_NAME: il nome dell'endpoint del catalogo REST Apache Iceberg.PROJECT_ID: il tuo Google Cloud ID del progetto.
Il comando restituisce la policy IAM in formato YAML, che mostra i binding dei ruoli e i membri correnti.
Impostare la policy IAM
Per aggiornare la policy IAM su uno spazio dei nomi Iceberg Lakehouse, utilizza il comando gcloud alpha biglake iceberg namespaces set-iam-policy.
Questo comando utilizza un file JSON o YAML locale che contiene la policy che vuoi applicare.
Crea un file di policy locale in formato JSON o YAML. Il file di policy deve contenere i binding e un
etag. Il valoreetagfornisce controllo della contemporaneità ottimistico per impedire la sovrascrittura delle modifiche. Per ottenere l'etagcorrente, esegui prima il comandoget-iam-policy.Il seguente esempio mostra un file di policy denominato
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.user", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Per impostare la policy IAM, esegui il seguente comando:
gcloud alpha biglake iceberg namespaces set-iam-policy NAMESPACE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --project=PROJECT_IDSostituisci quanto segue:
NAMESPACE_NAME: il nome dello spazio dei nomi di destinazione all'interno del catalogo.POLICY_FILE: il percorso del file di policy locale.CATALOG_NAME: il nome dell'endpoint del catalogo REST Apache Iceberg.PROJECT_ID: il tuo Google Cloud progetto ID.
Applicare i ruoli ACL alle tabelle
La seguente sezione mostra come applicare le ACL alle tabelle.
La Google Cloud console non visualizza né gestisce le policy IAM ereditate.
Console
Nella Google Cloud console, apri la pagina Lakehouse.
Seleziona un catalogo esistente o creane uno se non ne hai.
Nella tabella Dettagli spazio dei nomi, fai clic sul nome dello spazio dei nomi che contiene la tabella.
Nella pagina Dettagli tabella, seleziona una tabella ed espandi le opzioni del menu ().
Fai clic su Gestisci autorizzazioni.
Viene visualizzata la finestra di dialogo Condividi autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci l'account dell'entità a cui vuoi assegnare i ruoli.
In Seleziona un ruolo, scegli un ruolo da assegnare all'account dell'entità.
Fai clic su Salva.
Fai clic su Chiudi.
gcloud
Ottenere la policy IAM
Per visualizzare la policy IAM corrente su una tabella Iceberg Lakehouse, utilizza il gcloud biglake iceberg tables
get-iam-policy
comando.
Per ottenere la policy IAM, esegui il seguente comando:
gcloud biglake iceberg tables get-iam-policy TABLE_NAME \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDSostituisci quanto segue:
TABLE_NAME: il nome della tabella Iceberg Lakehouse di destinazione.CATALOG_NAME: il nome dell'endpoint del catalogo REST Apache Iceberg.NAMESPACE_NAME: il nome dello spazio dei nomi all'interno del catalogo.PROJECT_ID: il tuo Google Cloud ID del progetto.
Il comando restituisce la policy IAM in formato YAML, che mostra i binding dei ruoli e i membri correnti.
Impostare la policy IAM
Per aggiornare la policy IAM su una tabella Iceberg Lakehouse, utilizza il comando gcloud biglake iceberg tables set-iam-policy.
Questo comando utilizza un file JSON o YAML locale che contiene la policy che vuoi applicare.
Crea un file di policy locale in formato JSON o YAML. Il file di policy deve contenere i binding e un
etag. Il valoreetagfornisce controllo della contemporaneità ottimistico per impedire la sovrascrittura delle modifiche. Per ottenere l'etagcorrente, esegui prima il comandoget-iam-policy.Il seguente esempio mostra un file di policy denominato
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.user", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Per impostare la policy IAM, esegui il seguente comando:
gcloud biglake iceberg tables set-iam-policy TABLE_NAME POLICY_FILE \ --catalog=CATALOG_NAME \ --namespace=NAMESPACE_NAME \ --project=PROJECT_IDSostituisci quanto segue:
TABLE_NAME: il nome della tabella Iceberg Lakehouse di destinazione.POLICY_FILE: il percorso del file di policy locale.CATALOG_NAME: il nome dell'endpoint del catalogo REST Apache Iceberg.NAMESPACE_NAME: il nome dello spazio dei nomi all'interno del catalogo.PROJECT_ID: il tuo Google Cloud progetto ID.
Passaggi successivi
- Scopri di più su IAM.
- Consulta l'elenco completo dei ruoli e delle autorizzazioni IAM di Lakehouse.
- Scopri di più sui concetti di Lakehouse.