O Identity and Access Management (IAM) permite controlar o acesso aos recursos do projeto. Este documento se concentra nas permissões do IAM relevantes para implantações sem servidor do Serviço Gerenciado para Apache Spark e nos papéis do IAM que concedem essas permissões.
Permissões sem servidor do Serviço Gerenciado para Apache Spark
As permissões do Serviço Gerenciado para Apache Spark permitem que usuários e
contas de serviço
realizem ações em recursos do
Serviço Gerenciado para Apache Spark. Por exemplo, a permissão dataproc.batches.create
permite criar cargas de trabalho em lote em um projeto.
Você não concede permissões diretamente aos usuários, você atribui a eles papéis do IAM com uma ou mais permissões agrupadas. É possível conceder papéis predefinidos que contêm uma lista de permissões ou criar e conceder papéis personalizados que contêm uma ou mais permissões incluídas no papel personalizado.
As tabelas a seguir listam as permissões básicas necessárias para chamar as APIs Dataproc que criam ou acessam recursos 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, que incluem batches, sessions, sessionTemplates e operations.
Exemplos:
dataproc.batches.createpermite a criação de lotes no projeto que os contém.dataproc.sessions.createpermite a criação de sessões interativas no projeto que as contém.
Permissões de lote
| Método | Permissões necessárias |
|---|---|
| projects.locations.batches.create | dataproc.batches.create 1 |
| projects.locations.batches.delete | dataproc.batches.delete |
| projects.locations.batches.get | dataproc.batches.get |
| projects.locations.batches.list | dataproc.batches.list |
1 O dataproc.batches.create também requer as permissões dataproc.batches.get e
dataproc.operations.get para receber atualizações de status
da ferramenta de linha de comando gcloud.
Permissões de sessão
| Método | Permissões necessárias |
|---|---|
| projects.locations.sessions.create | dataproc.sessions.create 1 |
| projects.locations.sessions.delete | dataproc.sessions.delete |
| projects.locations.sessions.get | dataproc.sessions.get |
| projects.locations.sessions.list | dataproc.sessions.list |
| projects.locations.sessions.terminate | dataproc.sessions.terminate |
1 O dataproc.sessions.create também requer as permissões dataproc.sessions.get e
dataproc.operations.get para receber atualizações de status
da ferramenta de linha de comando gcloud.
Permissões do modelo de sessão
| Método | Permissões necessárias |
|---|---|
| projects.locations.sessionTemplates.create | dataproc.sessionTemplates.create 1 |
| projects.locations.sessionTemplates.delete | dataproc.sessionTemplates.delete |
| projects.locations.sessionTemplates.get | dataproc.sessionTemplates.get |
| projects.locations.sessionTemplates.list | dataproc.sessionTemplates.list |
| projects.locations.sessionTemplates.update | dataproc.sessionTemplates.update |
1 O dataproc.sessionTemplates.create também requer as permissões dataproc.sessionTemplates.get e
dataproc.operations.get para receber atualizações de status
da ferramenta de linha de comando gcloud.
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 1 | dataproc.operations.cancel |
| projects.regions.operations.delete | dataproc.operations.delete |
| projects.regions.operations.getIamPolicy | dataproc.operations.getIamPolicy |
| projects.regions.operations.setIamPolicy | dataproc.operations.setIamPolicy |
1 Para cancelar operações em lote, dataproc.operations.cancel também requer a permissão dataproc.batches.cancel.
Permissões de execução do Serviço Gerenciado para Apache Spark 3.0+
As permissões a seguir se aplicam ao Serviço Gerenciado para Apache Spark 3.0 e
ambientes de execução posteriores.
Permissões de cargas de trabalho
| Método | Permissões necessárias |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.create | dataprocrm.workloads.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.cancel | dataprocrm.workloads.cancel |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.delete | dataprocrm.workloads.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.get | dataprocrm.workloads.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.list | dataprocrm.workloads.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.use | dataprocrm.workloads.use |
Permissões de NodePools
| Método | Permissões necessárias |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.create | dataprocrm.nodePools.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.delete | dataprocrm.nodePools.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.resize | dataprocrm.nodePools.resize |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.deleteNodes | dataprocrm.nodePools.deleteNodes |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.update | dataprocrm.nodePools.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.get | dataprocrm.nodePools.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.list | dataprocrm.nodePools.list |
Permissões de nós
| Método | Permissões necessárias |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.create | dataprocrm.nodes.create |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.delete | dataprocrm.nodes.delete |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.update | dataprocrm.nodes.update |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.heartbeat | dataprocrm.nodes.heartbeat |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.get | dataprocrm.nodes.get |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.list | dataprocrm.nodes.list |
| dataprocrm.v1.dataprocrm.projects.locations.workloads.nodePools.nodes.mintOAuthToken | dataprocrm.nodes.mintOAuthToken |
Permissões de operações
| Método | Permissões necessárias |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Papéis de implantações sem servidor do Serviço Gerenciado para Apache Spark
A tabela a seguir lista os papéis que contêm as permissões necessárias para gerenciar cargas de trabalho e sessões em lote. Os requisitos podem variar de acordo com a versão do ambiente de execução do lote ou da sessão e se o lote ou a sessão está sendo executado com credenciais de conta de serviço ou de usuário final (EUC, na sigla em inglês).
| Versão do ambiente de execução | Papéis do IAM |
|---|---|
pre-3.0 |
Conceda aos usuários os seguintes papéis:
|
3.0+ |
Conceda aos usuários os seguintes papéis:
|
Observações:
Ao enviar uma carga de trabalho em lote ou criar uma sessão interativa com o ambiente de execução
3.0+e as credenciais do usuário final (o padrão 3.0+), as operações do sistema do plano de dados são executadas pelo agente de serviço do nó do gerenciador de recursos do Dataproc. Para mais informações, consulte Conta de serviço do agente de serviço do ambiente de execução 3.0+.Para compatibilidade com versões anteriores, os papéis legados Editor do Dataproc e Leitor do Dataproc podem ser concedidos com ambientes de execução
3.0+em vez dos papéis Editor do Dataproc sem servidor e Leitor do Dataproc sem servidor. Além disso, o papel Worker do Dataproc pode ser concedido em vez do papel Nó do Dataproc sem servidor.Se uma conta de serviço tiver recebido o papel de Editor do projeto, ela vai conter as permissões incluídas no papel de Worker do Dataproc.
Para mais informações, consulte Contas de serviço do Serverless para Apache Spark.
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 saber se um usuário recebeu um papel, siga as instruções em Gerenciar o acesso a projetos, pastas e organizações > Conferir 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.
Pesquisar papéis e permissões
Use as seções 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. |
|
Papéis do projeto
Também é possível definir permissões no nível do projeto usando os papéis de projeto do IAM. A tabela a seguir resume 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 |