In diesem Dokument wird beschrieben, wie Sie einen Batchjob als Nutzer ohne Root-Berechtigung erstellen und ausführen.
Standardmäßig führt Batch ausführbare Dateien als Root-Nutzer aus. Wenn Sie möchten, dass Batch ausführbare Dateien als Nutzer ohne Root-Berechtigung ausführt, z. B. um eine Anwendung auszuführen, die keine Root-Nutzer zulässt, oder um Sicherheitsanforderungen zu erfüllen, erstellen Sie einen Batchjob, der OS Login verwendet. Wenn Sie OS Login in einem Batchjob aktivieren, konfiguriert OS Login ein Nutzerkonto für Sie auf den VMs, auf denen Ihr Job ausgeführt wird. Alle ausführbaren Dateien im Job werden dann von Ihrem Nutzerkonto auf der VM und nicht vom Root-Nutzer ausgeführt.
Hinweis
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Artikel Erste Schritte mit Batch und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzererfüllen.
Aktivieren Sie die OS Login API, falls noch nicht geschehen, indem Sie den folgenden Befehl ausführen:
gcloud services enable oslogin.googleapis.com
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Ausführen eines Jobs als Nutzer ohne Root-Berechtigung benötigen:
- Batch Job Editor (
roles/batch.jobsEditor) für das Projekt - Dienstkontonutzer (
roles/iam.serviceAccountUser) für das Dienstkonto des Jobs. Standardmäßig ist dies das Standarddienstkonto für Compute Engine. - Compute OS Login (
roles/compute.osLogin) oder Compute OS-Administrator-Login (roles/compute.osAdminLogin) für das Projekt -
Wenn Sie einer anderen Organisation als dem Projekt angehören:
Externer Nutzer von Compute OS-Login (
roles/compute.osLoginExternalUser) für die Organisation des Projekts
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
- Batch Job Editor (
Job erstellen, der als Nutzer ohne Root-Berechtigung ausgeführt wird
So erstellen Sie einen Batchjob, der ausführbare Dateien über Ihr eigenes Nutzerkonto ausführt:
Erstellen Sie mit der Google Cloud CLI oder der REST API einen Job, bei dem das
Feld
runAsNonRoot
auf true im Hauptteil der JSON-Datei gesetzt ist:
"runAsNonRoot": true
Ein Job, der ausführbare Dateien als Nutzer ohne Root-Berechtigung ausführt, hat beispielsweise eine JSON-Konfigurationsdatei, die so ähnlich aussieht:
{
"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"
}
}
Nächste Schritte
- Wenn Sie Probleme beim Erstellen oder Ausführen eines Jobs haben, lesen Sie den Abschnitt zu Fehlerbehebung.
- Jobs und Aufgaben ansehen.
- Weitere Optionen zum Erstellen von Jobs.