Ce document explique comment créer et exécuter un job par lot en tant qu'utilisateur non racine.
Par défaut, Batch exécute des 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 ce type d'utilisateur ou qui ne répond pas aux exigences de sécurité), créez un job Batch utilisant OS Login. Lorsque vous activez OS Login dans un job par lot, OS Login configure un compte utilisateur pour vous sur les VM sur lesquelles votre tâche s'exécute. Tous les exécutables de la tâche sont ensuite exécutés par votre compte utilisateur sur la VM, et non par l'utilisateur racine.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez la page 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 une tâche 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 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 : Connexion au système d'exploitation Compute en tant qu'utilisateur externe (
roles/compute.osLoginExternalUser
) au sein de l'organisation du projet
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via 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 une tâche par lot 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 une tâche incluant le champ runAsNonRoot
défini sur true
dans le corps principal du fichier JSON:
"runAsNonRoot": true
Par exemple, une tâche qui exécute des exécutables en tant qu'utilisateur non racine possède un fichier de configuration JSON semblable à celui-ci:
{
"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
- Apprenez-en plus sur les options de création de tâches.