تخطَّ إلى المحتوى

RBAC و ServiceAccounts

RBAC يعني Role-Based Access Control. وظيفته تحديد:

  • من يستطيع الوصول؟
  • إلى أي موارد؟
  • ما العمليات المسموحة؟
الموردمعناه
ServiceAccountهوية يستخدمها Pod
Roleصلاحيات داخل Namespace
ClusterRoleصلاحيات على مستوى Cluster
RoleBindingربط Role بهوية
ClusterRoleBindingربط ClusterRole بهوية
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
subjects:
- kind: ServiceAccount
name: app
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Terminal window
kubectl auth can-i list pods --as=system:serviceaccount:default:app
kubectl auth can-i delete pods --as=system:serviceaccount:default:app

Lab: ServiceAccount محدود

المستوى: مبتدئ الوقت: 35 دقيقة الأدوات: kubectl

الهدف: إنشاء ServiceAccount يستطيع قراءة Pods فقط.

أنشئ ServiceAccount و Role و RoleBinding، ثم استخدم kubectl auth can-i لاختبار الصلاحيات.