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
- 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
) di project -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser
) di akun layanan tugas, yang secara default adalah akun layanan Compute Engine default -
Compute OS Login (
roles/compute.osLogin
) atau Compute OS Admin Login (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 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.
-
Batch Job Editor (
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
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Lihat tugas dan pekerjaan.
- Pelajari opsi pembuatan tugas lainnya.