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:
- 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.
- Ricerca dei metadati: il motore invia una richiesta al catalogo runtime Lakehouse per risolvere la tabella.
- Autenticazione e criteri: il catalogo autentica l'utente e controlla le sue autorizzazioni IAM sulle risorse Lakehouse di Google Cloud.
- 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).
- Accesso: il motore utilizza questo token per leggere o scrivere i file autorizzati specifici direttamente da Cloud Storage.
- 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
- Scopri come creare un catalogo in modalità di vending delle credenziali.
- Scopri come abilitare il vending delle credenziali per un catalogo esistente utilizzando la Google Cloud console.
- Scopri come configurare l'applicazione client per il vending delle credenziali.