Gestisci gli elenchi di controllo degli accessi degli endpoint del catalogo REST Apache Iceberg

Borderless Lakehouse 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 di runtime Lakehouse.

Il catalogo di runtime di Lakehouse gestisce i metadati, mentre le policy di Identity and Access Management (IAM) definiscono le autorizzazioni. Puoi utilizzare la consoleGoogle Cloud o l'interfaccia a riga di comandogcloudper 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, se non è già abilitata.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilitare l'API

  3. Installa e inizializza Google Cloud CLI.
  4. Verifica di avere un endpoint e uno spazio dei nomi del catalogo REST Apache Iceberg esistenti.
  5. Verifica di avere una tabella Apache Iceberg esistente gestita da Lakehouse nel catalogo e nello 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 Lakehouse nel progetto.
  • Livello catalogo: concede l'accesso alle risorse appartenenti al catalogo specificato.
  • Livello di namespace: concede l'accesso alle risorse appartenenti al namespace specificato.
  • Livello di tabella: concede l'accesso solo alla tabella specificata.

Ruoli IAM pertinenti

L'elenco seguente 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 l'accesso di sola lettura a tutte le risorse Lakehouse.
  • roles/biglake.metadataViewer: fornisce l'accesso ai metadati in sola lettura a tutte le risorse Lakehouse.

Best practice

  • Privilegio minimo: concedi solo le autorizzazioni necessarie agli utenti e ai service account.
  • Utilizza gli ETag: includi sempre l'etag di una chiamata get-iam-policy recente nel file della policy quando utilizzi set-iam-policy per evitare sovrascritture involontarie.
  • Audit logging: assicurati che Cloud Audit Logs sia abilitato per monitorare le modifiche alle policy IAM.
  • Controllo della versione: archivia i file delle policy in un sistema di controllo della versione.

Applica i ruoli ACL ai cataloghi

La sezione seguente mostra come applicare le ACL ai cataloghi.

gcloud

Recupera la policy IAM

Per visualizzare l'attuale policy IAM su un catalogo Iceberg Lakehouse, utilizza il comando gcloud biglake iceberg catalogs get-iam-policy.

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

    gcloud 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 ID progetto Google Cloud.
  2. Il comando restituisce la policy IAM in formato YAML, che mostra le associazioni di ruoli e i membri attuali.

Imposta la policy IAM

Per aggiornare la policy IAM su un catalogo Lakehouse Iceberg, utilizza il comando gcloud 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 delle policy locale in formato JSON o YAML. Il file della policy deve contenere le associazioni e un etag. Il valore etag fornisce controllo della contemporaneità ottimistico per evitare la sovrascrittura delle modifiche. Per ottenere il etag corrente, esegui prima il comando get-iam-policy.

    L'esempio seguente mostra un file della 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 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 ID progetto Google Cloud .

Applica i ruoli ACL agli spazi dei nomi

La sezione seguente mostra come applicare gli ACL agli spazi dei nomi.

La console Google Cloud non visualizza 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 uno.

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

  4. Fai clic su Gestisci autorizzazioni.

    Viene visualizzata la finestra di dialogo Autorizzazioni di condivisione.

  5. Fai clic su Aggiungi entità.

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

  7. In Seleziona un ruolo, scegli un ruolo da assegnare all'account dell'entità.

  8. Fai clic su Salva.

  9. Fai clic su Chiudi.

gcloud

Recupera la policy IAM

Per visualizzare la policy IAM attuale su uno spazio dei nomi Iceberg di Lakehouse, utilizza il comando gcloud biglake iceberg namespaces get-iam-policy.

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

    gcloud 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 ID progetto Google Cloud.
  2. Il comando restituisce la policy IAM in formato YAML, che mostra le associazioni di ruoli e i membri attuali.

Imposta la policy IAM

Per aggiornare la policy IAM su uno spazio dei nomi Lakehouse Iceberg, utilizza il comando gcloud 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 delle policy locale in formato JSON o YAML. Il file della policy deve contenere le associazioni e un etag. Il valore etag fornisce controllo della contemporaneità ottimistico per evitare la sovrascrittura delle modifiche. Per ottenere il etag corrente, esegui prima il comando get-iam-policy.

    L'esempio seguente mostra un file della 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 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 ID progetto Google Cloud .

Applica i ruoli ACL alle tabelle

La sezione seguente mostra come applicare gli ACL alle tabelle.

La console Google Cloud non visualizza 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 uno.

  3. Nella tabella Dettagli dello 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 di menu ().

  5. Fai clic su Gestisci autorizzazioni.

    Viene visualizzata la finestra di dialogo Autorizzazioni di condivisione.

  6. Fai clic su Aggiungi entità.

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

  8. In Seleziona un ruolo, scegli un ruolo da assegnare all'account dell'entità.

  9. Fai clic su Salva.

  10. Fai clic su Chiudi.

gcloud

Recupera la policy IAM

Per visualizzare la policy IAM attuale su una tabella Iceberg 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 Apache Iceberg 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 ID progetto Google Cloud.
  2. Il comando restituisce la policy IAM in formato YAML, che mostra le associazioni di ruoli e i membri attuali.

Imposta la policy IAM

Per aggiornare la policy IAM su una tabella Apache Iceberg gestita da Lakehouse, 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 delle policy locale in formato JSON o YAML. Il file della policy deve contenere le associazioni e un etag. Il valore etag fornisce controllo della contemporaneità ottimistico per evitare la sovrascrittura delle modifiche. Per ottenere il etag corrente, esegui prima il comando get-iam-policy.

    L'esempio seguente mostra un file della 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 Apache Iceberg 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 ID progetto Google Cloud .

Passaggi successivi