Saat membuat project Google Cloud, Anda adalah satu-satunya pengguna di project tersebut. Secara default, tidak ada pengguna lain yang memiliki akses ke project Anda atau resource-nya, termasuk resource Google Kubernetes Engine (GKE). GKE mendukung berbagai opsi untuk mengelola akses ke resource dalam project Anda dan cluster-nya menggunakan kontrol akses berbasis peran (RBAC).
Mekanisme ini memiliki beberapa fungsi tumpang-tindih, tetapi ditargetkan ke jenis resource yang berbeda. Masing-masing dijelaskan di bagian di bawah, tetapi secara singkat:
Kubernetes RBAC terintegrasi ke dalam Kubernetes, dan memberikan izin terperinci ke berbagai objek dalam cluster Kubernetes. Izin tersedia sebagai objek ClusterRole atau Peran dalam cluster. Objek RoleBinding memberikan Peran kepada pengguna Kubernetes, pengguna Google Cloud, akun layanan IAM, atau Google Grup.
Jika Anda mengutamakan penggunaan GKE, dan memerlukan izin terperinci untuk setiap objek dan operasi dalam cluster Anda, Kubernetes RBAC adalah pilihan terbaik.
IAM mengelola resource Google Cloud, termasuk cluster, dan jenis objek dalam cluster. Izin ditetapkan ke akun utama IAM.
Tidak ada mekanisme untuk memberikan izin untuk objek Kubernetes tertentu dalam IAM. Misalnya, Anda dapat memberikan izin kepada pengguna untuk membuat CustomResourceDefinitions (CRD), tetapi tidak dapat memberikan izin kepada pengguna untuk membuat satu CustomResourceDefinition tertentu saja, atau membatasi pembuatan ke Namespace tertentu atau ke cluster tertentu dalam project. Peran IAM memberikan hak istimewa di seluruh cluster dalam project, atau semua cluster di semua project turunan jika peran tersebut diterapkan pada level folder.
Jika Anda menggunakan beberapa komponen Google Cloud dan tidak perlu mengelola izin khusus Kubernetes yang terperinci, IAM adalah pilihan yang tepat.
RBAC Kubernetes
Kubernetes memiliki dukungan bawaan untuk RBAC yang memungkinkan Anda membuat Peran terperinci, yang ada di dalam cluster Kubernetes. Peran dapat dicakupkan ke objek Kubernetes tertentu atau jenis objek Kubernetes, dan menentukan tindakan mana (disebut kata kerja) yang diberikan Peran dalam kaitannya dengan objek tersebut. RoleBinding juga merupakan objek Kubernetes, dan memberikan Peran kepada pengguna. Pengguna GKE dapat berupa salah satu dari berikut:
- Pengguna Google Cloud
- Akun layanan IAM
- Akun Layanan Kubernetes
- Pengguna Google Workspace
- Google Grup Google Workspace
- Pengguna yang diautentikasi menggunakan sertifikat klien X509
Untuk mempelajari lebih lanjut, baca Kontrol Akses Berbasis Peran.
IAM
IAM memungkinkan Anda menentukan peran dan menetapkannya ke akun utama. Peran adalah kumpulan izin, dan jika ditetapkan ke akun utama, akan mengontrol akses ke satu atau beberapa resource Google Cloud. Peran dibagi ke dalam tiga kategori besar:
- Peran dasar memberikan izin umum yang dibatasi untuk Pemilik, Editor, dan Viewer.
- Peran yang telah ditetapkan, seperti peran yang telah ditentukan sebelumnya untuk GKE, memberikan akses yang lebih terperinci daripada peran dasar dan menangani banyak peran kasus penggunaan.
- Peran khusus memungkinkan Anda membuat kombinasi izin yang unik.
Akun utama dapat berupa:
- Akun pengguna
- Akun layanan
- Google Grup Google Workspace
- Domain Google Workspace
- Domain Cloud Identity
Kebijakan IAM menetapkan sekumpulan izin ke satu atau beberapa akun utama Google Cloud.
Anda juga dapat menggunakan IAM untuk membuat dan mengonfigurasi akun layanan, yaitu akun Google Cloud yang terkait dengan project Anda yang dapat melakukan tugas untuk Anda. Akun layanan diberi peran dan izin dengan cara yang sama seperti pengguna manusia.
Akun layanan juga menyediakan fungsi lainnya. Untuk mempelajari lebih lanjut, baca artikel Membuat Kebijakan IAM.
Rekomendasi IAM
Pertimbangkan untuk menggunakan peran bawaan IAM berikut untuk memfasilitasi skenario umum:
- Kubernetes Engine Cluster Viewer (
roles/container.clusterViewer
): DevOps, engineer, dan developer aplikasi yang hanya perlu terhubung ke cluster. - Kubernetes Engine Cluster Admin (
roles/container.clusterAdmin
): Administrator platform dan operator cluster yang perlu mengelola satu atau beberapa cluster dalam project Google Cloud.
Untuk mengetahui daftar peran IAM bawaan yang tersedia, lihat Peran GKE yang telah ditetapkan.
Selain itu, pertimbangkan untuk membuat akun layanan IAM kustom untuk digunakan oleh node Anda, bukan akun layanan default Compute Engine. Memberi akun layanan kustom izin minimum yang diperlukan agar GKE dapat berfungsi. Untuk mengetahui petunjuknya, lihat Menggunakan akun layanan IAM dengan hak istimewa paling rendah.
Interaksi IAM dengan RBAC Kubernetes
IAM dan Kubernetes RBAC bekerja sama untuk membantu mengelola akses ke cluster Anda. RBAC mengontrol akses di level cluster dan namespace, sedangkan IAM berfungsi di level project. Entity harus memiliki izin yang memadai di kedua level agar dapat berfungsi dengan resource di cluster Anda.
Langkah selanjutnya
- Baca ringkasan keamanan GKE.
- Pelajari cara menggunakan Kubernetes RBAC.
- Pelajari cara membuat kebijakan IAM untuk GKE.
- Pelajari cara menggunakan Kondisi IAM untuk load balancer.