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

Contas de serviço do Dataproc

Esta página descreve as contas de serviço e os escopos de acesso da VM e como eles são usados com o Dataproc.

O que são contas de serviço?

Uma conta de serviço é uma conta especial que pode ser usada por serviços e aplicativos em execução em uma instância de máquina virtual (VM) do Compute Engine para interagir com outras APIs do Google Cloud. Os aplicativos podem usar as credenciais da conta de serviço para se autorizar em um conjunto de APIs e realizar ações na VM de acordo com as permissões concedidas à conta de serviço.

Contas de serviço do Dataproc

As contas de serviço a seguir recebem permissões necessárias para executar ações do Dataproc no projeto em que o cluster está localizado.

  • Conta de serviço do agente de serviço do Dataproc: o Dataproc cria essa conta de serviço com o papel agente de serviço do Dataproc em um Dataproc projeto do Google Cloud do usuário. 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. Essa conta de agente de serviço é usada para executar operações do plano de controle do Dataproc, como a criação, atualização e exclusão de VMs de clusters (consulte Agente de serviço Dataproc (identidade do plano de controle)).

    Por padrão, o Dataproc usa o service-[project-number]@dataproc-accounts.iam.gserviceaccount.com como a conta de serviço. Se essa conta de serviço não existir, o Dataproc usará a conta do agente de serviço de APIs do Google, [project-number]@cloudservices.gserviceaccount.com, para operações do plano de controle.

Redes VPC compartilhadas: se o cluster usar uma rede VPC compartilhada, um administrador de VPC compartilhada precisará atribuir às duas contas de serviço acima o papel de Usuário da rede. para o projeto host da VPC compartilhada. Veja mais informações em:

Escopos de acesso à VM do Dataproc

Os escopos de acesso à VM são usados para conceder ou limitar o acesso de instâncias à VM. Eles trabalham em conjunto com a conta de serviço da VM para determinar o acesso à API. Por exemplo, se as VMs de cluster receberem apenas o escopo https://www.googleapis.com/auth/storage-full, os aplicativos em execução nas VMs do cluster poderão chamar as APIs do Cloud Storage, mas não poderão fazer solicitações ao BigQuery, mesmo se a VM conta de serviço que estão executando, recebendo um papel do BigQuery com permissões amplas.

Escopos padrão de VM do Dataproc. Se os escopos não forem especificados quando um cluster for criado (consulte gcloud dataproc cluster create --scopes), as VMs do Dataproc terão o seguinte conjunto padrão de escopos:

https://www.googleapis.com/auth/bigquery
https://www.googleapis.com/auth/bigtable.admin.table
https://www.googleapis.com/auth/bigtable.data
https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.full_control
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write

Se você especificar escopos ao criar um cluster, as VMs de cluster terão os escopos especificadosquanto o seguinte conjunto mínimo de escopos obrigatórios (mesmo que você não os especifique):

https://www.googleapis.com/auth/cloud.useraccounts.readonly
https://www.googleapis.com/auth/devstorage.read_write
https://www.googleapis.com/auth/logging.write

Como criar um cluster com uma conta de serviço de VM gerenciada pelo usuário

Você pode especificar uma conta de serviço de VM ao criar um cluster. O Dataproc não é compatível com a especificação ou alteração da conta de serviço da VM após a criação do cluster.

Por que especificar uma conta de serviço de VM gerenciada pelo usuário? As contas de serviço têm papéis do IAM concedidos a elas. A especificação de uma conta de serviço de VM gerenciada pelo usuário ao criar um cluster do Dataproc permite criar clusters com acesso detalhado e controle de recursos do projeto. O uso de diferentes contas de serviço de VM gerenciadas pelo usuário com diferentes clusters do Dataproc permite configurar clusters com acesso diferente aos recursos do Cloud.

Antes de criar o cluster, crie a conta de serviço no projeto em que o cluster será criado. Conceda à conta de serviço o papel Dataproc Worker e outros papéis que serão necessários para seus jobs, por exemplo, para permitir a leitura e a gravação de dados em e para recursos do Google Cloud, como como BigQuery.

Comando gcloud

Use o comando gcloud clusters create para criar um novo cluster com uma conta de serviço de VM especificada pelo usuário e escopos de acesso da VM.

gcloud dataproc clusters create cluster-name \
    --region=region \
    --service-account=service-account-name@project-id.iam.gserviceaccount.com \
    --scopes=scope[, ...]

API REST

Defina serviceAccount e serviceAccountScopes no objeto GceClusterConfig como parte da solicitação de API clusters.create. para começar.

Console

Atualmente, não é possível definir uma conta de serviço de VM do Dataproc gerenciada pelo usuário no Console do Cloud. Para definir o escopo "cloud-platform" nas VMs do cluster, clique em "Permitir acesso da API a todos os serviços do Google Cloud no mesmo projeto" noAcesso ao projeto da seçãoGerenciar segurança no DataprocCriar um cluster no Console do Cloud.

A seguir