Controle de acesso com o IAM

Para limitar o acesso de usuários em um projeto ou organização, use os papéis de gerenciamento de identidade e acesso (IAM, na sigla em inglês) do Dataflow. É possível controlar o acesso a recursos relacionados ao Dataflow, em vez de conceder aos usuários o papel de "Visualizador", "Editor" ou "Proprietário" em todo o projeto do Google Cloud.

O objetivo desta página é mostrar como usar esses papéis. Para uma descrição detalhada do IAM e dos recursos dele, consulte a documentação do IAM.

Todos os métodos do Dataflow exigem as devidas permissões do autor da chamada. Para ver uma lista de permissões e papéis aceitos pelo Dataflow, consulte a seção abaixo.

Permissões e papéis

Esta seção resume as permissões e os papéis de IAM aceitos pelo Dataflow.

Permissões necessárias

A tabela abaixo lista as permissões que o autor da chamada precisa ter para chamar cada método:

Método Permissões exigidas
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

Papéis

A tabela abaixo mostra os papéis de IAM do Dataflow com uma lista correspondente de permissões relacionadas ao Dataflow que cada papel inclui. Cada permissão se aplica a um tipo específico de recurso. Para ver uma lista de permissões, consulte a página Papéis no Console do 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

O papel "Worker do Dataflow" (roles/dataflow.worker) concede as permissões necessárias para que uma conta de serviço do Compute Engine execute unidades de trabalho para um pipeline do Apache Beam. O papel "Worker do Dataflow" precisa ser atribuído a uma conta de serviço capaz de solicitar e atualizar o trabalho do serviço Dataflow.

O papel Agente de serviço do Dataflow (roles/dataflow.serviceAgent) é usado exclusivamente pela conta de serviço do Dataflow. Ele fornece à conta de serviço acesso a recursos gerenciados no seu projeto do Google Cloud para executar jobs do Dataflow. Ele é atribuído automaticamente à conta de serviço quando você ativa a API Dataflow para o projeto na página APIs do Console do Google Cloud.

Criar jobs

Para um job de criação, o papel roles/dataflow.admin inclui o conjunto mínimo de permissões necessárias para executar e examinar jobs.

Como alternativa, são necessárias as seguintes permissões:

Exemplo de atribuição de papéis

Para ilustrar a utilidade dos diferentes papéis do Dataflow, considere os detalhes a seguir:

Atribuição de papéis do Dataflow

Atualmente, só é possível definir os papéis do Dataflow em organizações e projetos.

Para gerenciar papéis no nível organizacional, consulte Controle de acesso para organizações usando o IAM.

Para definir papéis no nível do projeto, consulte Como conceder, alterar e revogar acesso aos recursos.