Com o Identity and Access Management (IAM), é possível controlar o acesso aos recursos do projeto. Este documento se concentra nas permissões do IAM relevantes para o 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
Com as permissões do Dataproc, os usuários e as contas de serviço podem executar ações em recursos do sem servidor 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. Em vez disso, você atribui a eles 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 papéis personalizados que contêm uma ou mais permissões incluídas neles.
As tabelas a seguir listam as permissões básicas necessárias para chamar
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, incluindo batches, sessions, sessionTemplates e operations.
Exemplos:
dataproc.batches.createpermite a criação de lotes no projeto que contém.dataproc.sessions.createpermite a criação de sessões interativas no projeto.
Permissões em 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 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 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 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, o dataproc.operations.cancel também precisa da permissão dataproc.batches.cancel.
Permissões de 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õ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 do 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 |
Requisitos de função 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 de tempo de execução da sessão ou do lote e se eles estão sendo executados com uma conta de serviço ou credenciais 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 tempo de execução
3.0+e as credenciais do usuário final (o padrão 3.0 ou mais recente), as operações do sistema do 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 ou mais recente.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 terá 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, uma função obrigatória pode já ter sido concedida.
Verificar as funções concedidas 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 papéis concedidos a contas de serviço
Para saber se uma conta de serviço recebeu um papel, consulte Ver e gerenciar papéis da conta de serviço do IAM.
Verificar 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 acesso a contas de serviço > Ver acesso atual.
Pesquisar papéis e permissões do Dataproc
Use as seções a seguir para pesquisar 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 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 |