Kontrol Akses Berbasis Peran (RBAC) Kubernetes menggunakan role untuk menentukan sekumpulan izin pada sumber daya kluster. Di Alibaba Cloud Container Compute Service (ACS), Anda dapat membuat Role (bercakupan namespace) atau ClusterRole (berlaku di seluruh kluster) melalui file YAML dengan kubectl atau Konsol ACS. Topik ini menjelaskan cara membuat kedua jenis role tersebut dan menyediakan contoh YAML yang dapat Anda sesuaikan untuk workload Anda.
Role dan ClusterRole
Pilih jenis role berdasarkan cakupan izin yang Anda butuhkan.
| Role | ClusterRole | |
|---|---|---|
| Cakupan | Satu namespace | Seluruh kluster |
| Kasus penggunaan umum | Memberikan akses ke sumber daya dalam satu namespace (misalnya, Pod di default) |
Memberikan akses ke sumber daya berlevel kluster (misalnya, node atau PersistentVolume) atau sumber daya di semua namespace |
| Diaktifkan oleh | RoleBinding | ClusterRoleBinding (atau RoleBinding untuk membatasi cakupannya ke satu namespace) |
Role atau ClusterRole tidak memberikan izin apa pun secara mandiri. Anda harus membuat RoleBinding atau ClusterRoleBinding untuk menyambungkan role tersebut ke RAM user, RAM role, atau akun layanan Kubernetes. Untuk petunjuknya, lihat Berikan izin RBAC kepada RAM user atau RAM role.
Untuk spesifikasi RBAC lengkap, lihat Role dan ClusterRole dalam dokumentasi Kubernetes.
Buat Role
Role menentukan izin yang terbatas pada satu namespace.
File YAML berikut membuat Role bernama test-role di namespace default. Role ini memberikan izin penuh pada Pod di namespace tersebut.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-role
namespace: default
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
Terapkan YAML tersebut ke kluster Anda:
kubectl apply -f role.yaml
Verifikasi bahwa Role telah dibuat:
kubectl get role test-role -n default
Buat ClusterRole
ClusterRole menentukan izin yang berlaku di semua namespace atau untuk sumber daya berlevel kluster.
Buat ClusterRole menggunakan kubectl
File YAML berikut membuat ClusterRole bernama test-clusterrole. Anda dapat menggunakan ClusterRole ini untuk memberikan izin penuh pada Pod dalam suatu namespace.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: test-clusterrole
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
Terapkan YAML tersebut ke kluster Anda:
kubectl apply -f clusterrole.yaml
Verifikasi bahwa ClusterRole telah dibuat:
kubectl get clusterrole test-clusterrole -o yaml
Buat ClusterRole menggunakan Konsol ACS
Langkah-langkah berikut membuat ClusterRole untuk RAM user atau RAM role menggunakan Konsol ACS. Langkah-langkah untuk membuat Role serupa.
-
Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di panel navigasi sebelah kiri, pilih Security > Role.
-
Pada halaman Role, klik tab Cluster Role.
-
Klik Create.
-
Pada panel Create YAML, masukkan konten YAML ClusterRole, lalu klik OK.
Setelah dibuat, ClusterRole baru akan muncul di tab Cluster Role.
Langkah selanjutnya
Role atau ClusterRole tidak berpengaruh sampai Anda mengikatnya ke subjek tertentu. Untuk memberikan role tersebut kepada RAM user atau RAM role, lihat Berikan izin RBAC kepada RAM user atau RAM role.