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 correlate a Dataflow, anziché concedere agli utenti il ruolo Visualizzatore, Editor o Proprietario all'intero progetto Google Cloud.
Questa pagina illustra 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 chi effettua la chiamata debba disporre 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 IAM Dataflow.
Autorizzazioni obbligatorie
La tabella seguente elenca le autorizzazioni di cui deve disporre l'utente che chiama 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 Dataflow Worker (roles/dataflow.worker
) fornisce le autorizzazioni necessarie a un account di servizio Compute Engine per eseguire unità di lavoro per una pipeline Apache Beam. Il ruolo Dataflow Worker 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 progetto Google Cloud per eseguire i job Dataflow. Viene assegnato automaticamente all'account di servizio quando attivi 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 richieste 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 concedere l'autorizzazione per eseguire il commit dei file su Cloud Storage.
Assegnazione di ruoli di esempio
Per illustrare l'utilità dei diversi ruoli di Dataflow, considera la seguente suddivisione:
- Lo sviluppatore che crea ed esamina i job deve disporre del ruolo
roles/iam.serviceAccountUser
. - Per una gestione delle autorizzazioni più sofisticata, lo sviluppatore che interagisce con il job Dataflow deve disporre del ruolo
roles/dataflow.developer
.- Per eseguire il commit dei file richiesti, deve disporre del ruolo
roles/storage.objectAdmin
o di un ruolo correlato. - Per il debug e il controllo della quota, è necessario il ruolo project
roles/compute.viewer
. - In assenza di altre assegnazioni di ruolo, questo ruolo consente allo sviluppatore di creare e annullare i job Dataflow, ma non di interagire con le singole VM o accedere ad altri servizi cloud.
- Per eseguire il commit dei file richiesti, deve disporre del ruolo
- Il service account worker necessita dei ruoli
roles/dataflow.worker
eroles/dataflow.admin
per elaborare i dati per il servizio Dataflow.- Per accedere ai dati dei job, l'account di servizio del worker ha bisogno di altri ruoli, ad esempio
roles/storage.objectAdmin
. - Per scrivere nelle tabelle BigQuery, l'account di servizio del worker deve disporre del ruolo
roles/bigquery.dataEditor
. - Per leggere da un argomento o da un abbonamento Pub/Sub, l'account di servizio del worker deve disporre del ruolo
roles/pubsub.editor
.
- Per accedere ai dati dei job, l'account di servizio del worker ha bisogno di altri ruoli, ad esempio
- Se utilizzi un VPC condiviso, la subnet del VPC condiviso deve essere condivisa con l'account di servizio Dataflow e deve avere il ruolo Utente di rete Compute assegnato alla subnet specificata.
- Per verificare se la subnet del VPC condiviso è condivisa con l'account di servizio Dataflow, nella console Google Cloud vai alla pagina VPC condiviso e cerca la subnet. Nella colonna Condivisa con, puoi vedere se la subnet VPC è condivisa con l'account di servizio Dataflow. Per ulteriori informazioni, consulta Linee guida per la specifica di un parametro di sottorete per il VPC condiviso.
- Il
service account Compute Engine del progetto host,
il
service account worker Dataflow del progetto di servizio
e l'account di servizio utilizzato per inviare il job devono disporre dei seguenti ruoli:
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
Assegnare i ruoli Dataflow
Al momento, i ruoli di Dataflow possono essere impostati solo su organizzazioni e progetti.
Per gestire i ruoli a livello di organizzazione, consulta Controllo dell'accesso per le organizzazioni che utilizzano IAM.
Per impostare i ruoli a livello di progetto, consulta Concessione, modifica e revoca dell'accesso alle risorse.