Gestisci gli ACL delle tabelle del catalogo REST Lakehouse Iceberg

Lakehouse for Apache Iceberg supporta controllo dell'accesso a livello di spazio dei nomi e di 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

  1. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  2. Abilita l'API BigLake.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  3. Installa e inizializza Google Cloud SDK.
  4. Verifica di avere un endpoint e uno spazio dei nomi del catalogo REST Apache Iceberg esistenti.
  5. 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 gli spazi dei nomi e le tabelle Iceberg, chiedi all'amministratore di concederti i seguenti ruoli IAM:

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

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 delle 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 service account.
  • Utilizza i tag ETag: includi sempre il tag etag di una recente chiamata get-iam-policy nel file delle norme quando utilizzi set-iam-policy per 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.

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

  1. Nella console Google Cloud , apri la pagina Lakehouse.

    Vai a Lakehouse

  2. Seleziona un catalogo esistente o creane uno se non ne hai.

  3. Nella tabella Dettagli spazio dei nomi, seleziona uno spazio dei nomi ed espandi le opzioni del menu ().

  4. Fai clic su Gestisci autorizzazioni.

    Viene visualizzata la finestra di dialogo Autorizzazioni di condivisione.

  5. Fai clic su Aggiungi entità.

  6. Per il campo Nuove entità, inserisci l'account entità a cui vuoi assegnare i ruoli.

  7. Per Seleziona un ruolo, scegli un ruolo da assegnare all'account principale.

  8. Fai clic su Salva.

  9. 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.

  1. Per ottenere la policy IAM, esegui questo comando:

    gcloud alpha biglake iceberg namespaces get-iam-policy NAMESPACE_NAME \
        --catalog=CATALOG_NAME \
        --project=PROJECT_ID
    

    Sostituisci 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.
  2. 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.

  1. Crea un file di policy locale in formato JSON o YAML. Il file di criteri deve contenere i binding e un etag. Il valore etag fornisce un controllo ottimistico della concorrenza per evitare la sovrascrittura delle modifiche. Per ottenere l'etag corrente, esegui prima il comando get-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
    }
    
  2. 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_ID
    

    Sostituisci 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 i 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

  1. Nella console Google Cloud , apri la pagina Lakehouse.

    Vai a Lakehouse

  2. Seleziona un catalogo esistente o creane uno se non ne hai.

  3. Nella tabella Dettagli spazio dei nomi, fai clic sul nome dello spazio dei nomi che contiene la tabella.

  4. Nella pagina Dettagli tabella, seleziona una tabella ed espandi le opzioni del menu ().

  5. Fai clic su Gestisci autorizzazioni.

    Viene visualizzata la finestra di dialogo Autorizzazioni di condivisione.

  6. Fai clic su Aggiungi entità.

  7. Per il campo Nuove entità, inserisci l'account entità a cui vuoi assegnare i ruoli.

  8. Per Seleziona un ruolo, scegli un ruolo da assegnare all'account principale.

  9. Fai clic su Salva.

  10. 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.

  1. 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_ID
    

    Sostituisci 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.
  2. 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.

  1. Crea un file di policy locale in formato JSON o YAML. Il file di criteri deve contenere i binding e un etag. Il valore etag fornisce un controllo ottimistico della concorrenza per evitare la sovrascrittura delle modifiche. Per ottenere l'etag corrente, esegui prima il comando get-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
    }
    
  2. 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_ID
    

    Sostituisci 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