Controlla l'accesso con IAM

Questo documento mostra come eseguire le seguenti operazioni in Dataform:

Prima di iniziare

    Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.

    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

    • 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    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.

    Enable the APIs

    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

    • 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    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.

    Enable the APIs

Concedere a Dataform l'accesso richiesto

Questa sezione mostra come concedere i ruoli Identity and Access Management (IAM) che gli agenti di servizio Dataform e i service account personalizzati richiedono per eseguire i workflow in BigQuery.

Informazioni sugli agenti di servizio Dataform e sui service account personalizzati

Puoi configurare service account personalizzati per eseguire i workflow per tuo conto nei seguenti modi:

Quando crei un repository Dataform o una configurazione del workflow, puoi selezionare qualsiasi account di servizio per cui disponi delle autorizzazioni act-as. Devi configurare le autorizzazioni act-as richieste per tutti i service account associati alle risorse Dataform.

Quando crei il tuo primo repository Dataform, Dataform genera automaticamente un service agent. Dataform utilizza l'agente di servizio per interagire con BigQuery per tuo conto.

L'ID service agent Dataform ha il seguente formato:

service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

Sostituisci PROJECT_NUMBER con l'ID numerico del tuo progettoGoogle Cloud . Puoi trovare l'ID progetto Google Cloud nella dashboard della consoleGoogle Cloud . Per saperne di più, consulta Trovare il nome, il numero e l'ID del progetto.

Ruoli richiesti per gli agenti di servizio Dataform, i service account personalizzati e gli Account Google

Gli agenti di servizio Dataform, i service account personalizzati e le credenziali utente per un Account Google (anteprima) utilizzati per l'autenticazione in Dataform richiedono i seguenti ruoli IAM BigQuery per poter eseguire i flussi di lavoro in BigQuery:

Inoltre, concedi i seguenti ruoli all'agente di servizio Dataform nell'account di servizio effettivo per la configurazione del flusso di lavoro. Questi ruoli sono necessari per il funzionamento della modalità di emulazione rigorosa.

Per le release automatiche dei repository e le esecuzioni automatiche dei workflow, concedi all'agente di servizio Dataform l'autorizzazione iam.serviceAccounts.actAs sull'account di servizio effettivo.

Considerazioni sulla sicurezza

La concessione dei ruoli richiesti da Dataform a un agente di servizio Dataform, a un account di servizio personalizzato o a un Account Google di un utente (anteprima) comporta le seguenti considerazioni sulla sicurezza:

  • Qualsiasi account di servizio personalizzato a cui sono stati concessi i ruoli richiesti potrebbe ottenere l'accesso a BigQuery o Secret Manager nel progetto a cui appartiene il account di servizio, indipendentemente dai Controlli di servizio VPC. Quando Dataform utilizza un account di servizio personalizzato per eseguire i workflow, le richieste Dataform vengono trattate come se provenissero dall'interno del perimetro dei Controlli di servizio VPC del progetto che contiene il repository. Di conseguenza, Controlli di servizio VPC non blocca la comunicazione tra Dataform e altri servizi, come BigQuery o Secret Manager, se queste risorse si trovano all'interno dello stesso perimetro di servizio.

    Per saperne di più su come gestire questi confini di sicurezza, consulta Configura i Controlli di servizio VPC.

  • Qualsiasi utente con l'autorizzazione IAM dataform.repositories.create può eseguire codice utilizzando il service agent Dataform e tutte le autorizzazioni concesse a questo service agent o service account.

    Per saperne di più, consulta Considerazioni sulla sicurezza per le autorizzazioni Dataform.

  • Per mantenere un modello di autorizzazioni sicuro, controlla regolarmente i binding dei ruoli dell'agente di servizio Dataform. Per istruzioni dettagliate sul monitoraggio, vedi Monitorare le autorizzazioni dell'agente di servizio con Security Command Center.

Per limitare i dati che un utente, un service agent o un account di servizio possono leggere o scrivere in BigQuery, puoi concedere autorizzazioni IAM BigQuery granulari a tabelle o set di dati BigQuery selezionati. Per saperne di più, consulta Controllare l'accesso ai set di dati e Controllare l'accesso a tabelle e viste.

Per impedire agli utenti di eseguire azioni utilizzando le credenziali utente per l'Account Google di un altro utente, vengono applicate le seguenti limitazioni:

  • Per modificare una configurazione del flusso di lavoro con le credenziali utente di un altro Account Google collegato, devi collegare le credenziali utente del tuo Account Google alla configurazione del flusso di lavoro o modificare la configurazione del flusso di lavoro per l'autenticazione con unaccount di serviziot personalizzato.
  • Non puoi modificare il risultato di una compilazione per una configurazione di rilascio se esistono configurazioni del flusso di lavoro che fanno riferimento alla configurazione di rilascio a cui sono associate le credenziali di un altro utente con Account Google.
  • Non puoi impostare una configurazione del workflow per l'autenticazione con le credenziali utente dell'Account Google e fare riferimento a una configurazione di rilascio con una pianificazione. Questa limitazione ha le seguenti conseguenze:

    • Non puoi aggiornare una configurazione di rilascio per utilizzare una pianificazione se esistono configurazioni del flusso di lavoro che fanno riferimento alla configurazione di rilascio impostate per l'autenticazione con le credenziali utente dell'Account Google.
    • Non puoi creare una configurazione del flusso di lavoro che esegue l'autenticazione con le credenziali utente dell'Account Google e punta a una configurazione di rilascio con una pianificazione.
    • Non puoi creare o aggiornare una configurazione del flusso di lavoro per utilizzare le credenziali utente dell'Account Google e indirizzare a una configurazione di rilascio con una pianificazione.

Concedere i ruoli BigQuery richiesti

Per concedere i ruoli IAM BigQuery richiesti al tuo agente di servizio Dataform, a un account di servizio personalizzato che vuoi utilizzare in Dataform o a un Account Google di un utente che vuoi utilizzare per l'autenticazione in Dataform (Anteprima), segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina