Controllo dell'accesso con IAM

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

(roles/dataflow.admin)

Minimal role for creating and managing dataflow jobs.

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.operations.*

  • cloudbuild.operations.get
  • cloudbuild.operations.list

compute.machineTypes.get

compute.projects.get

compute.regions.list

compute.zones.list

dataflow.jobs.*

  • dataflow.jobs.cancel
  • dataflow.jobs.create
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.jobs.snapshot
  • dataflow.jobs.updateContents

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.*

  • dataflow.snapshots.delete
  • dataflow.snapshots.get
  • dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.*

  • recommender.dataflowDiagnosticsInsights.get
  • recommender.dataflowDiagnosticsInsights.list
  • recommender.dataflowDiagnosticsInsights.update

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

storage.buckets.get

storage.objects.create

storage.objects.get

storage.objects.list

(roles/dataflow.developer)

Provides the permissions necessary to execute and manipulate Dataflow jobs.

Lowest-level resources where you can grant this role:

  • Project

cloudbuild.builds.create

cloudbuild.builds.get

cloudbuild.builds.list

cloudbuild.builds.update

cloudbuild.operations.*

  • cloudbuild.operations.get
  • cloudbuild.operations.list

compute.projects.get

compute.regions.list

compute.zones.list

dataflow.jobs.*

  • dataflow.jobs.cancel
  • dataflow.jobs.create
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.jobs.snapshot
  • dataflow.jobs.updateContents

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.*

  • dataflow.snapshots.delete
  • dataflow.snapshots.get
  • dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.*

  • recommender.dataflowDiagnosticsInsights.get
  • recommender.dataflowDiagnosticsInsights.list
  • recommender.dataflowDiagnosticsInsights.update

remotebuildexecution.blobs.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataflow.viewer)

Provides read-only access to all Dataflow-related resources.

Lowest-level resources where you can grant this role:

  • Project

dataflow.jobs.get

dataflow.jobs.list

dataflow.messages.list

dataflow.metrics.get

dataflow.snapshots.get

dataflow.snapshots.list

recommender.dataflowDiagnosticsInsights.get

recommender.dataflowDiagnosticsInsights.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/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:

  • Project

autoscaling.sites.readRecommendations

autoscaling.sites.writeMetrics

autoscaling.sites.writeState

compute.instanceGroupManagers.update

compute.instances.delete

compute.instances.setDiskAutoDelete

dataflow.jobs.get

dataflow.shuffle.*

  • dataflow.shuffle.read
  • dataflow.shuffle.write

dataflow.streamingWorkItems.*

  • dataflow.streamingWorkItems.ImportState
  • dataflow.streamingWorkItems.commitWork
  • dataflow.streamingWorkItems.getData
  • dataflow.streamingWorkItems.getWork
  • dataflow.streamingWorkItems.getWorkerMetadata

dataflow.workItems.*

  • dataflow.workItems.lease
  • dataflow.workItems.sendMessage
  • dataflow.workItems.update

logging.logEntries.create

logging.logEntries.route

monitoring.timeSeries.create

storage.buckets.get

storage.objects.create

storage.objects.get

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:

Assegnazione di ruoli di esempio

Per illustrare l'utilità dei diversi ruoli di Dataflow, considera la seguente suddivisione:

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.