Permissões e papéis do IAM do Dataproc

Visão geral

O Identity and Access Management (IAM) permite controlar o acesso de usuários e grupos aos recursos do projeto. Este documento se concentra nas permissões do IAM correspondentes ao Dataproc e os papéis do IAM que concedem essas permissões.

Permissões do Dataproc

As permissões do Dataproc permitem que os usuários, incluindo contas de serviço, realizem ações em clusters, jobs, operações e modelos de fluxo de trabalho do Dataproc. Por exemplo, a permissão dataproc.clusters.create permite que um usuário crie clusters do Dataproc em um projeto. Normalmente, você não concede permissões. Em vez disso, você concede papéis, que incluem uma ou mais permissões.

As tabelas a seguir listam as permissões necessárias para chamar as APIs (métodos) do Dataproc. As tabelas são organizadas de acordo com as APIs associadas a cada recurso do Dataproc (clusters, jobs, operações e modelos de fluxo de trabalho).

Permissões dos clusters

Método Permissões exigidas
projects.regions.clusters.create 1, 2 dataproc.clusters.create
projects.regions.clusters.get dataproc.clusters.get
projects.regions.clusters.list dataproc.clusters.list
projects.regions.clusters.patch 1, 2, 3 dataproc.clusters.update
projects.regions.clusters.delete 1 dataproc.clusters.delete
projects.regions.clusters.start dataproc.clusters.start
projects.regions.clusters.stop dataproc.clusters.stop
projects.regions.clusters.getIamPolicy dataproc.clusters.getIamPolicy
projects.regions.clusters.setIamPolicy dataproc.clusters.setIamPolicy

Observações:

  1. A permissão dataproc.operations.get também é necessária para receber atualizações de status da Google Cloud CLI.
  2. A permissão dataproc.clusters.get também é necessária para receber o resultado da operação da Google Cloud CLI.
  3. A permissão dataproc.autoscalingPolicies.use também é necessária para ativar uma política de escalonamento automático em um cluster.

Permissões de jobs

Método Permissões exigidas
projects.regions.jobs.submit 1, 2 dataproc.jobs.create
dataproc.clusters.use
projects.regions.jobs.get dataproc.jobs.get
projects.regions.jobs.list dataproc.jobs.list
projects.regions.jobs.cancel 1 dataproc.jobs.cancel
projects.regions.jobs.patch 1 dataproc.jobs.update
projects.regions.jobs.delete 1 dataproc.jobs.delete
projects.regions.jobs.getIamPolicy dataproc.jobs.getIamPolicy
projects.regions.jobs.setIamPolicy dataproc.jobs.setIamPolicy

Observações:

  1. A Google Cloud CLI também requer a permissão dataproc.jobs.get para os comandos jobs submit, jobs wait, jobs update, jobs delete e jobs kill.

  2. A CLI gcloud também requer a permissão dataproc.clusters.get para enviar jobs. Para um exemplo de definição das permissões necessárias para que um usuário execute gcloud dataproc jobs submit em um cluster usando o IAM granular do Dataproc, consulte Como enviar jobs com IAM granular.

Permissões de operações

Método Permissões exigidas
projects.regions.operations.get dataproc.operations.get
projects.regions.operations.list dataproc.operations.list
projects.regions.operations.cancel dataproc.operations.cancel
projects.regions.operations.delete dataproc.operations.delete
projects.regions.operations.getIamPolicy dataproc.operations.getIamPolicy
projects.regions.operations.setIamPolicy dataproc.operations.setIamPolicy

Permissões do modelo de fluxo de trabalho

Método Permissões exigidas
projects.regions.workflowTemplates.instantiate dataproc.workflowTemplates.instantiate
projects.regions.workflowTemplates.instantiateInline dataproc.workflowTemplates.instantiateInline
projects.regions.workflowTemplates.create dataproc.workflowTemplates.create
projects.regions.workflowTemplates.get dataproc.workflowTemplates.get
projects.regions.workflowTemplates.list dataproc.workflowTemplates.list
projects.regions.workflowTemplates.update dataproc.workflowTemplates.update
projects.regions.workflowTemplates.delete dataproc.workflowTemplates.delete
projects.regions.workflowTemplates.getIamPolicy dataproc.workflowTemplates.getIamPolicy
projects.regions.workflowTemplates.setIamPolicy dataproc.workflowTemplates.setIamPolicy

