L'attivazione della modalità di distribuzione delle credenziali per un catalogo REST Apache Iceberg esistente configura Lakehouse senza confini per distribuire token di archiviazione di breve durata e con ambito ridotto ai motori di query o ai carichi di lavoro autorizzati.
All'interno del catalogo runtime Lakehouse, questo metodo di autenticazione elimina la necessità che tu o i runtime di query disponiate di autorizzazioni di lettura e scrittura dirette sul bucket Cloud Storage sottostante.
Prima di iniziare
- Leggi Informazioni sul catalogo runtime Lakehouse per capire come funziona il catalogo runtime Lakehouse e le limitazioni del servizio.
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
Verify that billing is enabled for your Google Cloud project.
Enable the BigLake API.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per attivare la distribuzione delle credenziali, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Tutti:
- BigLake Admin (
roles/biglake.admin) sul tuo progetto - Storage Admin (
roles/storage.admin) sul tuo progetto
- BigLake Admin (
-
Account di servizio del catalogo REST Apache Iceberg con provisioning automatico:
Storage Object User (
roles/storage.objectUser) su tutti i bucket Cloud Storage associati. Dopo aver attivato la distribuzione delle credenziali, concedi esplicitamente il ruolo Storage Object User (roles/storage.objectUser) su tutti i bucket di archiviazione associati al account di servizio del catalogo REST Apache Iceberg con provisioning automatico del tuo catalogo.
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.
Attiva la distribuzione delle credenziali
Se il metodo di autenticazione per il catalogo REST Apache Iceberg è impostato sulle credenziali dell'utente finale, puoi passare alla modalità di distribuzione delle credenziali.
Console
- Nella Google Cloud console, apri la pagina Lakehouse.
Nella riga del catalogo che stai aggiornando, seleziona Altre azioni del catalogo > Modifica autenticazione.
Nella finestra di dialogo di autenticazione, seleziona Modalità di distribuzione delle credenziali. Il account di servizio del catalogo REST Apache Iceberg con provisioning automatico richiede il ruolo esplicito Storage Object User (
roles/storage.objectUser) su tutti i bucket Cloud Storage associati. Per impostazione predefinita, non ha accesso. Senza questo ruolo, le credenziali distribuite non hanno un ambito sufficiente per eseguire scritture di archiviazione.Seleziona Salva.
Your catalog is updated and the **Catalog details** page opens.In Metodo di autenticazione, seleziona Imposta autorizzazioni bucket.
Nella finestra di dialogo, seleziona Conferma.
In questo modo viene verificato che il account di servizio del catalogo abbia il ruolo Storage Object User (roles/storage.objectUser) su tutti i bucket di archiviazione associati.
gcloud
Utilizza il comando gcloud biglake iceberg catalogs update.
gcloud biglake iceberg catalogs update \ CATALOG_NAME \ --project PROJECT_ID \ --credential-mode vended-credentials
Sostituisci quanto segue:
CATALOG_NAME: un nome per il catalogo. Per i cataloghi Lakehouse, questo è il nome del catalogo personalizzato. Per i cataloghi dei bucket Cloud Storage, questo corrisponde all'ID bucket Cloud Storage utilizzato con il catalogo REST. Questo nome viene utilizzato anche come identificatore del catalogo quando si eseguono query su queste tabelle da BigQuery.PROJECT_ID: il tuo Google Cloud ID progetto.Dopo aver attivato la distribuzione delle credenziali, concedi esplicitamente il ruolo Storage Object User (
roles/storage.objectUser) su tutti i bucket di archiviazione associati al account di servizio del catalogo REST Apache Iceberg con provisioning automatico del tuo catalogo.
REST
Per attivare la modalità di distribuzione delle credenziali utilizzando l'API REST, invia una PATCH richiesta
all'endpoint UpdateIcebergCatalog:
PATCH /iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs/CATALOG_ID?updateMask=icebergCatalog.credential_mode
Il corpo della richiesta deve contenere un payload JSON IcebergCatalog con credential_mode impostato su VENDED_CREDENTIALS.
Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.CATALOG_ID: l'ID del catalogo runtime Lakehouse.