Multilocação segura com base na conta de serviço do Dataproc
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A multilocação segura com base na conta de serviço do Dataproc
(chamada "multilocação segura" abaixo) permite compartilhar um cluster com vários
usuários, com um conjunto de usuários mapeados para
contas de serviço quando o cluster é criado. Com a multilocação segura, os usuários
podem enviar cargas de trabalho interativas para o cluster com identidades de usuário isoladas.
Quando um usuário envia um job para o cluster, o job:
é executado como um usuário específico do SO com uma versão específica do Kerberos
acessa recursos do Google Cloud usando as credenciais mapeadas da conta de serviço.
Considerações e limitações
Quando você cria um cluster com a multilocação segura ativada:
Só é possível enviar jobs pela API Jobs do Dataproc.
O cluster está disponível apenas para usuários com contas de serviço mapeadas. Por
exemplo, os usuários não mapeados não podem executar jobs no cluster.
As contas de serviço só podem ser mapeadas para usuários do Google, não para grupos do Google.
O acesso SSH direto ao cluster e aos recursos do Compute Engine, como
a execução de scripts de inicialização em VMs do cluster, é bloqueado. Além disso,
os jobs não podem ser executados com privilégios sudo.
O Kerberos está
ativado e configurado no cluster para proteger a comunicação intracluster.
A autenticação de usuário final pelo Kerberos não é compatível.
Para criar um cluster de multilocação seguro do Dataproc, use a sinalização
--secure-multi-tenancy-user-mapping para especificar uma lista de mapeamentos de usuário para conta de serviço.
Exemplo:
O comando a seguir cria um cluster, com o usuário bob@my-company.com
mapeado para a conta de serviço service-account-for-bob@iam.gserviceaccount.com
e o usuário alice@my-company.com mapeado para a conta de serviço service-account-for-alice@iam.gserviceaccount.com.
Como alternativa, é possível armazenar a lista de mapeamentos de usuário para conta de serviço em um arquivo local ou YAML ou JSON do Cloud Storage. Use a sinalização --identity-config-file para especificar o local do arquivo.
Comando de amostra para criar o cluster usando a sinalização --identity-config-file:
gcloud dataproc clusters create my-cluster \
--identity-config-file=local or "gs://bucket" /path/to/identity-config-file \
--scopes=https://www.googleapis.com/auth/iam \
--service-account=cluster-service-account@iam.gserviceaccount.com \
--region=region \
other args ...
Observações:
Conforme mostrado nos comandos anteriores, o cluster --scopes precisa incluir pelo menos
https://www.googleapis.com/auth/iam, o que é necessário para que a conta de serviço do cluster execute a representação.
A conta de serviço do cluster precisa ter permissões para personificar as
contas de serviço mapeadas para os usuários. Consulte
Permissões da conta de serviço.
Recomendação: use contas de serviço de cluster diferentes para
clusters diferentes, permitindo que cada conta de serviço personifique
apenas um grupo limitado e pretendido de contas de serviço de usuário mapeadas.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-22 UTC."],[[["\u003cp\u003eSecure multi-tenancy in Dataproc allows multiple users to share a cluster with isolated identities, each user mapped to a specific service account.\u003c/p\u003e\n"],["\u003cp\u003eJobs submitted to a secure multi-tenancy cluster run with a unique OS user and Kerberos principal, accessing Google Cloud resources through their mapped service account credentials.\u003c/p\u003e\n"],["\u003cp\u003eCreating a secure multi-tenancy cluster requires specifying user-to-service-account mappings using the \u003ccode\u003e--secure-multi-tenancy-user-mapping\u003c/code\u003e flag or an \u003ccode\u003e--identity-config-file\u003c/code\u003e with a YAML or JSON configuration.\u003c/p\u003e\n"],["\u003cp\u003eSecure multi-tenancy clusters have limitations, such as jobs being submitted only through the Dataproc Jobs API, the inability to use Dataproc Component Gateway, and the blocking of direct SSH access.\u003c/p\u003e\n"],["\u003cp\u003eWhen creating a cluster, the cluster service account must have the necessary permissions to impersonate the service accounts mapped to the users and it is recommended to use different service accounts for different clusters.\u003c/p\u003e\n"]]],[],null,["# Dataproc service account based Secure Multi-tenancy\n(called \"secure multi-tenancy\", below) lets you share a cluster with multiple\nusers, with a set of users mapped to\nservice accounts when the cluster is created. With secure multi-tenancy, users\ncan submit interactive workloads to the cluster with isolated user identities.\n\nWhen a user submits a job to the cluster, the job:\n\n- runs as a specific OS user with a specific Kerberos principal\n\n- accesses Google Cloud resources using the mapped service account credentials\n\nConsiderations and limitations\n------------------------------\n\nWhen you create a cluster with secure multi-tenancy enabled:\n\n- You can submit jobs only through the Dataproc [Jobs API](/dataproc/docs/guides/submit-job).\n\n- The cluster is available only to users with mapped service accounts. For\n example, unmapped users cannot run jobs on the cluster.\n\n- Service accounts can be mapped only to Google users, not Google groups.\n\n- The Dataproc\n [Component Gateway](/dataproc/docs/concepts/accessing/dataproc-gateways)\n is not enabled.\n\n- Direct SSH access to the cluster and Compute Engine features, such\n as the ability to run startup scripts on cluster VMs, are blocked. Also,\n jobs cannot run with `sudo` privileges.\n\n- [Kerberos](/dataproc/docs/concepts/configuring-clusters/security) is\n enabled and configured on the cluster for secure intra-cluster communication.\n End user authentication through Kerberos is not supported.\n\n- Dataproc [Workflows](/dataproc/docs/concepts/workflows/overview)\n are not supported.\n\nCreate a secure multi-tenancy cluster\n-------------------------------------\n\nTo create a Dataproc secure multi-tenancy cluster, use\nthe `--secure-multi-tenancy-user-mapping`\nflag to specify a list of user-to-service-account mappings.\n\n**Example:**\n\nThe following command creates a cluster, with user `bob@my-company.com`\nmapped to service account `service-account-for-bob@iam.gserviceaccount.com`\nand user `alice@my-company.com` mapped to service account `service-account-for-alice@iam.gserviceaccount.com`. \n\n```\ngcloud dataproc clusters create my-cluster \\\n --secure-multi-tenancy-user-mapping=\"bob@my-company.com:service-account-for-bob@iam.gserviceaccount.com,alice@my-company.com:service-account-for-alice@iam.gserviceaccount.com\" \\\n --scopes=https://www.googleapis.com/auth/iam \\\n --service-account=cluster-service-account@iam.gserviceaccount.com \\\n --region=region \\\n other args ...\n```\n\nAlternatively, you can store the list of user-to-service-account mappings in\na local or Cloud Storage YAML or JSON file. Use the\n`--identity-config-file` flag to specify the file location.\n\nSample identity config file: \n\n```\nuser_service_account_mapping:\n bob@my-company.com: service-account-for-bob@iam.gserviceaccount.com\n alice@my-company.com: service-account-for-alice@iam.gserviceaccount.com\n```\n\nSample command to create the cluster using the `--identity-config-file` flag: \n\n```\ngcloud dataproc clusters create my-cluster \\\n --identity-config-file=local or \"gs://\u003cvar translate=\"no\"\u003ebucket\u003c/var\u003e\" /path/to/identity-config-file \\\n --scopes=https://www.googleapis.com/auth/iam \\\n --service-account=cluster-service-account@iam.gserviceaccount.com \\\n --region=region \\\n other args ...\n```\n\n**Notes:**\n\n- As shown in the preceding commands, cluster `--scopes` must include at least\n `https://www.googleapis.com/auth/iam`, which is necessary for the cluster\n service account to perform impersonation.\n\n- The cluster service account must have permissions to impersonate the\n service accounts mapped to the users (see\n [Service account permissions](/iam/docs/service-account-permissions)).\n\n- **Recommendation:** Use different cluster service accounts for\n different clusters to allow each cluster service account to impersonate\n only a limited, intended group of mapped user service accounts."]]