Observações:

  1. As permissões do modelo de fluxo de trabalho não dependem das permissões de cluster e job. Um usuário sem as permissões create cluster ou submit job pode criar e instanciar um modelo de fluxo de trabalho.

  2. A Google Cloud CLI também requer a permissão dataproc.operations.get para pesquisar a conclusão do fluxo de trabalho.

  3. A permissão dataproc.operations.cancel é necessária para cancelar um fluxo de trabalho em execução.

Permissões de políticas de escalonamento automático

Método Permissões exigidas
projects.regions.autoscalingPolicies.create dataproc.autoscalingPolicies.create
projects.regions.autoscalingPolicies.get dataproc.autoscalingPolicies.get
projects.regions.autoscalingPolicies.list dataproc.autoscalingPolicies.list
projects.regions.autoscalingPolicies.update dataproc.autoscalingPolicies.update
projects.regions.autoscalingPolicies.delete dataproc.autoscalingPolicies.delete
projects.regions.autoscalingPolicies.getIamPolicy dataproc.autoscalingPolicies.getIamPolicy
projects.regions.autoscalingPolicies.setIamPolicy dataproc.autoscalingPolicies.setIamPolicy

Notas:

  1. A permissão dataproc.autoscalingPolicies.use é necessária para ativar uma política de escalonamento automático em um cluster com uma solicitação de método clusters.patch.

Permissões de grupos de nós

Método Permissões exigidas
projects.regions.nodeGroups.create dataproc.nodeGroups.create
projects.regions.nodeGroups.get dataproc.nodeGroups.get
projects.regions.nodeGroups.resize dataproc.nodeGroups.update

Papéis do Dataproc

Os papéis do IAM do Dataproc são um pacote de uma ou mais permissões. Você concede papéis a usuários ou grupos para permitir que executem ações nos recursos do Dataproc em um projeto. Por exemplo, o papel Leitor do Dataproc contém as permissões dataproc.*.get e dataproc.*.list, que permitem ao usuário conseguir e listar clusters, jobs e operações do Dataproc em um projeto.

A tabela a seguir lista os papéis de IAM do Dataproc e as permissões associadas a cada um:

ID do papel Permissões
roles/dataproc.admin dataproc.*.getIamPolicy
dataproc.*.setIamPolicy
dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.editor dataproc.*.create
dataproc.*.get
dataproc.*.list
dataproc.*.delete
dataproc.*.update
dataproc.clusters.use
dataproc.clusters.start
dataproc.clusters.stop
dataproc.jobs.cancel
dataproc.workflowTemplates.instantiate
dataproc.workflowTemplates.instantiateInline
compute.machineTypes.get
compute.machineTypes.list
compute.networks.get
compute.networks.list
compute.projects.get
compute.regions.get
compute.regions.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.viewer dataproc.*.get
dataproc.*.list
compute.machineTypes.get
compute.regions.get
compute.regions.list
compute.zones.get
resourcemanager.projects.get
resourcemanager.projects.list
roles/dataproc.worker (somente para contas de serviço) dataproc.agents.*
dataproc.tasks.*
logging.logEntries.create
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create
storage.buckets.get
storage.objects.create
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.delete
storage.objects.getIamPolicy
storage.objects.setIamPolicy

