Panoramica della distribuzione delle credenziali

La funzionalità di _vending delle 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 ottenere e impostare questi criteri per controllare l'accesso a le risorse.

Come funziona il vending delle credenziali

Quando utilizzi il vending delle credenziali, la sequenza di operazioni cambia leggermente per applicare i criteri prima di accedere allo spazio di archiviazione:

  1. Richiesta: un utente invia un'istruzione SQL, ad esempio una query, un'operazione DML o DDL, 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é il vending delle credenziali è abilitato, il catalogo restituisce i metadati e un token di archiviazione di breve durata (credenziali di archiviazione con ambito ridotto) al motore. L'ambito del token è limitato ai percorsi associati alla tabella e ridotto alle autorizzazioni minime richieste (ad esempio, accesso di sola lettura per le query che non devono scrivere file).
  5. Accesso: il motore utilizza questo token per leggere o scrivere i file autorizzati specifici direttamente da Cloud Storage.
  6. Calcolo: il motore elabora i dati o esegue l'operazione e restituisce i risultati.

Motori supportati

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

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

Autorizzazioni del account di servizio richieste

Quando il vending delle credenziali è abilitato, assicurati che i seguenti service account abbiano i ruoli necessari:

  • Service account del catalogo runtime Lakehouse con provisioning automatico: devi concedere il ruolo Storage Object User (roles/storage.objectUser) a questo account su tutti i bucket Cloud Storage associati. Senza questo accesso, le credenziali fornite non possono leggere o scrivere nello spazio di archiviazione. Se utilizzi la Google Cloud console, fai clic su Imposta autorizzazioni bucket per verificare questo ruolo. 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 fornite con ambito di scrittura.

Passaggi successivi