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.

Papel Permissões

Administrador do Dataflow
(roles/dataflow.admin)

Papel mínimo para criar e gerenciar jobs do Dataflow.

  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • compute.machineTypes.get
  • compute.projects.get
  • compute.regions.list
  • compute.zones.list
  • dataflow.jobs.*
  • dataflow.messages.list
  • dataflow.metrics.get
  • dataflow.snapshots.*
  • recommender.dataflowDiagnosticsInsights.*
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
  • storage.objects.list

Desenvolvedor do Dataflow
(roles/dataflow.developer)

Concede as permissões necessárias para executar e manipular jobs do Dataflow.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • cloudbuild.builds.create
  • cloudbuild.builds.get
  • cloudbuild.builds.list
  • cloudbuild.builds.update
  • compute.projects.get
  • compute.regions.list
  • compute.zones.list
  • dataflow.jobs.*
  • dataflow.messages.list
  • dataflow.metrics.get
  • dataflow.snapshots.*
  • recommender.dataflowDiagnosticsInsights.*
  • remotebuildexecution.blobs.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Leitor do Dataflow
(roles/dataflow.viewer)

Dá acesso somente leitura a todos os recursos relacionados ao Dataflow.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • 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

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 work para um pipeline do Dataflow.

Recursos de nível mais baixo em que você pode conceder esse papel:

  • Projeto
  • autoscaling.sites.readRecommendations
  • autoscaling.sites.writeMetrics
  • autoscaling.sites.writeState
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • dataflow.shuffle.*
  • dataflow.streamingWorkItems.*
  • dataflow.workItems.*
  • logging.logEntries.create
  • 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:

  • O desenvolvedor que cria e examina jobs precisa do papel roles/dataflow.admin.
  • Para um gerenciamento de permissões mais sofisticado, o desenvolvedor que interage com o job do Dataflow precisa do papel roles/dataflow.developer.
    • Ele precisa do papel roles/storage.objectAdmin ou um relacionado para preparar os arquivos necessários.
    • Para depuração e verificação de cota, dele precisa do papel roles/compute.viewer do projeto.
    • Na ausência de outras atribuições de papel, esse permitirá ao desenvolvedor criar e cancelar jobs do Dataflow, mas não interagir com as VMs individuais ou acessar outros serviços do Cloud.
  • A conta de serviço do controlador precisa do papel roles/dataflow.worker para processar dados do serviço do Dataflow. Para acessar os dados do job, as contas de serviço precisam de outros papéis, como roles/storage.objectAdmin.

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.