Lakehouse for Apache Iceberg supporta il controllo dell'accesso a livello di tabella per le tabelle Apache Iceberg in Cloud Storage che utilizzano il catalogo di runtime Lakehouse.
Il catalogo di runtime Lakehouse gestisce i metadati della tabella, mentre le policy IAM (Identity and Access Management) definiscono le autorizzazioni. L'interfaccia a riga di comando gcloud fornisce i comandi necessari per recuperare 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 ACL (liste di controllo dell'accesso) per le tabelle Iceberg, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Tutti: Amministratore BigLake (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 recuperando e impostando queste policy.
Ruoli IAM pertinenti
Puoi applicare i seguenti ruoli IAM comuni alle risorse 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 della policy quando utilizziset-iam-policyper evitare sovrascritture involontarie. - Audit logging: assicurati che Cloud Audit Logs sia abilitato per tenere traccia delle modifiche alle policy IAM.
- Controllo della versione: archivia i file delle policy in un sistema di controllo della versione.
Applicare i ruoli ACL alle tabelle
La sezione seguente mostra come applicare le ACL alle tabelle.
Recuperare 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 recuperare 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 progetto.
Il comando restituisce la policy IAM in formato YAML, che mostra le associazioni di 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 della policy deve contenere le associazioni e un
etag. Il valoreetagfornisce controllo della contemporaneità ottimistico per impedire la sovrascrittura delle modifiche. Per recuperare 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.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 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 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.