Observações:

  • "*" significa "clusters", "jobs" "ou" "operações", mas as únicas permissões associadas a dataproc.operations. são get, list e delete.
  • As permissões compute listadas anteriormente são necessárias ou recomendadas para criar e visualizar clusters do Dataproc ao usar o console do Google Cloud ou a CLI gcloud do Google Cloud CLI.
  • Para permitir que um usuário faça o upload de arquivos, atribua o papel Storage Object Creator. Para permitir que um usuário visualize a saída do job, atribua o papel Storage Object Viewer. A concessão de qualquer um desses papéis do Cloud Storage permite que o usuário acesse qualquer bucket no projeto.
  • Um usuário precisa ter a permissão monitoring.timeSeries.list para visualizar gráficos na guia "Visão geral" do console do Google Cloud→Dataproc→Detalhes do cluster.
  • Um usuário precisa ter a permissão compute.instances.list para visualizar o status da instância e o menu SSH da instância mestre na guia "Instâncias de VM" do console do Google Cloud→Dataproc→Detalhes do cluster. Para informações sobre os papéis do Compute Engine, consulte Compute Engine → Papéis do IAM disponíveis).
  • Para criar um cluster com uma conta de serviço especificada pelo usuário, essa conta precisa ter todas as permissões concedidas pelo papel Dataproc Worker. Papéis adicionais podem ser necessários, dependendo dos recursos configurados. Consulte Contas de serviço para mais informações.

Papéis do projeto

Você também pode definir permissões no nível do projeto usando os papéis do Projeto do IAM. A tabela a seguir lista as permissões associadas aos papéis do Projeto do IAM:

Papel do projeto Permissões
Visualizador do projeto Todas as permissões do projeto para ações somente leitura que preservam o estado (get, lista)
Editor do projeto Todas as permissões do Visualizador do projeto acrescidas de todas as permissões do projeto para ações que modificam o estado (criar, excluir, atualizar, usar, cancelar, interromper, iniciar)
Proprietário do projeto Todas as permissões do Editor do projeto acrescidas das permissões para gerenciar o controle de acesso do projeto (get/set IamPolicy) e configurar o faturamento do projeto

Resumo dos papéis de IAM e de operações do Dataproc

A tabela a seguir lista as operações do Dataproc associadas aos papéis do projeto e do Dataproc.

Operação Editor do projeto Visualizador do projeto Administrador do Dataproc Editor do Dataproc Leitor do Dataproc
Receber/Definir permissões de IAM do Dataproc No No Sim No No
Criar cluster Sim No Sim Sim No
Listar clusters Sim Sim Sim Sim Sim
Receber detalhes do cluster Sim Sim Sim 1, 2 Sim 1, 2 Sim 1, 2
Atualizar cluster Sim No Sim Sim No
Excluir cluster Sim No Sim Sim No
Iniciar/parar cluster Sim No Sim Sim No
Enviar job Sim No Sim 3 Sim 3 No
Listar jobs Sim Sim Sim Sim Sim
Receber detalhes do job Sim Sim Sim 4 Sim 4 Sim 4
Cancelar job Sim No Sim Sim No
Excluir job Sim No Sim Sim No
Listar operações Sim Sim Sim Sim Sim
Receber detalhes da operação Sim Sim Sim Sim Sim
Excluir operação Sim No Sim Sim No

Observações:

  1. O gráfico de desempenho não estará disponível a menos que o usuário também tenha um papel com a permissão monitoring.timeSeries.list.
  2. A lista de VMs no cluster não incluirá informações de status ou um link SSH para a instância mestre, a menos que o usuário também tenha um papel com a permissão compute.instances.list.
  3. Os jobs que fazem upload de arquivos exigem que o usuário tenha o papel Storage Object Creator ou acesso de gravação ao bucket de preparo do Dataproc.
  4. A saída do job não estará disponível, a menos que o usuário também tenha o papel Leitor de objetos de armazenamento ou tenha recebido acesso de leitura ao bucket de preparo do projeto.

Contas de serviço

Quando você chama APIs do Dataproc para executar ações em um projeto, como a criação de instâncias de VM, o Dataproc executa as ações em seu nome usando uma conta de serviço que tenha as permissões necessárias para realizar as ações. Para mais informações, consulte Contas de serviço do Dataproc.

Gerenciamento do IAM

É possível receber e definir políticas do IAM usando o console do Google Cloud, a API IAM ou a Google Cloud CLI.

A seguir