İçeriğe Atla
Rehberler · 12 dk okuma · görüntülenme
100%

Kubernetes RBAC: Least Privilege + Break‑Glass Modeli

Cluster-admin bağımlılığı olmadan; rol tasarımı, kimlik entegrasyonu ve time‑boxed acil erişim (break‑glass) için pratik RBAC çerçevesi.

Kubernetes RBAC ilişki şeması ve break-glass anahtarını gösteren kapak görseli

Kubernetes RBAC konusu çoğu kurumda iki uçta yaşanır: ya herkes cluster-admin olur (“incident çıkmasın”) ya da çok katı politikalar yüzünden küçük bir müdahale bile saatler sürer. Sağlıklı model, least privilege’ı korurken incident anında “kilitlenmemeyi” de garanti eder: yani break‑glass.

Bu rehber, sahada çalışan bir RBAC tasarımını üç parçaya böler:

  1. Rol tasarımı (ürün/operasyon ihtiyaçlarına göre)
  2. Kimlik entegrasyonu (gruplar ve sahiplik)
  3. Break‑glass (time‑boxed, denetlenebilir acil erişim)
Kubernetes RBAC ilişki şeması ve break-glass anahtarını gösteren kapak görseli
RBAC’ı “YAML” değil “operasyon davranışı” olarak tasarladığınızda hem güvenlik artar hem incident süresi düşer.

1) Hedef: “Kimin neye ihtiyacı var?” sorusunu netleştir

En çok iş gören rol kümeleri:

  • Read‑only: gözlem ve triage için
  • Namespace operator: deploy/scale/log/pod restart gibi rutin işler için
  • Platform operator: ingress, CNI, storage gibi platform bileşenleri için
  • Security: policy/audit odaklı (genelde write yetkisi sınırlı)
  • Break‑glass: sadece acil durum, süreli

2) Basit bir rol tasarımıyla başla (örnek)

Aşağıdaki örnekler “kopyala‑yapıştır” değil; hangi kapıların açık/kapalı olacağını anlatan bir şablondur.

2.1 Read‑only (namespace içinde)

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: ns-readonly
  namespace: your-namespace
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/log", "services", "endpoints", "configmaps", "events"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["apps"]
    resources: ["deployments", "replicasets", "statefulsets", "daemonsets"]
    verbs: ["get", "list", "watch"]

2.2 Namespace operator (kontrollü write)

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: ns-operator
  namespace: your-namespace
rules:
  - apiGroups: ["apps"]
    resources: ["deployments", "statefulsets"]
    verbs: ["get", "list", "watch", "patch", "update"]
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["get", "list", "watch", "delete"]
  - apiGroups: [""]
    resources: ["pods/exec"]
    verbs: ["create"]

3) Kimlik entegrasyonu: “Kullanıcı” değil “grup” bağla

Sürdürülebilir RBAC için iki kural:

  1. RoleBinding / ClusterRoleBinding ile kullanıcıyı değil grubu bağla
  2. Grup üyeliğini IdP/IAM tarafında yönet (on/off ve audit burada olmalı)

Örnek binding:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: ns-operator-binding
  namespace: your-namespace
subjects:
  - kind: Group
    name: platform:ns-operators
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: ns-operator
  apiGroup: rbac.authorization.k8s.io

4) Break‑glass: Time‑boxed ve denetlenebilir erişim

Break‑glass, “gizli cluster-admin” değildir. Tasarım hedefi:

  • Gerektiğinde erişim açılabilsin
  • Süreli olsun (1–4 saat gibi)
  • Açma/kapama kararı audit edilsin
  • Incident bitince otomatik kapanabilsin

4.1 En pratik model: IdP grubuyla süreli üyelik

Kurumsal sahada en az sürtünmeli model:

  • platform:breakglass diye bir grup tanımlarsın
  • RBAC’ta bu gruba “yüksek ama hedefli” yetki verirsin
  • Incident anında kullanıcıyı bu gruba süreli eklersin (time‑boxed)
  • IdP audit log’ları + Kubernetes audit log’ları birlikte incelenebilir olur

4.2 Break‑glass rolünü “hedefli” tut

Örnek: her şeyi açmak yerine, operasyonun ihtiyacına göre sınırla:

  • kubectl rollout undo / scale gibi müdahaleler
  • ingress/service düzeltmeleri
  • node cordon/drain gibi platform işlemleri (gerekirse)

5) Hızlı doğrulama: “Bu yetkim var mı?”

İki komut, incident anında çok vakit kazandırır:

kubectl auth can-i get pods -n your-namespace
kubectl auth can-i delete pod -n your-namespace

Bu kontrolleri runbook’a koyun; tartışmayı azaltır.

6) Operasyon checklist’i (kısa)

  • RBAC rolleri ürün ekibi ihtiyaçlarına göre tanımlı mı?
  • Exec yetkisi ayrı mı, audit ediliyor mu?
  • Break‑glass aktive etme/kapatma prosedürü yazılı mı?
  • Break‑glass kararı için “kim onaylar?” belli mi?
  • Audit log’lar merkezi yerde mi, saklama süresi yeterli mi?

Sonuç

RBAC, güvenlik ekibinin “kısıt koyma” aracı değil; platformun güvenli çalışma modudur. Least privilege + break‑glass birlikte tasarlanırsa, hem güvenlik artar hem de incident anında ekipler “erişim yok” yüzünden daha büyük zarar üretmez.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

Yeni yazılardan haberdar olun

Haftada bir yeni içerikler ve kaynaklar doğrudan e-postanıza gelsin.

Spam yok. Yalnızca yeni ve önemli içerikler için e-posta gönderilir.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar