Membuat dan menjalankan tugas sebagai pengguna non-root

Dokumen ini menjelaskan cara membuat dan menjalankan tugas Batch sebagai pengguna non-root.

Secara default, Batch mengeksekusi runnable sebagai pengguna root. Jika Anda ingin Batch menjalankan runnable sebagai pengguna non-root—misalnya, untuk menjalankan aplikasi yang tidak mengizinkan pengguna root atau memenuhi persyaratan keamanan—buat tugas Batch yang menggunakan OS Login. Jika Anda mengaktifkan Login OS dalam tugas Batch, Login OS akan mengonfigurasi akun pengguna untuk Anda di VM tempat tugas Anda dijalankan. Semua runnable dalam tugas kemudian dieksekusi oleh akun pengguna Anda di VM, bukan oleh pengguna root.

Sebelum memulai

  • Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
  • Jika Anda belum melakukannya, aktifkan OS Login API dengan menjalankan perintah berikut:

    gcloud services enable oslogin.googleapis.com
    
  • Untuk mendapatkan izin yang diperlukan guna membuat dan menjalankan tugas sebagai pengguna non-root, minta administrator untuk memberi Anda peran IAM berikut:

    Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat tugas yang dijalankan sebagai pengguna non-root

Buat tugas Batch yang menjalankan file yang dapat dieksekusi melalui akun pengguna Anda sendiri dengan melakukan hal berikut:

Gunakan Google Cloud CLI atau REST API untuk membuat tugas yang menyertakan kolom runAsNonRoot yang ditetapkan ke true di isi utama file JSON:

"runAsNonRoot": true

Misalnya, tugas yang menjalankan file yang dapat dieksekusi sebagai pengguna non-root akan memiliki file konfigurasi JSON yang mirip dengan yang berikut ini:

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

Langkah selanjutnya