O IAM detalhado do Dataproc é uma funcionalidade que lhe permite conceder autorizações ao nível do cluster, das tarefas, das operações, do modelo de fluxo de trabalho ou da política de dimensionamento automático.
Exemplo: pode conceder a um utilizador a função de leitor de cluster, que lhe permite ver um cluster num projeto, e conceder a outro utilizador a função de editor de tarefas, que lhe permite atualizar e cancelar, bem como ver a tarefa. Para compreender os comandos específicos da CLI gcloud ativados por cada função de IAM granular do Dataproc, consulte o artigo Comandos do SDK ativados pela IAM granular.
Funções e autorizações detalhadas da IAM do Dataproc
O IAM detalhado do Dataproc pode definir as seguintes funções com as seguintes autorizações nos recursos do Dataproc.
Funções de cluster
Função | Autorizaçõ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 |
Cargos
Função | Autorizaçõ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 |
Funções de operação
Função | Autorizaçõ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 |
Funções do modelo de fluxo de trabalho
Função | Autorizaçõ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 |
Funções da política de ajuste de escala automático
Função | Autorizaçõ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 |
Use a IAM detalhada do Dataproc
Esta secção explica como usar o IAM granular do Dataproc para atribuir funções a utilizadores num recurso do Dataproc existente. Para mais informações sobre a atualização e a remoção de funções do Identity and Access Management (IAM), consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Comando gcloud
- Obtenha a política de IAM do recurso
e escreva-a num ficheiro JSON (o resource-type pode ser "clusters", "jobs", "operations", "workflow-templates" ou "autoscaling-policies"):
gcloud dataproc resource-type get-iam-policy resource-id \ --region=region \ --format=json > iam.json
- O conteúdo do ficheiro JSON é 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" }
- Usando um editor de texto, adicione um novo objeto de associação à matriz de associações que define os utilizadores e a função de acesso aos recursos para esses utilizadores. Por exemplo, para conceder a função de leitor (
roles/viewer
) ao utilizadorsean@example.com
, alteraria o exemplo anterior para adicionar um novo objeto de associação (apresentado a negrito no exemplo seguinte). Nota: certifique-se de que devolve o valoretag
que recebeu degcloud dataproc resource-type get-iam-policy
. Consulte a documentação sobre etags.{ "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 associações executando o seguinte comando (resource-type pode ser "clusters", "jobs", "operations", "workflow-templates" ou "autoscaling-policies"):
gcloud dataproc resource-type set-iam-policy resource-name \ --region=region \ --format=json iam.json
- O comando produz a política atualizada:
{ "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 um pedido resource-type ("clusters" or "jobs" or "operations" or "workflowTemplates" or "autoscalingPolicies") getIamPolicy para obter a política
IAM para o recurso.
Exemplo de getIamPolicy do cluster:
GET https://dataproc.googleapis.com/v1/projects/projectName/regions/region/clusters/clusterName:getIamPolicy
- O conteúdo do ficheiro JSON é 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" }
- Usando um editor de texto, crie o seguinte objeto JSON
policy
para incluir a matriz de associações que acabou de receber do serviço Dataproc. Certifique-se de que devolve o valor "etag" que recebeu na resposta getIamPolicy (consulte a documentação etag).
Agora, adicione um novo objeto de associação à matriz de associações que define os utilizadores e a função de acesso ao cluster para esses utilizadores. Por exemplo, para conceder a função de leitor (
roles/viewer
) ao utilizadorsean@example.com
, alteraria o exemplo acima para adicionar um novo objeto de associaçã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 emitindo um pedido
setIamPolicy
.Cluster setIamPolicy Exemplo:
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 JSON tem um aspeto 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" }
Consola
Aceda à página Clusters do Dataproc na Google Cloud consola e, de seguida, clique na caixa à esquerda do nome do cluster para abrir o painel Permissões/Etiquetas (se o painel não for apresentado, clique em MOSTRAR PAINEL DE INFORMAÇÕES na parte superior direita da página). No separador Autorizações, selecione a função Dataproc, adicione um ou mais endereços de contas na caixa Adicionar responsáveis e, de seguida, clique em Adicionar.

Comandos do SDK ativados pela IAM detalhada
Esta secção descreve os comandos gcloud dataproc
ativados nos recursos do Dataproc por cada função de IAM detalhada.
Clusters
Função de 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 |
Empregos
Função de 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
Função de 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
Função de 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 ajuste de escala automático
Função de 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 |
Envie tarefas com a IAM detalhada
Para permitir que um principal (utilizador, grupo ou conta de serviço) envie tarefas para um cluster especificado através do IAM granular do Dataproc, além de conceder a um utilizador uma função de editor num cluster, têm de ser definidas autorizações adicionais ao nível do projeto. Seguem-se os passos a realizar para permitir que um principal envie tarefas num cluster do Dataproc especificado:
- Crie um contentor do Cloud Storage que o cluster possa usar para se ligar ao Cloud Storage.
- Adicione o principal à política ao nível do contentor,
selecionando a função de leitor de objetos de armazenamento para o principal
(consulte
roles/storage.objectViewer
), que inclui as seguintes autorizações:storage.objects.get
storage.objects.list
- Quando criar o cluster, transmita o nome do contentor que acabou de criar
para o cluster através do parâmetro
--bucket
(consultegcloud dataproc clusters create --bucket
). - Após a criação do cluster, defina uma política no cluster que conceda ao principal uma função de editor ou proprietário (consulte o artigo Use o IAM detalhado do Dataproc).
- Crie uma função personalizada do IAM
com as seguintes autorizações:
dataproc.jobs.create
dataproc.jobs.get
- Selecione ou adicione o principal na página Google Cloud consola IAM e, de seguida, selecione a função personalizada para a aplicar ao principal.