Ce document explique comment créer et exécuter un job Batch en tant qu'utilisateur non root.
Par défaut, Batch exécute les exécutables en tant qu'utilisateur racine. Si vous souhaitez que Batch exécute des exécutables en tant qu'utilisateur non racine (par exemple, pour exécuter une application qui n'autorise pas les utilisateurs racine ou pour répondre à des exigences de sécurité), créez un job Batch qui utilise OS Login. Lorsque vous activez OS Login dans un job Batch, OS Login configure un compte utilisateur pour vous sur les VM sur lesquelles votre job s'exécute. Tous les exécutables du job sont ensuite exécutés par votre compte utilisateur sur la VM au lieu de l'être par l'utilisateur racine.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
Si vous ne l'avez pas déjà fait, activez l'API OS Login en exécutant la commande suivante :
gcloud services enable oslogin.googleapis.com
-
Pour obtenir les autorisations nécessaires pour créer et exécuter un job en tant qu'utilisateur non racine, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Éditeur de tâches par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service du job, qui est par défaut le compte de service Compute Engine par défaut -
Connexion au système d'exploitation Compute (
roles/compute.osLogin
) ou Connexion administrateur au système d'exploitation Compute (roles/compute.osAdminLogin
) sur le projet -
Si vous appartenez à une organisation différente de celle du projet :
Utilisateur externe de connexion au système d'exploitation Compute (
roles/compute.osLoginExternalUser
) dans l'organisation du projet
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
-
Éditeur de tâches par lot (
Créer un job qui s'exécute en tant qu'utilisateur non racine
Créez un job Batch qui exécute des exécutables via votre propre compte utilisateur en procédant comme suit :
Utilisez Google Cloud CLI ou l'API REST pour créer un job qui inclut le champ runAsNonRoot
défini sur true
dans le corps principal du fichier JSON :
"runAsNonRoot": true
Par exemple, un job qui exécute des exécutables en tant qu'utilisateur non racine aurait un fichier de configuration JSON semblable à ce qui suit :
{
"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"
}
}
Étapes suivantes
- Si vous rencontrez des problèmes pour créer ou exécuter un job, consultez la section Dépannage.
- Afficher les jobs et les tâches
- Découvrez d'autres options de création de tâches.