Jobs als Nutzer ohne Root-Berechtigung erstellen und ausführen

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

  1. 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.
  2. Aktivieren Sie die OS Login API, falls noch nicht geschehen, indem Sie den folgenden Befehl ausführen:

    gcloud services enable oslogin.googleapis.com
    
  3. 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:

    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.

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