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:
RBAC Kubernetes disertakan dalam Kubernetes, dan memberikan izin terperinci ke 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 Grup Google.
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 Anda tidak dapat memberikan izin kepada pengguna untuk hanya membuat satu CustomResourceDefinition tertentu, atau membatasi pembuatan ke Namespace tertentu atau ke cluster tertentu dalam project. Peran IAM memberikan hak istimewa di semua cluster dalam project, atau semua cluster di semua project turunan jika peran diterapkan di tingkat 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:
- Pengguna Google Cloud
- Akun layanan IAM
- ServiceAccount Kubernetes
- Pengguna Google Workspace
- Google Grup Google Workspace
- Pengguna yang diautentikasi menggunakan sertifikat klien X509
Untuk mempelajari lebih lanjut, lihat Kontrol Akses Berbasis Peran.
IAM
IAM memungkinkan Anda memberikan peran ke akun utama. Peran adalah kumpulan izin, dan saat diberikan kepada akun utama, peran akan mengontrol akses ke satu atau beberapa resource Google Cloud. Anda dapat menggunakan jenis peran berikut:
- 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 salah satu dari berikut:
- Akun pengguna
- Akun layanan
- Google Grup Google Workspace
- Domain Google Workspace
- Domain Cloud Identity
Jenis kebijakan IAM
IAM mendukung jenis kebijakan berikut:
- Kebijakan izin: memberikan peran kepada akun utama. Untuk mengetahui detailnya, lihat Kebijakan izinkan.
- Kebijakan tolak: mencegah akun utama menggunakan izin IAM tertentu, terlepas dari peran yang diberikan kepada akun utama tersebut. Untuk mengetahui detailnya, lihat Kebijakan penolakan.
Gunakan kebijakan tolak untuk membatasi akun utama tertentu agar tidak melakukan tindakan tertentu di project, folder, atau organisasi Anda meskipun kebijakan izin IAM memberikan peran yang berisi izin yang relevan kepada akun utama tersebut.
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 node Anda, bukan akun layanan default Compute Engine. Berikan izin minimum yang diperlukan agar GKE dapat berfungsi kepada akun layanan kustom. Untuk mengetahui petunjuknya, lihat Menggunakan akun layanan IAM dengan hak istimewa terendah.
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, sementara IAM bekerja 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 RBAC Kubernetes.
- Pelajari cara membuat kebijakan IAM untuk GKE.
- Pelajari cara menggunakan Ketentuan IAM untuk load balancer.