Membuat dan menjalankan tugas sebagai pengguna non-root

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

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

Sebelum memulai

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

    gcloud services enable oslogin.googleapis.com
    
  3. 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 cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

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

Membuat tugas yang berjalan 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 berikut:

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