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:
-
Batch Job Editor (
roles/batch.jobsEditor
) pada project -
Service Account User (
roles/iam.serviceAccountUser
) pada akun layanan tugas, yang secara default merupakan akun layanan Compute Engine default -
Login Compute OS (
roles/compute.osLogin
) atau Login Admin Compute OS (roles/compute.osAdminLogin
) pada project -
Jika Anda berasal dari organisasi yang berbeda dengan project:
Compute OS Login External User (
roles/compute.osLoginExternalUser
) di organisasi project
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.
-
Batch Job Editor (
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
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Melihat tugas dan tugas.
- Pelajari opsi penciptaan pekerjaan lainnya.