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; para executar ações no Dataproc clusters, jobs, operações e modelos de fluxo de trabalho. Por exemplo, 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 às cada recurso do Dataproc (clusters, jobs, operações e modelos de fluxo de trabalho).

Escopo da permissão:o escopo do Dataproc de permissões listadas nas tabelas a seguir são as permissões Google Cloud projeto (escopo cloud-platform). Consulte Permissões da conta de serviço.

Exemplos:

  • dataproc.clusters.create permite a criação de Clusters do Dataproc no projeto
  • dataproc.jobs.create permite o envio de jobs do Dataproc para clusters do Dataproc no projeto
  • dataproc.clusters.list permite a listagem de detalhes de clusters do Dataproc no projeto
.

Permissões dos clusters

Método Permissões necessárias
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 o status e atualizações da Google Cloud CLI.
  2. A permissão dataproc.clusters.get também é necessária para receber o resultado da operação pela 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 necessárias
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 CLI do Google Cloud também requer dataproc.jobs.get permissão para jobs submit, jobs wait, jobs update, jobs delete e jobs kill.

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

Permissões de operações

Método Permissões necessárias
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 necessárias
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 CLI do Google Cloud também exige dataproc.operations.get permissão 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 necessárias
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 dos grupos de nós

Método Permissões necessárias
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

Notas:

  • "*" 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 usando o console do Google Cloud ou a CLI gcloud 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.
  • Um usuário precisa ter a permissão monitoring.timeSeries.list para ver gráficos no console do Google Cloud → Dataproc→Detalhes do cluster Guia "Visão geral".
  • Um usuário precisa ter a permissão compute.instances.list para exibir o status da instância e o menu SSH da instância mestre no Console do Google Cloud→Dataproc→Detalhes do cluster "Instâncias de VM". 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, conta de serviço precisa ter todas as permissões concedidas pelo Dataproc Worker o papel do Dataproc, o que inclui acesso ao serviço do Dataproc buckets temporários e de teste. Papéis adicionais podem ser necessários, dependendo dos recursos configurados. Consulte Criar um cluster com uma conta de serviço de VM personalizada 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 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 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 Não Não Sim Não Não
Criar cluster Sim Não Sim Sim Não
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 Não Sim Sim Não
Excluir cluster Sim Não Sim Sim Não
Iniciar/parar cluster Sim Não Sim Sim Não
Enviar job Sim Não Sim 3 Sim 3 Não
Listar jobs Sim Sim Sim Sim Sim
Receber detalhes do job Sim Sim Sim 4 Sim 4 Sim 4
Cancelar job Sim Não Sim Sim Não
Excluir job Sim Não Sim Sim Não
Listar operações Sim Sim Sim Sim Sim
Receber detalhes da operação Sim Sim Sim Sim Sim
Excluir operação Sim Não Sim Sim Não

Notas:

  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 a permissão Storage Object Creator de acesso de gravação ou papel bucket de preparo.
  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 Dataproc para executar ações em um projeto, como criar instâncias de VM, o Dataproc executa as ações usando uma conta de serviço com as permissões necessárias para 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 o Google Cloud CLI.

A seguir