以非根用户身份创建和运行作业

本文档介绍如何以 非根用户。

默认情况下,Batch 会以 root 用户身份执行可运行文件。如果您希望 Batch 以非根用户身份执行可运行文件(例如,运行不允许根用户或不符合安全要求的应用),请创建使用 OS Login 的批处理作业。在批处理作业中启用 OS Login 后,OS Login 会在作业运行的虚拟机上为您配置用户账号。作业中的所有可运行对象都是 然后由您的用户账号在虚拟机上执行,而不是由根用户执行。

准备工作

  1. 如果您以前没有使用过 Batch,请参阅 Batch 使用入门 并通过填写 针对项目和用户的前提条件
  2. 如果您尚未启用 OS Login API,请运行以下命令:

    gcloud services enable oslogin.googleapis.com
    
  3. 如需获得以非 root 用户身份创建和运行作业所需的权限,请让管理员向您授予以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建以非 root 用户身份运行的作业

请执行以下操作,创建通过您自己的用户账号运行可执行文件的批处理作业:

使用 Google Cloud CLI 或 REST API 创建作业,其中 JSON 文件正文中包含设置为 truerunAsNonRoot 字段

"runAsNonRoot": true

例如,以非根用户身份运行可执行文件的作业将具有 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"
    }
}

后续步骤