Questo documento descrive come creare ed eseguire un job batch come utente non root.
Per impostazione predefinita, Batch esegue gli eseguibili come utente root. Se vuoi che Batch esegua elementi eseguibili come utente non root, ad esempio per eseguire un'applicazione che non consente gli utenti root o non soddisfa i requisiti di sicurezza, crea un job batch che utilizzi OS Login. Quando abiliti OS Login in un job batch, OS Login configura un account utente per te sulle VM su cui viene eseguito il tuo job. Tutti gli elementi eseguibili nel job vengono quindi eseguiti dal tuo account utente sulla VM anziché dall'utente root.
Prima di iniziare
- Se non hai mai utilizzato Batch, consulta la Guida introduttiva all'utilizzo di Batch e abilita Batch completando i prerequisiti per progetti e utenti.
Se non lo hai già fatto, abilita l'API OS Login eseguendo questo comando:
gcloud services enable oslogin.googleapis.com
-
Per ottenere le autorizzazioni necessarie per creare ed eseguire un job come utente non root, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Editor job batch (
roles/batch.jobsEditor
) sul progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito -
Compute OS Login (
roles/compute.osLogin
) o Compute OS Admin Login (roles/compute.osAdminLogin
) sul progetto -
Se fai parte di un'organizzazione diversa rispetto al progetto:
Utente esterno di Compute OS Login (
roles/compute.osLoginExternalUser
) nell'organizzazione del progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Editor job batch (
Crea un job eseguito come utente non root
Crea un job batch che esegua eseguibili tramite il tuo account utente seguendo questi passaggi:
Usa Google Cloud CLI o l'API REST per creare un job che includa il campo runAsNonRoot
impostato su true
nel corpo principale del file JSON:
"runAsNonRoot": true
Ad esempio, un job che esegue degli eseguibili come utente non root avrà un file di configurazione JSON simile al seguente:
{
"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"
}
}
Passaggi successivi
- In caso di problemi durante la creazione o l'esecuzione di un job, consulta Risoluzione dei problemi.
- Visualizzare lavori e attività.
- Scopri di più sulle opzioni per la creazione di job.