In diesem Dokument wird beschrieben, wie Sie einen Batchjob als nicht-root-Nutzer erstellen und ausführen.
Standardmäßig werden ausführbare Dateien in Batch als Root-Nutzer ausgeführt. Wenn Sie möchten, dass Batch ausführbare Dateien als Nicht-Root-Nutzer ausführt, z. B. um eine Anwendung auszuführen, die keine Root-Nutzer zulässt, oder um Sicherheitsanforderungen zu erfüllen, erstellen Sie einen Batch-Job, 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.
Hinweise
- Wenn Sie Batch noch nicht verwendet haben, lesen Sie den Hilfeartikel Batch-Dateien erstellen und ausführen und aktivieren Sie Batch, indem Sie die Voraussetzungen für Projekte und Nutzer erfü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 nicht-root-Nutzer benötigen:
-
Batch-Job-Bearbeiter (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) im Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist -
Compute OS-Anmeldung (
roles/compute.osLogin
) oder Compute OS-Administrator-Anmeldung (roles/compute.osAdminLogin
) für das Projekt -
Wenn Sie zu einer anderen Organisation als der des Projekts gehören:
Externer Nutzer von Compute OS-Log-in (
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-Bearbeiter (
Job erstellen, der als Nutzer ohne Root-Berechtigung ausgeführt wird
So erstellen Sie einen Batch-Job, mit dem ausführbare Dateien über Ihr eigenes Nutzerkonto ausgeführt werden:
Verwenden Sie die Google Cloud CLI oder die REST API, um einen Job zu erstellen, der das Feld runAsNonRoot
enthält, das im Hauptteil der JSON-Datei auf true
festgelegt ist:
"runAsNonRoot": true
Ein Job, bei dem ausführbare Dateien als nicht root-Nutzer ausgeführt werden, hätte beispielsweise eine JSON-Konfigurationsdatei, die in etwa so 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 beim Erstellen oder Ausführen eines Jobs Probleme auftreten, lesen Sie den Hilfeartikel Fehlerbehebung.
- Aufgaben und Jobs ansehen
- Weitere Informationen zu Optionen zum Erstellen von Jobs