Guia de controle de acesso do Cloud Dataflow

Visão geral

É possível usar os papéis do IAM do Cloud Dataflow para limitar o acesso de usuários em um projeto ou organização. Você pode restringir o acesso a recursos relacionados ao Dataflow, em vez de conceder ao usuário, editor ou proprietário acesso a 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 respectivos recursos, consulte o Guia do desenvolvedor dele.

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 necessárias
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

Papéis

A tabela abaixo mostra os papéis de IAM do Dataflow com uma lista correspondente de todas as permissões que cada papel inclui. Cada permissão se aplica a um tipo específico de recurso.

Papel Nome Descrição Permissões Menor recurso
roles/dataflow.admin Administrador do Dataflow Papel mínimo para criar e gerenciar jobs do Dataflow.
  • compute.machineTypes.get
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • storage.buckets.get
  • storage.objects.create
  • storage.objects.get
  • storage.objects.list
roles/dataflow.developer Desenvolvedor do Dataflow Concede as permissões necessárias para executar e manipular jobs do Dataflow.
  • dataflow.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/dataflow.viewer Leitor do Dataflow Dá acesso somente de leitura a todos os recursos relacionados ao Dataflow.
  • dataflow.jobs.get
  • dataflow.jobs.list
  • dataflow.messages.*
  • dataflow.metrics.*
  • dataflow.snapshots.get
  • dataflow.snapshots.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Projeto
roles/dataflow.worker Worker do Dataflow Concede as permissões necessárias para que uma conta de serviço do Compute Engine execute unidades de trabalho para um pipeline do Dataflow.
  • compute.instanceGroupManagers.update
  • compute.instances.delete
  • compute.instances.setDiskAutoDelete
  • dataflow.jobs.get
  • logging.logEntries.create
  • storage.objects.create
  • storage.objects.get
Projeto

O papel Worker do Dataflow (roles/dataflow.worker) concede as permissões (dataflow.workItems.lease, dataflow.workItems.update e dataflow.workItems.sendMessage) necessárias para que uma conta de serviço do Compute Engine execute unidades de trabalho para um pipeline do Apache Beam. Costuma ser atribuído apenas a uma conta desse tipo e só inclui a capacidade de solicitar e atualizar trabalho a partir do serviço Dataflow.

O papel Agente de serviço do Dataflow (roles/dataflow.serviceAgent) fornece acesso aos recursos gerenciados para uma conta de serviço do Dataflow. Esse papel é atribuído a uma conta de serviço do Dataflow quando você cria um projeto do Dataflow. Não é possível atribuir esse papel.

Como criar jobs

Para criar um job, o 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, este 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 IAM.

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