CodeBlanks Logo Icon CodeBlanks

Verb ve resource

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

terminal
# buraya yaz

Örnek çözüm

terminal
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.

Soru
    resources: ["deployments"]
    ____: ["web"]
Cevap
    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

İleri seviye bölümündeki tüm dersler