Lakehouse for Apache Iceberg supporta controllo dell'accesso a livello di catalogo, spazio dei nomi e tabella per le tabelle Apache Iceberg in Cloud Storage che utilizzano il catalogo runtime Lakehouse.
Il catalogo del runtime Lakehouse gestisce i metadati, mentre
i criteri Identity and Access Management (IAM) definiscono le autorizzazioni. Puoi utilizzare la consoleGoogle Cloud o la CLI gcloud per ottenere e impostare queste policy IAM.
Prima di iniziare
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
-
Abilita l'API BigLake.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). 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 Lakehouse Iceberg esistente all'interno del catalogo e dello spazio dei nomi specificati.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire gli elenchi 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) sul 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 recuperando e impostando queste policy.
Ambito dei ruoli IAM
Puoi concedere ruoli IAM a diversi livelli della gerarchia delle risorse:
- A livello di progetto: concede l'accesso a tutte le risorse della lakehouse nel progetto.
- Livello 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 l'accesso completo a tutte le risorse Lakehouse.roles/biglake.editor: fornisce l'accesso in lettura e scrittura a tutte le risorse Lakehouse.roles/biglake.viewer: fornisce accesso di sola lettura a tutte le risorse Lakehouse.roles/biglake.metadataViewer: fornisce l'accesso in sola lettura ai metadati di tutte le risorse Lakehouse.
Best practice
- Privilegio minimo: concedi solo le autorizzazioni necessarie a utenti e service account.
- Utilizza i tag ETag: includi sempre il tag
etagdi una recente chiamataget-iam-policynel file delle norme quando utilizziset-iam-policyper evitare sovrascritture indesiderate. - Audit logging: assicurati che Cloud Audit Logs sia abilitato per monitorare le modifiche alle policy IAM.
- Controllo della versione: archivia i file di criteri in un sistema di controllo della versione.
Applicare i ruoli ACL ai cataloghi
La sezione seguente mostra come applicare le ACL ai cataloghi.
gcloud
Recupera il criterio IAM
Per visualizzare la policy IAM attuale in un catalogo Lakehouse
Iceberg, utilizza il comando gcloud alpha biglake iceberg catalogs
get-iam-policy.
Per ottenere la policy IAM, esegui questo 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 progetto.
Il comando restituisce la policy IAM in formato YAML, che mostra le associazioni di ruoli e i membri attuali.
Imposta il criterio IAM
Per aggiornare la policy IAM su un catalogo Lakehouse Iceberg, utilizza il comando gcloud alpha biglake iceberg catalogs set-iam-policy.
Questo comando utilizza un file JSON o YAML locale contenente la policy che vuoi
applicare.
Crea un file di policy locale in formato JSON o YAML. Il file di criteri deve contenere i binding e un
etag. Il valoreetagfornisce un controllo ottimistico della concorrenza per evitare la sovrascrittura delle modifiche. Per ottenere l'etagcorrente, esegui prima il comandoget-iam-policy.L'esempio seguente mostra un file di policy denominato
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Per impostare la policy IAM, esegui questo 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 della policy locale.PROJECT_ID: il tuo Google Cloud ID progetto.
Applica i ruoli ACL agli spazi dei nomi
La sezione seguente mostra come applicare gli elenchi di controllo degli accessi agli spazi dei nomi.
La console Google Cloud non mostra né gestisce le policy IAM ereditate.
Console
Nella console Google Cloud , 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 Autorizzazioni di condivisione.
Fai clic su Aggiungi entità.
Per il campo Nuove entità, inserisci l'account entità a cui vuoi assegnare i ruoli.
Per Seleziona un ruolo, scegli un ruolo da assegnare all'account principale.
Fai clic su Salva.
Fai clic su Chiudi.
gcloud
Recupera il criterio IAM
Per visualizzare la policy IAM corrente in uno spazio dei nomi
Iceberg Lakehouse, utilizza il comando gcloud alpha biglake iceberg namespaces
get-iam-policy.
Per ottenere la policy IAM, esegui questo 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 progetto.
Il comando restituisce la policy IAM in formato YAML, che mostra le associazioni di ruoli e i membri attuali.
Imposta il criterio IAM
Per aggiornare la policy IAM in uno spazio dei nomi
Lakehouse Iceberg, utilizza il comando gcloud alpha biglake iceberg namespaces set-iam-policy.
Questo comando utilizza un file JSON o YAML locale contenente la policy che vuoi
applicare.
Crea un file di policy locale in formato JSON o YAML. Il file di criteri deve contenere i binding e un
etag. Il valoreetagfornisce un controllo ottimistico della concorrenza per evitare la sovrascrittura delle modifiche. Per ottenere l'etagcorrente, esegui prima il comandoget-iam-policy.L'esempio seguente mostra un file di policy denominato
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Per impostare la policy IAM, esegui questo 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 della policy locale.CATALOG_NAME: il nome dell'endpoint del catalogo REST Apache Iceberg.PROJECT_ID: il tuo Google Cloud ID progetto.
Applica ruoli ACL alle tabelle
La sezione seguente mostra come applicare gli elenchi di controllo degli accessi alle tabelle.
La console Google Cloud non mostra né gestisce le policy IAM ereditate.
Console
Nella console Google Cloud , 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 Autorizzazioni di condivisione.
Fai clic su Aggiungi entità.
Per il campo Nuove entità, inserisci l'account entità a cui vuoi assegnare i ruoli.
Per Seleziona un ruolo, scegli un ruolo da assegnare all'account principale.
Fai clic su Salva.
Fai clic su Chiudi.
gcloud
Recupera il criterio IAM
Per visualizzare la policy IAM corrente su una tabella Iceberg di Lakehouse, utilizza il comando gcloud biglake iceberg tables
get-iam-policy.
Per ottenere la policy IAM, esegui questo 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 progetto.
Il comando restituisce la policy IAM in formato YAML, che mostra le associazioni di ruoli e i membri attuali.
Imposta il criterio IAM
Per aggiornare la policy IAM su una tabella Lakehouse Iceberg, utilizza il comando gcloud biglake iceberg tables set-iam-policy.
Questo comando utilizza un file JSON o YAML locale contenente la policy che vuoi
applicare.
Crea un file di policy locale in formato JSON o YAML. Il file di criteri deve contenere i binding e un
etag. Il valoreetagfornisce un controllo ottimistico della concorrenza per evitare la sovrascrittura delle modifiche. Per ottenere l'etagcorrente, esegui prima il comandoget-iam-policy.L'esempio seguente mostra un file di policy denominato
policy.json:{ "bindings": [ { "role": "roles/biglake.viewer", "members": [ "user:test-user@example.com" ] }, { "role": "roles/biglake.editor", "members": [ "user:someone@example.com" ] } ], "etag": "BwYXa9UuR8w=", "version": 3 }Per impostare la policy IAM, esegui questo 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 della 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 ID progetto.
Passaggi successivi
- Scopri di più su IAM.
- Consulta l'elenco completo di ruoli e autorizzazioni IAM di Lakehouse.
- Scopri di più sui concetti di Lakehouse.