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 Runnables als eine nicht-Root-Nutzer sein, z. B. um eine Anwendung auszuführen, die keine zulassen oder Sicherheitsanforderungen zu erfüllen – erstellen Sie ein 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 Runnables im Job sind und wird 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 zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Ausführen eines Jobs als nicht-root-Nutzer benötigen:
-
Batch-Job-Editor (
roles/batch.jobsEditor
) für das Projekt -
Dienstkontonutzer (
roles/iam.serviceAccountUser
) für das Dienstkonto des Jobs, das standardmäßig das Compute Engine-Standarddienstkonto ist -
Compute OS Login (
roles/compute.osLogin
) oder Compute OS Admin Login (roles/compute.osAdminLogin
) für das Projekt -
Wenn Sie zu einer anderen Organisation als der des Projekts gehören:
Compute OS Login für externen Nutzer (
roles/compute.osLoginExternalUser
) in der 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 Batch-Job, mit dem ausführbare Dateien über Ihr eigenes Nutzerkonto ausgeführt werden:
Verwenden Sie die Google Cloud CLI oder REST API, um
einen Job erstellen, der
enthält die
Feld „runAsNonRoot
“
im Haupttext der JSON-Datei auf true
festgelegt:
"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 Abschnitt Fehlerbehebung.
- Aufgaben und Jobs ansehen
- Weitere Informationen zu Optionen zum Erstellen von Jobs