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 |
---|---|
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:
|
|
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:
- O papel
roles/dataflow.developer
para instanciar o job. - O papel
roles/compute.viewer
para acessar informações de tipo de máquina e visualizar outras configurações. - O papel
roles/storage.objectAdmin
para fornecer permissão para preparar arquivos no Cloud Storage.
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/iam.serviceAccountUser
. - 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.
- Ele precisa do papel
- A conta de serviço do worker
precisa dos papéis
roles/dataflow.worker
eroles/dataflow.admin
para processar dados no serviço do Dataflow.- Para acessar os dados do job, a conta de serviço do worker precisa de outros papéis, como
roles/storage.objectAdmin
. - Para gravar em tabelas do BigQuery, a conta de serviço do worker precisa do
papel
roles/bigquery.dataEditor
. - Para ler um tópico ou uma assinatura do Pub/Sub, a conta de serviço do worker precisa do
papel
roles/pubsub.editor
.
- Para acessar os dados do job, a conta de serviço do worker precisa de outros papéis, como
- Se você estiver usando uma VPC compartilhada, a sub-rede da VPC compartilhada precisa ser compartilhada com a conta de serviço do Dataflow e ter a configuração do Compute Papel de usuário de rede atribuído na sub-rede especificada.
- Para ver se a sub-rede da VPC compartilhada é compartilhada com a conta de serviço do Dataflow, acesse a página VPC compartilhada no Console do Google Cloud e procure pela sub-rede. Na coluna Compartilhada com, você vê se a sub-rede VPC é compartilhada com a conta de serviço do Dataflow. Para mais informações, consulte Diretrizes para especificar um parâmetro de sub-rede para VPC compartilhada.
- A conta de serviço do Compute Engine do projeto host, a conta de serviço do worker do Dataflow do projeto de serviço e a conta de serviço usada para enviar o job precisam ter os seguintes papéis:
roles/dataflow.admin
roles/dataflow.serviceAgent
roles/compute.networkUser
roles/storage.objectViewer
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.