Kontrol akses


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:

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