O IAM granular do Dataproc é um recurso que permite conceder permissões no nível do cluster, jobs, operações, modelo de fluxo de trabalho ou da política de escalonamento automático.
Por exemplo: é possível conceder a um usuário um papel de Leitor do cluster, que permite ao usuário visualizar um cluster em um projeto, e conceder a outro usuário um papel de Editor de jobs, que permite que o usuário atualize, cancele e visualize o job. Consulte Comandos do SDK ativados pelo IAM granular para entender os comandos específicos da Google Cloud CLI ativados por cada papel do IAM granular do Dataproc.
Papéis e permissões do IAM granular do Dataproc
O IAM granular do Dataproc pode definir os seguintes papéis com as seguintes permissões em recursos do Dataproc.
Papéis de cluster
Papel | Permissões |
---|---|
Leitor | dataproc.clusters.get |
Editor | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop |
Proprietário | dataproc.clusters.get dataproc.clusters.list dataproc.clusters.delete dataproc.clusters.update dataproc.clusters.use dataproc.clusters.start dataproc.clusters.stop dataproc.clusters.setIamPolicy dataproc.clusters.getIamPolicy |
Papéis de job
Papel | Permissões |
---|---|
Leitor | dataproc.jobs.get |
Editor | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update |
Proprietário | dataproc.jobs.get dataproc.jobs.cancel dataproc.jobs.delete dataproc.jobs.update dataproc.jobs.setIamPolicy dataproc.jobs.getIamPolicy |
Papéis de operação
Papel | Permissões |
---|---|
Leitor | dataproc.operations.get |
Editor | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete |
Proprietário | dataproc.jobs.get dataproc.operations.cancel dataproc.operations.delete dataproc.operations.setIamPolicy dataproc.operations.getIamPolicy |
Papéis de modelo de fluxo de trabalho
Papel | Permissões |
---|---|
Leitor | dataproc.workflowTemplates.get |
Editor | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update |
Proprietário | dataproc.workflowTemplates.get dataproc.workflowTemplates.delete dataproc.workflowTemplates.update dataproc.workflowTemplates.setIamPolicy dataproc.workflowTemplates.getIamPolicy |
Papéis da política de escalonamento automático
Papel | Permissões |
---|---|
Leitor | dataproc.autoscalingPolicies.get |
Editor | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update |
Proprietário | dataproc.autoscalingPolicies.get dataproc.autoscalingPolicies.use dataproc.autoscalingPolicies.delete dataproc.autoscalingPolicies.update dataproc.autoscalingPolicies.setIamPolicy dataproc.autoscalingPolicies.getIamPolicy |
Como usar o IAM granular do Dataproc
Nesta seção, explicamos como usar o IAM granular do Dataproc para atribuir papéis a usuários em um recurso existente do Dataproc. Veja Como conceder, alterar e revogar um acesso para mais informações gerais sobre como atualizar e remover os papéis de gerenciamento de identidade e acesso (IAM).
Comando gcloud
- Acesse a política do IAM do recurso e a grave em um arquivo JSON ( a resource-type pode ser "clusters", "jobs", "operações", "modelos de fluxo de trabalho" ou "políticas de escalonamento automático"):
gcloud dataproc resource-type get-iam-policy resource-id \ --region=region \ --format=json > iam.json
- O conteúdo do arquivo JSON será semelhante ao seguinte:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" }
- Com um editor de texto, adicione um novo objeto de vinculação à matriz bindings. Nela, estão definidos os usuários e o papel de acesso ao recurso deles. Por exemplo, para conceder
o papel de visualizador (
roles/viewer
) ao usuáriosean@example.com
, altere o exemplo acima para adicionar um novo objeto de vinculação (mostrado em negrito, abaixo). Observação: retorne o valoretag
recebido degcloud dataproc resource-type get-iam-policy
. Consulte a documentação de etag.{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-get-iam-policy" }
- Atualize a política do cluster com a nova matriz de vinculações executando o seguinte comando (a resource-type pode ser "clusters", "jobs", "operações", "modelos de fluxo de trabalho" ou "políticas de escalonamento automático"):
gcloud dataproc resource-type set-iam-policy resource-name \ --region=region \ --format=json iam.json
- A política atualizada é exibida:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
API REST
- Emita uma solicitação resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies") getIamPolicy para receber a
política
do IAM para o recurso.
Exemplo de getIamPolicy de cluster:
GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
- O conteúdo do arquivo JSON será semelhante ao seguinte:
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ], "etag": "string" }
- Com um editor de texto, crie o seguinte objeto de política JSON para incluir a matriz de vinculações que você acabou de receber do serviço Dataproc. Certifique-se de retornar o valor "etag" que você recebeu na resposta getIamPolicy
(consulte a
documentação etag).
Agora, adicione um novo
objeto de vinculação
à matriz que define os usuários e o papel de acesso
ao cluster desses usuários. Por exemplo, para conceder
o papel de visualizador (
roles/viewer
) ao usuáriosean@example.com
, altere o exemplo acima para adicionar um novo objeto de vinculação (mostrado em negrito, abaixo).{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } }
- Defina a política atualizada no recurso enviando uma solicitação setIamPolicy.
Exemplo de setIamPolicy de cluster:
POST https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:setIamPolicy Request body
{ "policy": { "version": "", "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "value-from-getIamPolicy" } }
- O conteúdo da resposta do JSON será semelhante ao seguinte:
Resposta
{ "bindings": [ { "role": "roles/editor", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, { "role": "roles/viewer", "members": [ "user:sean@example.com" ] } ], "etag": "string" }
Console
Acesse a página Clusters do Dataproc no console do Google Cloud e clique na caixa à esquerda do nome do cluster para abrir o painel Permissões/Rótulos. Se ele não estiver sendo exibido, clique em MOSTRAR PAINEL DE INFORMAÇÕES no canto superior direito da página. Na guia "Permissões", selecione o papel do "Dataproc", adicione um ou mais endereços de conta na caixa Adicionar principais e clique em Adicionar.
![](https://cloud.google.com/static/dataproc/images/granular-iam-console.png?authuser=2&hl=pt-br)
Comandos do SDK ativados pelo IAM granular
As tabelas abaixo mostram os comandos gcloud dataproc
ativados nos
recursos do Dataproc por cada papel do IAM granular.
Clusters
Papel do IAM | Comando |
---|---|
Leitor | gcloud dataproc clusters describe cluster-name |
Editor | gcloud dataproc clusters describe cluster-name gcloud dataproc clusters list gcloud dataproc clusters delete cluster-name gcloud dataproc clusters diagnose cluster-name gcloud dataproc clusters update cluster-name gcloud beta dataproc clusters start cluster-name gcloud beta dataproc clusters stop cluster-name |
Proprietário | gcloud dataproc clusters describe cluster-name gcloud dataproc clusters list gcloud dataproc clusters delete cluster-name gcloud dataproc clusters diagnose cluster-name gcloud dataproc clusters update cluster-name gcloud beta dataproc clusters start cluster-name gcloud beta dataproc clusters stop cluster-name gcloud dataproc clusters get-iam-policy cluster-name gcloud dataproc clusters set-iam-policy cluster-name |
Jobs
Papel do IAM | Comando |
---|---|
Leitor | gcloud dataproc jobs describe job-id |
Editor | gcloud dataproc jobs delete job-id gcloud dataproc jobs describe job-id gcloud dataproc jobs kill job-id gcloud dataproc jobs update job-id gcloud dataproc jobs wait job-id |
Proprietário | gcloud dataproc jobs delete job-id gcloud dataproc jobs describe job-id gcloud dataproc jobs kill job-id gcloud dataproc jobs update job-id gcloud dataproc jobs wait job-id gcloud dataproc jobs get-iam-policy job-id gcloud dataproc jobs set-iam-policy job-id |
Operações
Papel do IAM | Comando |
---|---|
Leitor | gcloud dataproc operations describe operation-id |
Editor | gcloud dataproc operations delete operation-id gcloud dataproc operations describe operation-id gcloud dataproc operations cancel operation-id |
Proprietário | gcloud dataproc operations delete operation-id gcloud dataproc operations describe operation-id gcloud dataproc operations cancel operation-id gcloud dataproc operations get-iam-policy operation-id gcloud dataproc operations set-iam-policy operation-id |
Modelos de fluxo de trabalho
Papel do IAM | Comando |
---|---|
Leitor | gcloud dataproc workflow-templates describe template-id |
Editor | gcloud dataproc workflow-templates delete template-id gcloud dataproc workflow-templates describe template-id gcloud dataproc workflow-templates remove-job template-id gcloud dataproc workflow-templates run template-id |
Proprietário | gcloud dataproc workflow-templates delete template-id gcloud dataproc workflow-templates describe template-id gcloud dataproc workflow-templates remove-job template-id gcloud dataproc workflow-templates run template-id gcloud dataproc workflow-templates get-iam-policy template-id gcloud dataproc workflow-templates set-iam-policy template-id |
Políticas de Escalonamento Automático
Papel do IAM | Comando |
---|---|
Leitor | gcloud dataproc autoscaling-policies describe policy-id |
Editor | gcloud dataproc autoscaling-policies delete policy-id gcloud dataproc autoscaling-policies describe policy-id gcloud dataproc autoscaling-policies update policy-id gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id |
Proprietário | gcloud dataproc autoscaling-policies delete policy-id gcloud dataproc autoscaling-policies describe policy-id gcloud dataproc autoscaling-policies update policy-id gcloud dataproc clusters create cluster-name --autoscaling-policy policy-id gcloud dataproc autoscaling-policies get-iam-policy policy-id gcloud dataproc autoscaling-policies set-iam-policy policy-id |
Como enviar jobs com IAM granular
Para permitir que um principal (usuário, grupo ou conta de serviço) envie jobs a um cluster especificado usando o IAM granular do Dataproc, além de atribuir a um usuário um papel de Editor em um cluster, é necessário definir outras permissões no nível do projeto. Veja abaixo as etapas a serem executadas para permitir que um principal envie jobs em um cluster especificado do Dataproc:
- Crie um bucket do Cloud Storage que seu cluster possa usar para se conectar ao Cloud Storage.
- Adicione o principal à política no nível do bucket,
selecionando o papel de Leitor de objetos do Storage para ele
Veja
roles/storage.objectViewer
), que inclui as seguintes permissões:storage.objects.get
storage.objects.list
- Ao criar o cluster, transmita o nome do bucket que você acabou de criar
usando o parâmetro
--bucket
. Consulte gcloud dataproc clusters create --bucket. - Depois criar o cluster, defina uma política nele que atribua ao principal um papel de Editor ou Proprietário. Veja Como usar o IAM granular do Dataproc.
- Crie um papel personalizado do IAM
com as seguintes permissões:
dataproc.jobs.create
dataproc.jobs.get
- Selecione ou adicione o principal na página IAM do console do Google Cloud e selecione o papel personalizado que será aplicado a ele.