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.
API Server ile yapılan her iletişim şifreli ve doğrulanmış olmalıdır.
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.
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.
API Server'ı yazılımsal olarak korumak yetmez, ağ seviyesinde de görünmez kılmalısınız.
Kube-apiserver yapılandırma dosyanızda şu parametrelerin doğruluğunu kontrol edin:
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.
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.
| Eklenti | Görevi |
|---|---|
| NodeRestriction | Node'ların sadece kendi üzerlerindeki objelere erişmesini sağlar. |
| AlwaysPullImages | İmajların her zaman registry'den doğrulanarak çekilmesini zorunlu kılar. |
| PodSecurity | Tehlikeli (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.