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 relevantes para o Serviço Gerenciado para Apache Spark e nos papéis do IAM que concedem essas permissões.
Permissões do Serviço Gerenciado para Apache Spark em clusters
As permissões do Serviço Gerenciado para Apache Spark 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 Serviço Gerenciado para Apache Spark. Por exemplo, a permissão dataproc.clusters.create
permite que um usuário crie clusters do Serviço Gerenciado para Apache Spark 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 Serviço Gerenciado para Apache Spark. As tabelas são organizadas de acordo com as APIs associadas a cada recurso do Serviço Gerenciado para Apache Spark (clusters, jobs, operações e modelos de fluxo de trabalho).
Escopo da permissão: o escopo das permissões do Serviço Gerenciado para Apache Spark
listadas nas tabelas a seguir é o projeto do Google Cloud
que as contém (escopo cloud-platform). Consulte
Permissões da conta de serviço.
Exemplos:
dataproc.clusters.createpermite a criação de clusters do Serviço Gerenciado para Apache Spark no projeto que os contém.dataproc.jobs.createpermite o envio de jobs do Serviço Gerenciado para Apache Spark para clusters do Serviço Gerenciado para Apache Spark no projeto que os contém.dataproc.clusters.listpermite listar detalhes dos clusters do Serviço Gerenciado para Apache Spark no projeto que os contém.
Permissões necessárias para métodos de 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.gettambém é necessária para receber atualizações de status da Google Cloud CLI. - A permissão
dataproc.clusters.gettambém é necessária para receber o resultado da operação da Google Cloud CLI. - A permissão
dataproc.autoscalingPolicies.usetambém é necessária para ativar uma política de escalonamento automático em um cluster.
Permissões necessárias para métodos 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 a permissão
dataproc.jobs.getpara os comandosjobs submit,jobs wait,jobs update,jobs deleteejobs kill.A CLI gcloud também requer a permissão
dataproc.clusters.getpara enviar jobs. Para ver um exemplo de como definir as permissões necessárias para que um usuário executegcloud dataproc jobs submitem um cluster usando o IAM granular do serviço gerenciado para Apache Spark, consulte Como enviar jobs com o IAM granular.
Permissões necessárias para métodos 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 necessárias para métodos de modelos 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 clusterousubmit jobpode criar e instanciar um modelo de fluxo de trabalho.A CLI do Google Cloud também requer a permissão
dataproc.operations.getpara 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 necessárias para métodos 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 necessárias para métodos de 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 Serviço Gerenciado para Apache Spark
Os papéis do IAM do Serviço Gerenciado para Apache Spark
são um pacote de uma ou mais permissões.
Conceda papéis a usuários ou grupos para que eles possam realizar ações nos recursos do Serviço Gerenciado para Apache Spark em um projeto. Por exemplo,
o papel Leitor do Serviço Gerenciado para Apache Spark contém
as permissões get e list, que permitem que um usuário receba e liste
clusters, jobs e operações do Serviço Gerenciado para Apache Spark em um projeto.
A tabela a seguir lista os papéis que contêm as permissões necessárias para criar e gerenciar clusters do Serviço Gerenciado para Apache Spark.
| Conceder papel para | Papéis |
|---|---|
| Usuário | Conceda aos usuários os seguintes papéis:
|
| Conta de serviço | Conceda o papel de worker do Dataproc à conta de serviço da VM do Serviço Gerenciado para Apache Spark. |
Observe o seguinte:
Talvez seja necessário conceder à conta de serviço da VM do Serviço Gerenciado para Apache Spark outros papéis predefinidos ou personalizados que contenham as permissões necessárias para outras operações, como ler e gravar dados no Cloud Storage, no BigQuery, no Cloud Logging e em outros Google Cloud recursos.
Em alguns projetos, a conta de serviço da VM do Serviço Gerenciado para Apache Spark pode ter recebido automaticamente o papel de Editor do projeto, que inclui as permissões do papel de worker do Dataproc e outras permissões não necessárias para as operações do plano de dados do Serviço Gerenciado para Apache Spark. Para seguir o princípio de práticas recomendadas de segurança de privilégio mínimo, substitua o papel de Editor pelo papel de Worker do Dataproc (consulte Ver papéis da conta de serviço da VM).
Você precisa conceder papéis?
Dependendo da política da organização, um papel obrigatório pode já ter sido concedido.
Verificar os papéis concedidos aos usuários
Para ver se um usuário recebeu um papel, siga as instruções em Gerenciar o acesso a projetos, pastas e organizações > Ver o acesso atual.
Verificar os papéis concedidos às contas de serviço
Para verificar se uma conta de serviço recebeu um papel, consulte Ver e gerenciar papéis de conta de serviço do IAM.
Verificar os papéis concedidos em uma conta de serviço
Para ver se um usuário recebeu um papel em uma conta de serviço, siga as instruções em Gerenciar o acesso a contas de serviço > Ver o acesso atual.
Consultar papéis e permissões do Serviço Gerenciado para Apache Spark
Use a seção a seguir para consultar os papéis e as permissões do Serviço Gerenciado para Apache Spark.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Managed Service for Apache Spark, including machine types, networks, projects, and zones. Lowest-level resources where you can grant this role:
|
|
Dataproc Viewer( Provides read-only access to Managed Service for Apache Spark resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Hub Agent( Allows management of Dataproc resources. Intended for service accounts running Dataproc Hub instances. |
|
Dataproc Serverless Editor( Permissions needed to run serverless sessions and batches as a user |
|
Dataproc Serverless Node.( Node access to Dataproc Serverless sessions and batches. Intended for service accounts. |
|
Dataproc Serverless Viewer( Permissions needed to view serverless sessions and batches |
|
Dataproc Worker( Provides worker access to Managed Service for Apache Spark resources. Intended for service accounts. |
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Dataproc Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Observações:
- As permissões
computesão necessárias ou recomendadas para criar e visualizar clusters do Serviço Gerenciado para Apache Spark ao usar o console do Google Cloud ou a CLI gcloud do Google Cloud. - 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.listpara visualizar gráficos na guia Visão geral do console do Google Cloud →Serviço Gerenciado para Apache Spark→Detalhes do cluster. - Um usuário precisa ter a permissão
compute.instances.listpara ver o status da instância e o menu SSH da instância mestre na guia Instâncias de VM do Google Cloud console→Serviço Gerenciado para Apache Spark→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, a conta de serviço especificada precisa ter todas as permissões concedidas pelo papel
Dataproc Worker, que incluem acesso aos buckets de preparo e temporários do Serviço Gerenciado para Apache Spark. 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 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 do IAM e das operações do Serviço Gerenciado para Apache Spark
A tabela a seguir lista as operações do Serviço Gerenciado para Apache Spark associadas aos papéis do projeto e do Serviço Gerenciado para Apache Spark.
| Operação | Editor do projeto | Leitor do projeto. | Administrador do Serviço Gerenciado para Apache Spark | Editor do Serviço Gerenciado para Apache Spark | Leitor do Serviço Gerenciado para Apache Spark |
|---|---|---|---|---|---|
| Receber/definir permissões do IAM do Serviço Gerenciado para Apache Spark | 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 o papel
Storage Object Creatorou acesso de gravação ao bucket de preparo do Serviço Gerenciado para Apache Spark. - 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.
Escopos de acesso de VM do Serviço Gerenciado para Apache Spark
Os escopos de acesso da VM e os papéis do IAM trabalham juntos para limitar o acesso da VM às APIs do Google Cloud. Por exemplo, se as VMs do cluster receberem apenas o escopo https://www.googleapis.com/auth/storage-full, os aplicativos em execução nelas poderão chamar as API Storage do Cloud Storage, mas não poderão fazer solicitações ao BigQuery, mesmo que estejam sendo executados como uma conta de serviço de VM que recebeu um papel do BigQuery com permissões amplas.
Uma prática recomendada é conceder o escopo amplo cloud-platform
(https://www.googleapis.com/auth/cloud-platform)
às VMs e, em seguida, limitar o acesso delas concedendo
papéis específicos do IAM à conta de serviço da VM (consulte Prática recomendada de escopos).
Escopos padrão de VM do Serviço Gerenciado para Apache Spark. Se os escopos não forem especificados quando um cluster for criado (consulte gcloud dataproc cluster create --scopes), as VMs do Serviço Gerenciado para Apache Spark terão o seguinte conjunto padrão de escopos:
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Se você especificar escopos ao criar um cluster, as VMs do cluster terão os escopos especificadose o seguinte conjunto mínimo de escopos obrigatórios (mesmo que você não os especifique):
https://www.googleapis.com/auth/cloud-platform (clusters created with image version 2.1+).
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write
Gerenciamento de políticas de permissão do IAM
Você concede papéis do IAM a principais usando políticas de permissão. É possível receber e definir políticas de permissão usando o console do Google Cloud , a API IAM ou a Google Cloud CLI.
- Para o console do Google Cloud , consulte Controle de acesso usando o console do Google Cloud .
- Para a API, consulte Controle de acesso usando a API.
- Para a Google Cloud CLI, consulte Controle de acesso usando a Google Cloud CLI.