Sistem otorisasi Container Service for Kubernetes (ACK) mencakup otorisasi Resource Access Management (RAM) dan otorisasi kontrol akses berbasis peran (RBAC). Anda dapat menggunakan RAM dan RBAC untuk menerapkan kontrol izin yang fleksibel dan bertingkat pada sumber daya cloud serta sumber daya dalam kluster ACK.
Sistem otorisasi
Sistem otorisasi ACK terdiri dari otorisasi RAM dan otorisasi RBAC. Otorisasi RAM digunakan untuk memberikan izin pada sumber daya cloud, sedangkan otorisasi RBAC digunakan untuk memberikan izin pada sumber daya Kubernetes dalam kluster. Gambar berikut mengilustrasikan sistem otorisasi ACK.
Otorisasi RAM: Berdasarkan kebijakan sistem dan kebijakan kustom RAM. Sistem ini digunakan untuk memberikan izin pada operasi API ACK dan layanan Alibaba Cloud lainnya guna mendukung operasi O&M berikut:
Membuat, melihat, meningkatkan, dan menghapus kluster.
Membuat, memodifikasi, dan menskalakan pool node.
Mengelola otorisasi.
Memantau kluster serta mengumpulkan log dan acara.
Otorisasi RBAC: Berdasarkan RBAC Kubernetes. Sistem ini digunakan untuk memberikan izin pada sumber daya Kubernetes dalam kluster ACK guna mendukung operasi O&M. Dalam banyak kasus, Anda dapat menggunakan otorisasi RBAC untuk memberikan izin menambah, menghapus, memodifikasi, dan menanyakan objek sumber daya Kubernetes berikut:
Sumber daya beban kerja: Deployment, StatefulSet, DaemonSet, Job, CronJob, pod, dan ReplicaSet.
Sumber daya jaringan: Service, Ingress, dan NetworkPolicy.
Sumber daya penyimpanan: volume persisten (PV), klaim volume persisten (PVC), dan StorageClass.
Namespace, ConfigMap, dan Secret.
Jenis otorisasi
Jenis otorisasi | Otorisasi Diperlukan | Deskripsi |
Otorisasi RAM |
|
|
Otorisasi RBAC |
| Hanya setelah otorisasi selesai, pengguna RAM atau peran RAM memiliki izin untuk mengelola sumber daya Kubernetes dalam kluster ACK One. |
Otorisasi RAM
Secara default, pengguna atau peran RAM tidak memiliki izin untuk menggunakan API layanan cloud. Sebelum menggunakan pengguna atau peran RAM untuk mengelola sumber daya cloud, Anda harus memberikan izin yang diperlukan. Otorisasi RAM memungkinkan Anda melampirkan kebijakan sistem atau kebijakan kustom ke pengguna atau peran RAM. Untuk informasi lebih lanjut, lihat Gunakan RAM untuk memberikan izin mengakses kluster dan sumber daya cloud.
Skenario
Anda dapat menggunakan label untuk mengklasifikasikan kluster dan mengonfigurasi label sebagai kondisi dalam kebijakan RAM untuk menerapkan kontrol akses granular. Ini memberikan izin berbeda kepada pengguna yang berbeda pada kluster. Untuk informasi lebih lanjut, lihat Gunakan label untuk menerapkan kontrol akses granular.
Ketika menggunakan peran RAM pekerja untuk memberikan izin ke aplikasi tertentu dalam kluster, izin tersebut diberikan ke semua node dalam kluster. Hal ini dapat meningkatkan risiko penyalahgunaan hak istimewa. Untuk mengatasi masalah ini, disarankan menetapkan peran RAM pekerja kustom yang berbeda ke pool node yang berbeda saat membuat pool node. Dengan cara ini, pool node yang berbeda menggunakan peran RAM yang berbeda. Untuk informasi lebih lanjut, lihat Gunakan peran RAM pekerja kustom.
Untuk memastikan akses aman ke layanan cloud lainnya dari aplikasi dalam kluster ACK, Anda dapat menggunakan fitur RAM Roles for Service Accounts (RRSA) untuk melakukan kontrol izin API pada pod. Untuk informasi lebih lanjut, lihat Gunakan RRSA untuk mengotorisasi pod berbeda mengakses layanan cloud berbeda.
Untuk memastikan keamanan node untuk kluster ACK dikelola, Anda dapat secara manual membatasi izin peran RAM pekerja kluster berdasarkan prinsip hak istimewa minimal. Untuk informasi lebih lanjut, lihat Secara manual membatasi izin peran RAM pekerja kluster ACK dikelola.
Otorisasi RBAC
Otorisasi RBAC memungkinkan Anda memberikan izin hanya pada sumber daya Kubernetes dalam kluster. Misalnya, Anda dapat menggunakan otorisasi RBAC untuk memberikan izin kepada pengguna atau peran RAM pada sumber daya seperti izin untuk menanyakan informasi tentang pod atau node dalam kluster. Anda dapat melakukan otorisasi RBAC pada halaman Otorisasi di konsol ACK.
Kubernetes RBAC menyediakan objek sumber daya berikut yang dapat Anda gunakan untuk mengikat peran RBAC ke pengguna atau peran RAM. Kubernetes RBAC hanya mendukung izin allow. Untuk informasi lebih lanjut tentang cara mengonfigurasi ClusterRoles dan Roles, lihat Gunakan peran RBAC kustom untuk membatasi izin pengguna RAM atau peran RAM.
Role: Role mendefinisikan izin dalam namespace tertentu.
RoleBinding: RoleBinding digunakan untuk mengikat Role ke pengguna.
ClusterRole: ClusterRole mendefinisikan izin di seluruh kluster.
ClusterRoleBinding: ClusterRoleBinding digunakan untuk mengikat ClusterRole ke pengguna.
ACK memungkinkan Anda mengikat hanya ClusterRoles kustom ke pengguna atau peran RAM. Anda tidak dapat mengikat Roles kustom ke pengguna atau peran RAM.
Anda dapat menetapkan peran yang telah ditentukan sebelumnya berikut ke pengguna atau peran RAM di konsol ACK. Untuk informasi lebih lanjut, lihat Gunakan RBAC untuk mengelola izin operasi pada sumber daya dalam kluster.
Tabel 1. Peran dan Izin
Peran yang telah ditentukan sebelumnya | Izin RBAC pada sumber daya kluster |
Administrator | Izin baca/tulis penuh RBAC untuk semua sumber daya Kubernetes di semua namespace, serta untuk sumber daya tingkat kluster termasuk node, PV, namespace, dan kuota sumber daya. |
Read-only Administrator | Izin baca-saja RBAC untuk semua sumber daya Kubernetes di semua namespace, serta untuk sumber daya tingkat kluster termasuk node, PV, namespace, dan kuota sumber daya. |
O&M Engineer | Memberikan izin RBAC berikut:
|
Developer | Akses baca/tulis RBAC ke sumber daya Kubernetes yang terlihat di konsol, dibatasi ke semua namespace atau pilihan namespace tertentu. |
Restricted User | Akses baca-saja RBAC ke sumber daya Kubernetes yang terlihat di konsol, dibatasi ke semua namespace atau pilihan namespace tertentu. |
Custom | Izin ditentukan oleh ClusterRole yang Anda pilih. Verifikasi izin yang didefinisikan dalam ClusterRole yang dipilih sebelum memberikannya untuk menghindari memberikan izin yang tidak dimaksudkan kepada Pengguna RAM atau peran. Untuk informasi lebih lanjut tentang izin kustom, lihat Gunakan RBAC kustom untuk membatasi operasi pada sumber daya kluster. Penting Setelah Anda menetapkan peran cluster-admin ke pengguna RAM atau peran RAM, pengguna atau peran tersebut mendapatkan izin yang sama dengan akun Alibaba Cloud tempat mereka berada. Ini memberikan kontrol penuh atas semua sumber daya dalam kluster. Berhati-hatilah ketika Anda menetapkan peran cluster-admin ke pengguna RAM atau peran RAM. |
Untuk mengotorisasi pengguna atau peran RAM mengelola dan memelihara kluster serta aplikasi, Anda perlu melakukan otorisasi RAM dan otorisasi RBAC secara berurutan. Sebelum melakukan otorisasi RBAC, Anda harus menyelesaikan otorisasi RAM. Lihat topik berikut untuk menyelesaikan otorisasi dalam skenario berbeda:
Skenario 1: Berikan izin administrator baca-saja untuk melihat sumber daya kluster
Skenario 2: Berikan insinyur O&M izin untuk mengelola kluster dan aplikasi
Skenario 3: Berikan pengembang izin untuk mengelola kluster dan aplikasi
Skenario 4: Memberikan izin administrator untuk aplikasi di dalam Kluster
Untuk karyawan yang dipisahkan atau individu yang tidak berwenang, ketika Anda menghapus pengguna atau peran RAM mereka, izin RBAC yang mereka miliki dalam file kubeconfig tidak akan dicabut secara otomatis. Oleh karena itu, setelah menghapus pengguna atau peran RAM dari pengguna, Anda harus mencabut file kubeconfig dari pengguna tersebut. Untuk informasi lebih lanjut, lihat Hapus file kubeconfig.