Panoramica della distribuzione delle credenziali

La funzionalità di vendita di credenziali per il catalogo di runtime Lakehouse consente di delegare l'accesso allo spazio di archiviazione e applicare autorizzazioni granulari ai file di dati. Nell'ambito di Lakehouse for Apache Iceberg, questa funzionalità consente di gestire i criteri IAM (Identity and Access Management) a livello di tabella per le tabelle archiviate in Cloud Storage.

Puoi utilizzare l'interfaccia a riga di comando gcloud per recuperare e impostare questi criteri per controllare l'accesso alle risorse.

Come funziona la vendita di credenziali

Quando utilizzi la vendita di credenziali, la sequenza di elaborazione delle query cambia leggermente per applicare i criteri prima della lettura dei dati:

  1. Richiesta: un utente invia una query SQL a un motore supportato (ad esempio Apache Spark o BigQuery).
  2. Ricerca dei metadati: il motore invia una richiesta al catalogo di runtime Lakehouse per risolvere la tabella.
  3. Autenticazione e criteri: il catalogo autentica l'utente e controlla le relative autorizzazioni IAM sulle risorse Lakehouse di Google Cloud.
  4. Risposta: poiché la vendita di credenziali è abilitata, il catalogo restituisce i metadati e un token di archiviazione di breve durata (credenziali di archiviazione con ambito ridotto) al motore.
  5. Lettura: il motore utilizza questo token per leggere i file autorizzati specifici direttamente da Cloud Storage.
  6. Calcolo: il motore elabora i dati e restituisce i risultati.

Motori supportati

Per utilizzare la vendita di credenziali con i motori di query, il catalogo REST Lakehouse Iceberg deve essere configurato per supportare la vendita di credenziali.

  • Motori open source: i motori supportati come Apache Spark e Trino utilizzano token di archiviazione di breve durata venduti dal catalogo. L'applicazione client deve specificare il supporto per la vendita di credenziali nell'intestazione X-Iceberg-Access-Delegation.
  • BigQuery: BigQuery utilizza le credenziali vendute per l'accesso a Cloud Storage anziché le credenziali dell'utente finale.

Autorizzazioni del account di servizio richieste

Quando la vendita di credenziali è abilitata, assicurati che i seguenti service account abbiano i ruoli necessari:

  • Service account del catalogo di runtime Lakehouse con provisioning automatico: deve essere concesso esplicitamente il ruolo Utente oggetti Storage (roles/storage.objectUser) sul bucket Cloud Storage di destinazione. Per impostazione predefinita, questo account di servizio viene creato con accesso di sola visualizzazione. Senza l'accesso amministrativo agli oggetti, le credenziali vendute non possono eseguire scritture di archiviazione. (Nota: se la configurazione viene eseguita tramite l'interfaccia utente della console, facendo clic su Imposta autorizzazioni bucket viene verificato questo ruolo. Per le configurazioni di gcloud, Terraform o API, questo ruolo deve essere concesso manualmente).
  • Service account del motore di query: i service account che eseguono job del motore di query (come Managed Service for Apache Spark, Managed Service for Apache Spark o Dataflow) richiedono il ruolo Editor BigLake (roles/biglake.editor) a livello di progetto per ottenere le credenziali vendute con ambito di scrittura.

Passaggi successivi