root ユーザー以外としてジョブを作成して実行する

このドキュメントでは、root ユーザー以外として Batch ジョブを作成して実行する方法について説明します。

デフォルトでは、Batch は root ユーザーとして runnable を実行します。Batch で root 以外のユーザーとして runnable を実行する場合(たとえば、root ユーザーを許可しないアプリケーションを実行する場合や、セキュリティ要件を満たす場合など)、OS Login を使用する Batch ジョブを作成します。Batch ジョブで OS Login を有効にすると、OS Login によってジョブが実行される VM に対するユーザー アカウントが構成されます。その後、ジョブ内のすべての runnable は、root ユーザーではなく、VM 上のユーザー アカウントによって実行されます。

準備

root ユーザー以外として実行されるジョブを作成する

次のようにして、独自のユーザー アカウントから実行可能ファイルを実行する Batch ジョブを作成します。

Google Cloud CLI または REST API を使用して、runAsNonRoot フィールドを含むジョブを作成し、JSON ファイルの本文において、true を設定します。

"runAsNonRoot": true

たとえば、実行可能ファイルを root ユーザー以外として実行するジョブには、次のような JSON 構成ファイルが作成されます。

{
    "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"
    }
}

次のステップ