Per limitare l'accesso degli utenti all'interno di un progetto o di un'organizzazione, puoi utilizzare i ruoli IAM (Identity and Access Management) per Dataflow. Puoi controllare l'accesso alle risorse relative a Dataflow anziché concedere agli utenti il ruolo Visualizzatore, Editor o Proprietario all'intero progetto Google Cloud.
Questa pagina è incentrata su come utilizzare i ruoli IAM di Dataflow. Per una descrizione dettagliata di IAM e delle sue funzionalità, consulta la documentazione di IAM.
Ogni metodo Dataflow richiede che il chiamante disponga delle autorizzazioni necessarie. Per un elenco delle autorizzazioni e dei ruoli supportati da Dataflow, consulta la sezione seguente.
Autorizzazioni e ruoli
Questa sezione riepiloga le autorizzazioni e i ruoli supportati da Dataflow IAM.
Autorizzazioni obbligatorie
Nella tabella seguente sono elencate le autorizzazioni che il chiamante deve disporre per chiamare ciascun metodo:
Metodo | Autorizzazioni richieste |
---|---|
dataflow.jobs.create |
dataflow.jobs.create |
dataflow.jobs.cancel |
dataflow.jobs.cancel |
dataflow.jobs.updateContents |
dataflow.jobs.updateContents |
dataflow.jobs.list |
dataflow.jobs.list |
dataflow.jobs.get |
dataflow.jobs.get |
dataflow.messages.list |
dataflow.messages.list |
dataflow.metrics.get |
dataflow.metrics.get |
dataflow.jobs.snapshot |
dataflow.jobs.snapshot |
Ruoli
La tabella seguente elenca i ruoli IAM di Dataflow con un elenco corrispondente delle autorizzazioni relative a Dataflow incluse in ciascun ruolo. Ogni autorizzazione è applicabile a un determinato tipo di risorsa. Per un elenco delle autorizzazioni, consulta la pagina Ruoli nella console Google Cloud.
Role | Permissions |
---|---|
Dataflow Admin( Minimal role for creating and managing dataflow jobs. |
|
Dataflow Developer( Provides the permissions necessary to execute and manipulate Dataflow jobs. Lowest-level resources where you can grant this role:
|
|
Dataflow Viewer( Provides read-only access to all Dataflow-related resources. Lowest-level resources where you can grant this role:
|
|
Dataflow Worker( Provides the permissions necessary for a Compute Engine service account to execute work units for a Dataflow pipeline. Lowest-level resources where you can grant this role:
|
|
Il ruolo Worker Dataflow (roles/dataflow.worker
) fornisce le autorizzazioni necessarie a un account di servizio Compute Engine per eseguire le unità di lavoro per una pipeline Apache Beam. Il ruolo Worker Dataflow deve essere assegnato a un account di servizio in grado di richiedere e aggiornare il lavoro dal servizio Dataflow.
Il ruolo Agente di servizio Dataflow (roles/dataflow.serviceAgent
) viene utilizzato esclusivamente dall'account di servizio Dataflow. Fornisce all'account di servizio l'accesso alle risorse gestite nel tuo progetto Google Cloud per l'esecuzione dei job Dataflow. Viene assegnato automaticamente all'account di servizio quando abiliti l'API Dataflow per il tuo progetto dalla pagina API nella console Google Cloud.
Creazione di job
Per creare un job, il ruolo roles/dataflow.admin
include l'insieme minimo di autorizzazioni necessarie per eseguire ed esaminare i job.
In alternativa, sono necessarie le seguenti autorizzazioni:
- Il ruolo
roles/dataflow.developer
, per creare un'istanza del job stesso. - Il ruolo
roles/compute.viewer
, per accedere alle informazioni sul tipo di macchina e visualizzare altre impostazioni. - Il ruolo
roles/storage.objectAdmin
, per fornire l'autorizzazione per l'archiviazione temporanea dei file in Cloud Storage.
Esempio di assegnazione del ruolo
Per illustrare l'utilità dei diversi ruoli Dataflow, considera la seguente suddivisione:
- Lo sviluppatore che crea ed esamina le offerte di lavoro deve avere il ruolo
roles/iam.serviceAccountUser
. - Per una gestione delle autorizzazioni più sofisticata, lo sviluppatore che interagisce con il job di Dataflow deve avere il ruolo
roles/dataflow.developer
.- È necessario il ruolo
roles/storage.objectAdmin
o un ruolo correlato per inserire in un'area intermedia i file richiesti. - Per il debug e il controllo della quota, è necessario il ruolo progetto
roles/compute.viewer
. - In assenza di altre assegnazioni di ruoli, questo ruolo consente allo sviluppatore di creare e annullare job Dataflow, ma di non interagire con le singole VM o accedere ad altri servizi Cloud.
- È necessario il ruolo
- L'account di servizio worker
richiede i ruoli
roles/dataflow.worker
eroles/dataflow.admin
per elaborare i dati per il servizio Dataflow.- Per accedere ai dati del job, l'account di servizio worker deve avere altri ruoli, ad esempio
roles/storage.objectAdmin
. - Per scrivere nelle tabelle BigQuery, l'account di servizio worker deve avere il ruolo
roles/bigquery.dataEditor
. - Per leggere da un argomento o da un abbonamento Pub/Sub, l'account di servizio worker deve avere il ruolo
roles/pubsub.editor
.
- Per accedere ai dati del job, l'account di servizio worker deve avere altri ruoli, ad esempio
- Se utilizzi un VPC condiviso, la subnet VPC condiviso deve essere condivisa con l'account di servizio Dataflow e deve essere assegnato il ruolo Utente di rete Compute nella subnet specificata.
- Per verificare se la subnet VPC condivisa è condivisa con l'account di servizio Dataflow, nella console Google Cloud vai alla pagina VPC condiviso e cerca la subnet. Nella colonna Condiviso con, puoi vedere se la subnet VPC è condivisa con l'account di servizio Dataflow. Per ulteriori informazioni, consulta le linee guida per specificare un parametro di subnet per il VPC condiviso.
- L'account di servizio Compute Engine del progetto host, l'account di servizio worker Dataflow del progetto di servizio e l'account di servizio utilizzato per inviare il job devono avere i seguenti ruoli:
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
Assegnazione dei ruoli Dataflow
Al momento i ruoli Dataflow possono essere impostati solo per organizzazioni e progetti.
Per gestire i ruoli a livello di organizzazione, vedi Controllo dell'accesso per le organizzazioni che utilizzano IAM.
Per impostare i ruoli a livello di progetto, vedi Concessione, modifica e revoca dell'accesso alle risorse.