Este documento descreve como criar e executar uma tarefa em lote como um utilizador não principal.
Por predefinição, o Batch executa os runnables como utilizador root. Se quiser que o Batch execute ficheiros executáveis como um utilizador sem acesso root, por exemplo, para executar uma aplicação que não permita utilizadores com acesso root ou para cumprir os requisitos de segurança, crie uma tarefa do Batch que use o início de sessão do SO. Quando ativa o Início de sessão do SO num trabalho em lote, o Início de sessão do SO configura uma conta de utilizador para si nas VMs em que o seu trabalho é executado. Em seguida, todos os executáveis na tarefa são executados pela sua conta de utilizador na VM em vez de pelo utilizador root.
Antes de começar
- Se nunca usou o Batch, reveja o artigo Comece a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e utilizadores.
Se ainda não o fez, ative a API OS Login executando o seguinte comando:
gcloud services enable oslogin.googleapis.com
-
Para receber as autorizações de que precisa para criar e executar uma tarefa como utilizador não raiz, peça ao seu administrador que lhe conceda as seguintes funções de IAM:
-
Editor de tarefas em lote (
roles/batch.jobsEditor
) no projeto -
Utilizador da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço da tarefa, que, por predefinição, é a conta de serviço predefinida do Compute Engine -
Início de sessão do SO do Compute (
roles/compute.osLogin
) ou Início de sessão do SO do Compute para administradores (roles/compute.osAdminLogin
) no projeto -
Se for de uma organização diferente da do projeto:
Utilizador externo do Início de sessão do SO do Compute (
roles/compute.osLoginExternalUser
) na organização do projeto
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
-
Editor de tarefas em lote (
Crie uma tarefa que seja executada como um utilizador não root
Crie uma tarefa em lote que execute ficheiros executáveis através da sua própria conta de utilizador fazendo o seguinte:
Use a CLI Google Cloud ou a API REST para criar uma tarefa que inclua o campo runAsNonRoot
definido como true
no corpo principal do ficheiro JSON:
"runAsNonRoot": true
Por exemplo, uma tarefa que executa ficheiros executáveis como um utilizador não raiz teria um ficheiro de configuração JSON semelhante ao seguinte:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello World! This is task $BATCH_TASK_INDEX executed by $(whoami)."
}
}
]
},
"taskCount": 3,
"runAsNonRoot": true
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
O que se segue?
- Se tiver problemas ao criar ou executar uma tarefa, consulte a secção Resolução de problemas.
- Ver empregos e tarefas.
- Saiba mais sobre as opções de criação de tarefas.