Panoramica della distribuzione delle credenziali

La funzionalità di vendita di credenziali per il catalogo runtime Lakehouse ti 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à ti consente di gestire i criteri di Identity and Access Management (IAM) a livello di tabella per le tabelle archiviate in Cloud Storage.

Puoi utilizzare gcloud CLI per recuperare e impostare questi criteri per controllare l'accesso a lle 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 runtime Lakehouse per risolvere la tabella.
  3. Autenticazione e criteri: il catalogo autentica l'utente e controlla le sue 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:

  • Account di servizio del catalogo runtime Lakehouse con provisioning automatico: devi concedere a questo account il ruolo Storage Object User (roles/storage.objectUser) su tutti i bucket Cloud Storage associati. questo account non ha accesso. Senza questo accesso, le credenziali vendute non possono leggere o scrivere nello spazio di archiviazione. Se utilizzi la Google Cloud console, facendo clic su Imposta autorizzazioni bucket questo ruolo viene verificato. Per gcloud CLI, Terraform o l'API, devi concedere questo ruolo manualmente.
  • Service account del motore di query: i service account che eseguono job del motore di query (ad esempio Managed Service for Apache Spark, Managed Service for Apache Spark o Dataflow) richiedono il ruolo Editor BigLake (roles/biglake.editor) per ottenere le credenziali vendute con ambito di scrittura.

Passaggi successivi