Verb ve resource
- Docker & Kubernetes kursu
- İleri seviye
- Ders 47/70
- 4 dk
RBAC verb ve resource kavramlarını öğrenirsin.
Verb ve resource
Kurallardaki verb'ler HTTP isteklerine karşılık gelir:
- Okuma:
get(tek),list(çok),watch(izle) - Yazma:
create,update,patch,delete,deletecollection
Alt kaynaklar ayrı izin ister: pods/log (log okuma), pods/exec (exec), deployments/scale (ölçekleme). resourceNames izni belirli nesnelerle sınırlar:
rules:
- apiGroups: ["apps"]
resources: ["deployments", "deployments/scale"]
resourceNames: ["web"]
verbs: ["get", "patch", "update"]Joker karakterlerden kaçın
"*" tüm kaynakları ya da fiilleri kapsar ve gelecekte eklenecek kaynakları da içerir. En az yetki ilkesi gereği izinler açıkça listelenir. Özellikle Secret okuma, pods/exec ve RBAC nesnelerini değiştirme (escalate, bind) dikkatle verilir:
# kaçın
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
# tercih et
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["get", "list"]Uygulama Yalnızca web'i ölçekleyen rol
Bir Role YAML'ı yaz: adı web-olcekleyici, namespace'i dev; tek kural: apiGroups: ["apps"], resources: ["deployments", "deployments/scale"], resourceNames: ["web"], verbs: ["get", "patch", "update"].
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: web-olcekleyici
namespace: dev
rules:
- apiGroups: ["apps"]
resources: ["deployments", "deployments/scale"]
resourceNames: ["web"]
verbs: ["get", "patch", "update"]Beklenen çıktı
role.rbac.authorization.k8s.io/web-olcekleyici created
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 pods üzerinde get izni olan biri kubectl exec yapabilir mi?
- Yalnızca okuma kabuğu açar
- Hayır; pods/exec alt kaynağında create izni gerekir Doğru cevap
- Evet
- Yalnızca kendi pod'larında
Açıklama: exec ve port-forward güçlü izinlerdir; ayrı verilir.
2 İzni belirli bir nesneyle sınırla.
resources: ["deployments"]
____: ["web"]
resources: ["deployments"]
resourceNames: ["web"]
Açıklama: resourceNames yalnızca adı verilen nesneleri kapsar.
3 Fiilleri eşleştir.
| Kavram | Anlamı |
|---|---|
get |
Tek nesne oku |
list |
Çok nesne oku |
watch |
Değişiklikleri izle |
patch |
Kısmen değiştir |