Kontrol akses


Halaman ini menjelaskan perbedaan antara Identity and Access Management (IAM) dan kontrol akses berbasis peran (RBAC) Kubernetes di Google Kubernetes Engine untuk membantu Anda mengelola akses ke resource dalam project Anda.

Halaman ini ditujukan bagi spesialis Keamanan yang mengontrol akses ke izin dan ingin memahami perbedaan dan tumpang-tindih antara IAM dan RBAC. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna umum GKE Enterprise.

Saat membuat Google Cloud project, 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).

Sebelum membaca halaman ini, pastikan Anda memahami hal-hal berikut:

Mekanisme ini memiliki beberapa fungsi tumpang-tindih, tetapi ditargetkan ke jenis resource yang berbeda. Masing-masing dijelaskan di bagian khusus di halaman ini, tetapi secara singkat:

  • RBAC Kubernetes sudah ada di 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, Google Cloud pengguna, 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 Google Cloud resource, termasuk cluster, dan jenis objek dalam cluster. Izin ditetapkan ke akun utama IAM.

    Tidak ada mekanisme untuk memberikan izin bagi 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 membuat hanya 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 salah satu dari:

  • Google Cloud pengguna
  • Akun layanan IAM
  • ServiceAccount Kubernetes
  • Pengguna Google Workspace
  • Grup Google Google Workspace
  • Pengguna yang diautentikasi menggunakan sertifikat klien X509

Untuk mempelajari lebih lanjut, lihat Kontrol Akses Berbasis Peran.

IAM

IAM memungkinkan Anda memberikan peran kepada akun utama. Peran adalah kumpulan izin, dan saat diberikan kepada akun utama, memungkinkan akun utama tersebut mengakses satu atau beberapa Google Cloud resource. Untuk mengetahui informasi selengkapnya tentang prinsipal, peran, dan terminologi IAM lainnya, lihat Ringkasan IAM.

Di GKE, prinsipal dapat berupa salah satu dari berikut:

  • Akun pengguna
  • Akun layanan
  • Grup Google Google Workspace
  • Domain Google Workspace
  • Domain Cloud Identity

Untuk mengetahui informasi selengkapnya tentang penggunaan IAM untuk mengontrol akses di GKE, lihat Membuat kebijakan izin IAM.

Jenis kebijakan IAM

IAM mendukung jenis kebijakan berikut:

  • Kebijakan izin: memberikan peran kepada akun utama. Untuk mengetahui detailnya, lihat Kebijakan izin.
  • Kebijakan penolakan: mencegah akun utama menggunakan izin IAM tertentu, terlepas dari peran yang diberikan kepada akun utama tersebut. Untuk mengetahui detailnya, lihat Kebijakan penolakan.

Gunakan kebijakan penolakan 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.

GKE menggunakan akun layanan IAM yang terlampir ke node Anda untuk menjalankan tugas sistem seperti logging dan pemantauan. Setidaknya, akun layanan node ini harus memiliki peran Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) di project Anda. Secara default, GKE menggunakan akun layanan default Compute Engine, yang otomatis dibuat di project Anda, sebagai akun layanan node.

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 berikutnya