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 projetodataproc.jobs.create
permite o envio de jobs do Dataproc para clusters do Dataproc no projetodataproc.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:
- A permissão
dataproc.operations.get
também é necessária para receber o status e atualizações da Google Cloud CLI. - A permissão
dataproc.clusters.get
também é necessária para receber o resultado da operação pela Google Cloud CLI. - 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:
A CLI do Google Cloud também requer
dataproc.jobs.get
permissão parajobs submit
,jobs wait
,jobs update
,jobs delete
ejobs kill
.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 ogcloud 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:
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.A CLI do Google Cloud também exige
dataproc.operations.get
permissão 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õ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:
- 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
.
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ãoget
,list
edelete
. - 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 papelStorage 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:
- 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 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. - 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.
- Para acessar o console do Google Cloud, consulte Controle de acesso usando o console do Google Cloud.
- Para usar a API, consulte Controle de acesso usando a API.
- Para a Google Cloud CLI, consulte Controle de acesso usando a Google Cloud CLI.
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