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 ao Serverless para Apache Spark e nos papéis do IAM que concedem essas permissões.
Permissões do Dataproc para o Serverless para Apache Spark
As permissões do Dataproc permitem que usuários e
contas de serviço,
executem ações em recursos do Serverless para Apache Spark. Por exemplo, a dataproc.batches.create
permissão permite criar cargas de trabalho em lote em um projeto.
Você não concede permissões diretamente aos usuários. Em vez disso, você concede papéis do IAM, que já têm uma ou mais permissões incluídas . É 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 (métodos) do Dataproc que criam ou acessam recursos do Serverless para Apache Spark. As tabelas são organizadas de acordo com as APIs associadas a cada
recurso do Serverless para 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 em o projeto.
Permissões de lote
| Método | Permissão exigida |
|---|---|
| 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ão exigida |
|---|---|
| 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ão exigida |
|---|---|
| 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 do ambiente de execução do Serverless para Apache Spark 3.0 e versões mais recentes
As permissões a seguir se aplicam ao Serverless para Apache Spark 3.0 e
ambientes de execução mais recentes.
Permissões de cargas de trabalho
| Método | Permissão exigida |
|---|---|
| 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ão exigida |
|---|---|
| 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ão exigida |
|---|---|
| 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ão exigida |
|---|---|
| dataprocrm.v1.dataprocrm.projects.locations.operations.get | dataprocrm.operations.get |
| dataprocrm.v1.dataprocrm.projects.locations.operations.list | dataprocrm.operations.list |
Requisitos de papéis do Serverless 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 dependendo da 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).
| Versão do ambiente de execução | Papéis IAM |
|---|---|
pre-3.0 |
Conceda aos usuários os seguintes papéis:
|
3.0 e versões mais recentes |
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 um ambiente de execução
3.0+e credenciais de usuário final (o padrão 3.0+), as operações do sistema de plano de dados são executadas pelo agente de serviço do nó do Resource Manager 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 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 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 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.
Consultar papéis e permissões do Dataproc
Use as seções a seguir para consultar papéis e permissões do Dataproc.
| Role | Permissions |
|---|---|
Dataproc Administrator( Full control of Dataproc resources. |
|
Dataproc Editor( Provides the permissions necessary for viewing the resources required to manage Dataproc, including machine types, networks, projects, and zones. 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 Service Agent( Gives Dataproc Service Account access to service accounts, compute resources, storage resources, and kubernetes resources. Includes access to service accounts. |
|
Dataproc Viewer( Provides read-only access to Dataproc resources. Lowest-level resources where you can grant this role:
|
|
Dataproc Worker( Provides worker access to Dataproc resources. Intended for service accounts. |
|
Papéis do projeto
Você também pode definir permissões no nível do projeto usando os papéis do IAM Projeto. 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 |