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 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 belum melakukannya, aktifkan OS Login API dengan menjalankan perintah berikut:
gcloud services enable oslogin.googleapis.com
-
Untuk mendapatkan izin yang diperlukan untuk membuat dan menjalankan tugas sebagai pengguna non-root, minta administrator Anda untuk memberikan 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 kustom atau peran yang telah ditentukan 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
mencakup
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 berikutnya
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Melihat tugas.
- Pelajari lebih lanjut opsi pembuatan tugas.