La modalità di emulazione rigorosa attiva un controllo di sicurezza aggiuntivo per le seguenti azioni utente in Dataform:
- Creazione o aggiornamento di un repository
- Creazione o aggiornamento di una configurazione del workflow
- Creazione di una chiamata del workflow
- Aggiornamento di una configurazione della release
Questo controllo di sicurezza aggiuntivo richiede che l'utente che esegue queste azioni
disponga dell'autorizzazione iam.serviceAccounts.actAs per l'account di servizio effettivo,
ovvero l'account di servizio le cui credenziali vengono utilizzate per eseguire i workflow.
Per saperne di più, consulta
Collegare service account alle risorse.
Puoi attivare queste autorizzazioni nei seguenti modi:
- Quando crei un repository
- Quando aggiorni un repository esistente con il flag del repository
strict_act_as_checks
Ruoli obbligatori
Per ottenere le autorizzazioni
necessarie per completare le attività descritte in questo documento,
chiedi all'amministratore di concederti il ruolo IAM
Utente service account (roles/iam.serviceAccountUser)
sul account di servizio personalizzato.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Determinare il account di servizio effettivo
Puoi determinare il account di servizio effettivo che esegue i flussi di lavoro in base al tipo di risorsa e alle seguenti condizioni:
| Tipo di risorsa | Service account effettivo |
|---|---|
| Repository | Se selezioni un account di servizio personalizzato quando crei il repository, viene utilizzato il account di servizio In caso contrario, il valore predefinito è Agente di servizio Dataform. |
| Configurazione del workflow | Puoi selezionare un account di servizio personalizzato quando crei la configurazione del flusso di lavoro. In caso contrario, il valore predefinito è l'agente di servizio Dataform del repository. |
| Chiamata workflow | Se il risultato della compilazione è Se crei una chiamata del flusso di lavoro da un risultato di compilazione, viene utilizzato l'account di servizio In caso contrario, il valore predefinito è l'agente di servizio Dataform del repository. |
Concedi il ruolo IAM Service Account User
Il ruolo Utente service account (roles/iam.serviceAccountUser) contiene l'autorizzazione iam.serviceAccounts.actAs, necessaria per la modalità act-as rigorosa. Quando utilizzi l'API Dataform, devi disporre del ruolo Utente service account concesso per il account di servizio effettivo in base al
metodo projects.locations.repositories
che stai chiamando:
createopatch- Se la proprietà
Repository.ServiceAccountè impostata, devi disporre del ruolo Utente account di servizio concesso per quella proprietà. - Se chiami il metodo
patch, devi disporre del ruolo Utente account di servizio concesso per tutti i service account effettivi in tutte le configurazioni del flusso di lavoro nel repository.
- Se la proprietà
workflowConfigs.createoworkflowConfigs.patch- Devi disporre del ruolo Utente account di servizio per l'account di servizio effettivo utilizzato nella configurazione del flusso di lavoro.
releaseConfigs.patch- Devi disporre del ruolo Utente account di servizio per tutti gli account di servizio effettivi utilizzati nelle configurazioni del flusso di lavoro utilizzando questa configurazione di rilascio.
workflowInvocations.create- Devi disporre del ruolo Utente account di servizio per l'account di servizio effettivo utilizzato nell'invocazione del flusso di lavoro.
Per concedere il ruolo Service Account User a un account di servizio personalizzato, segui questi passaggi:
Nella console Google Cloud , vai a IAM > Service accounts.
Seleziona un progetto.
Nella pagina Service account per il progetto "PROJECT_NAME", seleziona il account di servizio personalizzato.
Vai a Entità con accesso e poi fai clic su Concedi accesso.
Nel campo Nuove entità, inserisci l'ID service agent Dataform predefinito.
L'ID service agent Dataform predefinito ha il seguente formato:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comNell'elenco Seleziona un ruolo, seleziona il ruolo Utente account di servizio.
Fai clic su Salva.
Per ulteriori informazioni, consulta i ruoli richiesti per creare una configurazione del flusso di lavoro e i ruoli richiesti per creare una configurazione di rilascio.
Effetti della modalità actAs rigorosa sulle release e sulle esecuzioni automatiche
Quando la modalità actAs rigorosa è abilitata, influisce sulle release automatiche dei repository e sulle esecuzioni automatiche dei workflow nel seguente modo:
Per i repository non connessi a repository di terze parti:
- Non puoi impostare una
pianificazione Cron
per le release automatiche nelle configurazioni di rilascio. Questa operazione viene eseguita per impedire il deployment automatico delle modifiche al codice apportate da un utente che potrebbe non disporre delle autorizzazioni
iam.serviceAccounts.actAsnecessarie per i service account downstream. - Le esecuzioni del workflow pianificate che utilizzano una pianificazione cron nelle configurazioni del workflow rimangono abilitate. Affinché queste esecuzioni automatizzate vadano a buon fine, devi concedere all'agente di servizio Dataform predefinito l'autorizzazione
iam.serviceAccounts.actAssull'account di servizio effettivo specificato nella configurazione del flusso di lavoro.
Per i repository connessi a repository di terze parti:
- Sono consentite le release pianificate e le esecuzioni del workflow pianificate.
- Per abilitare un rilascio automatico da una configurazione di rilascio o un'esecuzione automatica da una configurazione del flusso di lavoro, devi concedere all'agente di servizio Dataform predefinito l'autorizzazione
iam.serviceAccounts.actAssull'account di servizio effettivo pertinente:- Per una configurazione di rilascio automatico, concedi l'autorizzazione agli account di servizio effettivi di tutte le configurazioni del flusso di lavoro attivate da questa configurazione di rilascio.
- Per una configurazione automatica del flusso di lavoro, concedi l'autorizzazione per l'account di servizio effettivo utilizzato da quella configurazione del flusso di lavoro.
Passaggi successivi
- Per scoprire come creare un repository, consulta Crea un repository.
- Per scoprire di più su come funziona Dataform con BigQuery, consulta la panoramica dei workflow.
- Per scoprire come creare una configurazione del flusso di lavoro, consulta Pianificare le esecuzioni.
- Per scoprire come creare una configurazione della release, consulta Configurare le compilazioni.