Gestisci gli elenchi di controllo dell'accesso REST di Lakehouse Iceberg

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

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

    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 cataloghi, spazi dei nomi e 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.

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

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.

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

    gcloud alpha biglake iceberg catalogs get-iam-policy CATALOG_NAME \
        --project=PROJECT_ID
    

    Sostituisci quanto segue:

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

  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.editor",
          "members": [
            "user:someone@example.com"
          ]
        }
      ],
      "etag": "BwYXa9UuR8w=",
      "version": 3
    }
    
  2. Per impostare la policy IAM, esegui questo comando:

    gcloud alpha biglake iceberg catalogs set-iam-policy CATALOG_NAME POLICY_FILE \
        --project=PROJECT_ID
    

    Sostituisci 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

  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.editor",
          "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 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.editor",
          "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