Visão geral
O gerenciamento de identidade e acesso (IAM, na sigla em inglês) permite controlar o acesso de usuários e grupos aos recursos do seu 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
Com as permissões do Dataproc, os usuários, incluindo contas de serviço, podem executar ações específicas 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 seu projeto.
Você não concede permissões diretamente aos usuários. Em vez disso, você concede papéis, que já têm uma ou mais permissões incluídas.
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ão exigida |
---|---|
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:
- A permissão
dataproc.operations.get
também é necessária para receber atualizações de status da CLI do Google Cloud. - A permissão
dataproc.clusters.get
também é necessária para receber o resultado da operação da CLI do Google Cloud. - 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ão exigida |
---|---|
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:
Além disso, o Google Cloud CLI requer
dataproc.jobs.get
para que os comandosjobs submit
,jobs wait
,jobs update
,jobs delete
ejobs kill
funcionem corretamente.A CLI do Google Cloud também requer permissão
dataproc.clusters.get
para enviar jobs. Para um exemplo de como definir as permissões necessárias para um usuário executargcloud dataproc jobs submit
em um cluster específico usando o IAM granular do Dataproc, consulte Como enviar jobs com o IAM granular.
Permissões de operações
Método | Permissão exigida |
---|---|
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ão exigida |
---|---|
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:
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
ousubmit job
pode criar e instanciar um modelo de fluxo de trabalho.Além disso, a CLI do Google Cloud requer permissão
dataproc.operations.get
para pesquisar a conclusão do fluxo de trabalho.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ão exigida |
---|---|
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:
- 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étodoclusters.patch
.
Papéis do Dataproc
Os papéis do IAM do Dataproc
são um pacote de uma ou mais permissões.
Você atribui papéis a usuários ou grupos para permitir que executem ações nos recursos do Dataproc no seu
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ãoget
,list
edelete
. - As permissões
compute
listadas acima são necessárias ou recomendadas para criar e visualizar clusters do Dataproc ao usar o Console do Google Cloud ou a CLI do Google Cloud CLIgcloud
. - 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 papelStorage Object Viewer
. Conceder um desses papéis do 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 da VM" do Console do Google Cloud→Dataproc→Detalhes do cluster. Para ver informações sobre papéis do Google 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 ver uma lista de papéis adicionais.
Papéis do projeto
Você também pode definir permissões no nível do projeto usando os papéis do Projeto do IAM. Este é um resumo das 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 resume as operações do Dataproc disponíveis com base no papel atribuído ao usuário, com algumas ressalvas.
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:
- 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
. - 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
. - Os jobs que incluem arquivos para upload não podem ser enviados, a menos que o usuário também tenha a o papel Criador de objetos de armazenamento ou tenha recebido acesso de gravação ao bucket de preparo do projeto.
- 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 em que o cluster está localizado, como criar instâncias de VM no projeto, o Dataproc realiza essas ações em seu nome usando uma conta de serviço com as permissões necessárias para executar 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 CLI do Google Cloud.
- Para o Console do Google Cloud, consulte Controle de acesso por meio do Console do Google Cloud.
- Para a API, consulte Controle de acesso via API.
- Para a CLI do Google Cloud, consulte Controle de acesso pela CLI do Google Cloud.
A seguir
- Conheça os principais e os papéis do Dataproc
- Saiba mais sobre o IAM granular do Dataproc
- Saiba mais sobre o IAM.
- Saiba mais sobre contas de serviço no Dataproc