Özet - RBAC
- Docker & Kubernetes kursu
- İleri seviye
- Ders 48/70
- 5 dk
Role, Binding ve ServiceAccount'u birleştirerek yetki yazarsın.
Özet: RBAC
Bu grupta:
- RBAC varsayılan olarak her şeyi reddeder; izinler toplamsaldır.
- Role (namespace) ve ClusterRole (cluster) izin kümeleridir:
apiGroups,resources,verbs, isteğe bağlıresourceNames. - RoleBinding ve ClusterRoleBinding rolü özneye (User, Group, ServiceAccount) bağlar; RoleBinding + ClusterRole tek namespace'te geçerlidir.
- ServiceAccount pod kimliğidir; uygulamaya özel SA ve en az yetki verilir, gerekmezse belirteç bağlanmaz.
- Alt kaynaklar (
pods/log,pods/exec) ayrı izin ister;"*"'dan kaçınılır.auth can-isınar.
kubectl auth can-i --list --as system:serviceaccount:dev:api -n devUygulama Bağlamayı YAML ile yaz
Bir RoleBinding YAML'ı yaz: adı ayse-pod-okuyucu, namespace'i dev; özne kind: User, name: ayse, apiGroup: rbac.authorization.k8s.io; roleRef kind: Role, name: pod-okuyucu, apiGroup: rbac.authorization.k8s.io.
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: ayse-pod-okuyucu
namespace: dev
subjects:
- kind: User
name: ayse
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-okuyucu
apiGroup: rbac.authorization.k8s.ioBeklenen çıktı
rolebinding.rbac.authorization.k8s.io/ayse-pod-okuyucu created $ kubectl auth can-i list pods -n dev --as ayse yes
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir geliştiriciye yalnızca dev namespace'inde çoğu kaynağı değiştirme izni vermenin en kısa yolu hangisidir?
- dev'de edit ClusterRole'ünü veren bir RoleBinding Doğru cevap
- cluster-admin ClusterRoleBinding
- Her kaynak için ayrı Role
- default ServiceAccount'u paylaşmak
Açıklama: Hazır rolü namespace'e bağlamak yeterlidir.
2 Pod'a belirteç bağlamayı kapat.
spec:
____: false
spec:
automountServiceAccountToken: false
Açıklama: API'ye erişmeyen pod'larda belirteç bağlanmaz.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
Role |
Namespace izinleri |
ClusterRole |
Cluster izinleri |
RoleBinding |
Namespace bağlaması |
ServiceAccount |
Pod kimliği |