O Identity and Access Management (IAM) permite controlar o acesso aos recursos do seu projeto. Este documento se concentra nas permissões do IAM relevantes para implantações sem servidor do Managed Service for Apache Spark e nos papéis do IAM que concedem essas permissões.
Permissões de implantações sem servidor do Managed Service for Apache Spark
As permissões do Managed Service for Apache Spark permitem que usuários e
contas de serviço,
realizem ações em recursos do Managed Service for Apache Spark. Por exemplo, a permissão dataproc.batches.create permite criar cargas de trabalho em lote em um projeto.
Não é possível conceder permissões diretamente aos usuários. Em vez disso, você concede papéis do IAM, que têm uma ou mais permissões agrupadas. É possível conceder papéis predefinidos que contêm uma lista de permissões ou criar e conceder funções personalizadas que contêm uma ou mais permissões incluídas na função personalizada.
As tabelas a seguir listam as permissões básicas necessárias para chamar as APIs (métodos) do Dataproc que criam ou acessam recursos do Managed Service for Apache Spark. As tabelas são organizadas de acordo com as APIs associadas a cada recurso do Managed Service for Apache Spark, que incluem batches, sessions, sessionTemplates e operations.
Exemplos:
dataproc.batches.createpermite a criação de lotes no projeto.dataproc.sessions.createpermite a criação de sessões interativas no projeto.
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 dataproc.batches.create também exige dataproc.batches.get e
dataproc.operations.get permissões 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 dataproc.sessions.create também exige dataproc.sessions.get e
dataproc.operations.get permissões para receber atualizações de status
da ferramenta de linha de comando gcloud.
Permissões de 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 dataproc.sessionTemplates.create também exige dataproc.sessionTemplates.get e
dataproc.operations.get permissões 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 exige
dataproc.batches.cancel permissão.
Permissões de ambiente de execução do Managed Service for Apache Spark 3.0 ou mais recente
As permissões a seguir se aplicam ao Managed Service for Apache Spark 3.0 e ambientes de execução mais recentes.
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 Managed Service for 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 dependendo da versão do ambiente de execução em lote ou 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).
| Versão do ambiente de execução | Papéis 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 credenciais de 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 Resource Manager do Managed Service for Apache Spark. 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 de Editor do Dataproc e Visualizador do Dataproc podem ser concedidos com ambientes de execução
3.0+em vez dos papéis de Editor do Dataproc sem servidor e Visualizador do Dataproc sem servidor. Além disso, o papel de Worker do Dataproc pode ser concedido em vez do papel de 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 Dataproc sem servidor para Apache Spark.
É necessário conceder papéis?
Dependendo da política da sua organização, um papel necessário já pode 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 > Visualizar o acesso atual.
Verificar os papéis concedidos às contas de serviço
Para saber se uma conta de serviço recebeu um papel, consulte Visualizar e gerenciar papéis de conta de serviço do IAM.
Verificar os papéis concedidos em uma conta de serviço
Para saber 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 > Visualizar o acesso atual.
Pesquisar papéis e permissões
Use as seções a seguir para pesquisar papéis e permissões do Managed Service for 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 |