Questo documento descrive come creare ed eseguire un job Batch come utente non root.
Per impostazione predefinita, Batch esegue i runnable come utente root. Se vuoi che Batch esegua i runnable come utente non root, ad esempio per eseguire un'applicazione che non consente agli utenti root o per soddisfare 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 job. Tutti i runnable 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 sezione Inizia a utilizzare Batch e abilita Batch completando i prerequisiti per progetti e utenti.
Se non l'hai ancora fatto, abilita l'API OS Login eseguendo il seguente 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:
-
Batch Job Editor (
roles/batch.jobsEditor) on the project -
Utente account di servizio (
roles/iam.serviceAccountUser) sul service account del job, che per impostazione predefinita è il service account predefinito di Compute Engine -
Compute OS Login (
roles/compute.osLogin) o Compute OS Admin Login (roles/compute.osAdminLogin) sul progetto -
Se appartieni a un'organizzazione diversa dal progetto:
Utente esterno OS Login Compute (
roles/compute.osLoginExternalUser) sull'organizzazione del progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
-
Batch Job Editor (
Creare un job che viene eseguito come utente non root
Crea un job Batch che esegua gli eseguibili tramite il tuo account utente procedendo nel seguente modo:
Utilizza Google Cloud CLI o l'API REST per
creare un job che
includa il
runAsNonRoot campo
impostato su true nel corpo principale del file JSON:
"runAsNonRoot": true
Ad esempio, un job che esegue gli eseguibili come utente non root avrebbe 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
- Se riscontri problemi durante la creazione o l'esecuzione di un job, consulta la sezione Risoluzione dei problemi.
- Visualizza job e attività.
- Scopri di più sulle opzioni di creazione dei job.