Esta página foi traduzida pela API Cloud Translation.
Switch to English

Papéis e funções do Dataproc

Quando você usa o serviço do Dataproc para criar clusters e executar jobs nos clusters, o serviço configura as permissões do Dataproc e os papéis do IAM necessários no projeto para acessar e usar os recursos do Google Cloud de que ele precisa para realizar essas tarefas. No entanto, se fizer um trabalho entre projetos, por exemplo, para acessar dados em outro projeto, você precisará configurar os papéis e as permissões necessários para acessar recursos entre projetos.

Para que você realize um trabalho entre projetos com êxito, este documento lista os princípios diferentes que usam o serviço do Dataproc e os papéis, além das permissões associadas, necessários para que esses princípios acessem e usem os recursos do Google Cloud.

Usuário da API Dataproc (identidade do usuário final)

Exemplo: username@example.com

Este é o usuário final que chama o serviço Dataproc. O usuário final costuma ser um indivíduo, mas também pode ser uma conta de serviço caso o Dataproc seja invocado por meio de um cliente da API ou de outro serviço do Google Cloud, como Compute Engine, Cloud Functions ou Cloud Composer.

Permissões e papéis relacionados:

É bom saber:

  • Os jobs enviados pela API do Dataproc são executados como raiz
  • Os clusters do Dataproc herdam os metadados SSH do Compute Engine em todo o projeto, a menos que sejam explicitamente bloqueados definindo --metadata=block-project-ssh-keys=true ao criar o cluster. Consulte Metadados do cluster.
  • Se você executar um gcloud compute ssh em um cluster do Dataproc para enviar um job por meio da linha de comando, os jobs precisam ser executados com o nome de usuário conectado, mas essa autenticação não é aplicada por padrão na VM
  • Os diretórios de usuários do HDFS são criados para cada usuário SSH no nível do projeto. Esses diretórios HDFS são criados no momento da implantação do cluster, e um novo usuário SSH (pós-implantação) não recebe um diretório HDFS em clusters existentes.

Agente de serviço do Dataproc (identidade do plano de controle)

Exemplo: service-project-number@dataproc-accounts.iam.gserviceaccount.com

O Dataproc cria a conta de serviço com o papel Agente de serviço do Dataproc em um projeto do Google Cloud do usuário do Dataproc. Essa conta de serviço não pode ser substituída por uma conta de serviço especificada pelo usuário quando você cria um cluster. Você não precisa configurar essa conta de serviço, a menos que esteja criando um cluster que use uma rede VPC compartilhada em outro projeto.

Essa conta de serviço é usada para realizar um amplo conjunto de operações do sistema, inclusive:

  • receber e listar operações para confirmar a configuração de recursos, como imagens, firewalls, ações de inicialização do Dataproc e buckets do Cloud Storage
  • criar automaticamente o bucket de preparo do Dataproc caso o bucket de preparo não seja especificado pelo usuário;
  • gravar metadados de configuração do cluster no bucket de preparo;
  • criar recursos do Compute Engine, inclusive instâncias de VM, grupos de instâncias e modelos de instâncias.

Erro relacionado: "A conta de serviço não tem acesso de leitura ou listagem ao recurso".

Permissões e papéis relacionados:

  • Papel: agente de serviço do Dataproc

Conta de serviço de VM do Dataproc (identidade do plano de dados)

Exemplo: project-number-compute@developer.gserviceaccount.com

As VMs do Dataproc são executadas como essa conta de serviço. Os jobs de usuário recebem as permissões dessa conta de serviço. O código do aplicativo é executado nessa conta de serviço nas VMs de worker do Dataproc.

Especifique uma conta de serviço gerenciada pelo usuário usando a sinalização opcional --service-account com o comando gcloud dataproc clusters create ou com o campo GceClusterConfig.serviceAccount como parte de uma solicitação da API clusters.create do Dataproc. Se você não especificar uma conta de serviço gerenciada pelo usuário ao criar um cluster, a conta de serviço padrão do Compute Engine, listada no exemplo acima, será usada.

A conta de serviço da VM precisa ter permissões para:

  • se comunicar com o plano de controle do Dataproc
  • ler e gravar no bucket de preparo do Dataproc.

A conta de serviço da VM também pode precisar de permissões, de acordo com requisitos do job, para:

  • ler e gravar no Cloud Storage, no BigQuery, no Cloud Logging e em outros recursos do Google Cloud

Permissões e papéis relacionados:

Para saber mais