Konteyner Orkestrasyonu Güvenliği: Kubernetes API Server'ı Korumak

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Kubernetes cluster'ınızın kalbi kube-apiserver'dır. Tüm kullanıcılar, otomasyon araçları ve cluster bileşenleri (Nodes, Etcd, Scheduler) bu API üzerinden iletişim kurar. Eğer API Server ele geçirilirse, tüm cluster saldırganın kontrolüne geçer. Bu yüzden Kubernetes güvenliği, "kapıyı kilitlemekle" yani API Server'ı zırhlamakla başlar.

1. Kimlik Doğrulama (Authentication) ve TLS​


API Server ile yapılan her iletişim şifreli ve doğrulanmış olmalıdır.

  • [] TLS Şifrelemesi: API Server ile tüm bileşenler arasındaki trafik TLS ile şifrelenmelidir. Sertifikasız (HTTP) erişimlere asla izin vermeyin. [] Anonim Erişimi Kapatın: Varsayılan olarak bazı sürümlerde açık gelebilen anonim istekleri (--anonymous-auth=false) mutlaka devre dışı bırakın.
  • Güçlü Kimlik Doğrulama: Statik şifre dosyaları yerine OIDC (Google, GitHub, Okta gibi) veya mTLS sertifika tabanlı doğrulamaları tercih edin.

2. Yetkilendirme (Authorization): RBAC Kullanımı​


Kimin içeri girebildiği kadar, içeride ne yapabildiği de önemlidir. RBAC (Role-Based Access Control), "En Az Yetki" (Least Privilege) prensibini uygulamak için tek yoldur.

  • [] Geniş Yetkilerden Kaçının: cluster-admin rolünü sadece acil durumlar için saklayın. [] Namespace İzolasyonu: Kullanıcılara sadece kendi çalıştıkları Namespace içinde yetki verin.
  • Default Service Account'ları Kısıtlayın: Pod'ların otomatik olarak API Server'a erişmesini sağlayan varsayılan yetkileri minimumda tutun.

3. Admission Controllers: Kapıdaki Muhafızlar​


Kimlik doğrulama ve yetkilendirmeden geçen bir isteğin içeriği hala tehlikeli olabilir. Admission Controllers, isteği kalıcı olarak kaydedilmeden önce denetleyen veya değiştiren eklentilerdir.

EklentiGörevi
NodeRestrictionNode'ların sadece kendi üzerlerindeki objelere erişmesini sağlar.
AlwaysPullImagesİmajların her zaman registry'den doğrulanarak çekilmesini zorunlu kılar.
PodSecurityTehlikeli (Privileged) podların oluşturulmasını engeller.

4. Ağ Seviyesinde Koruma (Hardening)​


API Server'ı yazılımsal olarak korumak yetmez, ağ seviyesinde de görünmez kılmalısınız.

  • [] Erişimi Kısıtlayın:** API Server'ı (port 6443) internete açmayın. Sadece belirli IP adreslerinden veya bir VPN üzerinden erişime izin verin. [] SSH Erişimini Kapatın:** Node'lara SSH erişimini kapatmak veya çok kısıtlı tutmak, "yandan sızma" (lateral movement) riskini azaltır. [*] Etcd Güvenliği:** API Server'ın verilerini tuttuğu Etcd'yi izole edin. Etcd'ye doğrudan erişen biri, API korumalarını baypas ederek tüm cluster'ı ele geçirebilir.


Önemli Güvenlik Parametreleri​


Kube-apiserver yapılandırma dosyanızda şu parametrelerin doğruluğunu kontrol edin:

Bash:
API Server denetim (audit) loglarını açın

--audit-log-path=/var/log/kubernetes/audit.log
Güvensiz portu (8080) tamamen kapatın

--insecure-port=0
Sadece güçlü TLS şifrelerini kabul edin

--tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,...

Sonuç​


Kubernetes API Server güvenliği bir "ayarla ve unut" işlemi değildir. Düzenli olarak CIS Benchmarks taramaları yapmak ve audit loglarını (denetim kayıtlarını) incelemek hayati önem taşır. Unutmayın; API Server güvenliyse cluster güvenlidir.
 
Geri
Üst