irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Kubernetes dünyasında varsayılan ayar şudur: Her Pod, diğer tüm Pod'lar ile herhangi bir kısıtlama olmaksızın konuşabilir. Bu, geliştirme aşamasında kolaylık sağlasa da, üretim (production) ortamında büyük bir güvenlik açığıdır. Eğer bir saldırgan web sunucusu olan bir Pod'u ele geçirirse, ağ üzerinden doğrudan veritabanı Pod'unuza sızabilir.
Network Policies (Ağ Politikaları), Kubernetes üzerindeki Pod trafiğini IP katmanında (L3/L4) kısıtlamanıza olanak tanıyan bir "iç güvenlik duvarı" (firewall) sistemidir.
Network Policy'ler, Pod'ları seçmek için Label (Etiket) mekanizmasını kullanır. Hangi Pod'un hangi Pod'a, hangi port üzerinden erişebileceğini belirlemek için şu iki kavram kullanılır:
Not: Network Policy'lerin çalışması için cluster'ınızda Calico, Cilium veya Weave Net gibi bir Ağ Eklentisinin (CNI Plugin) yüklü olması gerekir.
Diyelim ki bir XenForo forumunuz var. Web sunucusu Pod'unuzun veritabanı (MySQL) Pod'una erişmesi gerekiyor, ancak başka hiçbir Pod'un veritabanına erişmesini istemiyorsunuz.
1. Veritabanı Pod'u İçin Politika Oluşturma:
Bu kural uygulandığında, role=web-server etiketi olmayan herhangi bir Pod (örneğin bir test Pod'u) veritabanına bağlanmaya çalıştığında trafik Kubernetes ağ katmanında reddedilecektir.
En güvenli yöntem, önce her şeyi yasaklayıp sonra sadece ihtiyaç duyulan kapıları açmaktır. Aşağıdaki kural, bulunduğu Namespace içindeki tüm iletişimi keser:
Kubernetes'te güvenlik sadece imaj taraması veya şifre yönetimi değildir; aynı zamanda ağ trafiğinin yönetimidir. Network Policy'ler sayesinde cluster içinde "mikro-segmentasyon" sağlayarak saldırı yüzeyinizi minimuma indirebilirsiniz.
Network Policies (Ağ Politikaları), Kubernetes üzerindeki Pod trafiğini IP katmanında (L3/L4) kısıtlamanıza olanak tanıyan bir "iç güvenlik duvarı" (firewall) sistemidir.
Network Policy Nasıl Çalışır?
Network Policy'ler, Pod'ları seçmek için Label (Etiket) mekanizmasını kullanır. Hangi Pod'un hangi Pod'a, hangi port üzerinden erişebileceğini belirlemek için şu iki kavram kullanılır:
- [] Ingress (Giriş): Pod'a gelen trafiği kontrol eder. [] Egress (Çıkış): Pod'dan dışarı giden trafiği kontrol eder.
Not: Network Policy'lerin çalışması için cluster'ınızda Calico, Cilium veya Weave Net gibi bir Ağ Eklentisinin (CNI Plugin) yüklü olması gerekir.
Örnek Senaryo: Veritabanını Koruma Altına Almak
Diyelim ki bir XenForo forumunuz var. Web sunucusu Pod'unuzun veritabanı (MySQL) Pod'una erişmesi gerekiyor, ancak başka hiçbir Pod'un veritabanına erişmesini istemiyorsunuz.
1. Veritabanı Pod'u İçin Politika Oluşturma:
YAML:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: db-allow-only-web namespace: default spec: podSelector: matchLabels: app: mysql # Bu politika 'app=mysql' etiketli podlara uygulanır policyTypes:
Ingress ingress:
from:
podSelector: matchLabels: role: web-server # Sadece 'role=web-server' olanlar gelebilir ports:
protocol: TCP port: 3306
Bu kural uygulandığında, role=web-server etiketi olmayan herhangi bir Pod (örneğin bir test Pod'u) veritabanına bağlanmaya çalıştığında trafik Kubernetes ağ katmanında reddedilecektir.
Sıfır Güven (Zero Trust) Yaklaşımı: Her Şeyi Yasakla
En güvenli yöntem, önce her şeyi yasaklayıp sonra sadece ihtiyaç duyulan kapıları açmaktır. Aşağıdaki kural, bulunduğu Namespace içindeki tüm iletişimi keser:
YAML:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: default-deny-all spec: podSelector: {} # Tüm podları seç policyTypes:
Ingress
Egress
Network Policy Bileşenleri Tablosu
| Bileşen | Açıklama |
|---|---|
| podSelector | Politikanın uygulanacağı hedef Pod grubu. |
| from/to | Trafiğin kaynağı (ingress) veya hedefi (egress). |
| namespaceSelector | Farklı bir namespace'ten gelen trafiği filtrelemek için kullanılır. |
| ipBlock | Belirli bir IP aralığına (CIDR) izin vermek veya yasaklamak için kullanılır. |
Neden Network Policy Kullanmalısınız?
- [] Yanal Hareketin Engellenmesi: Bir uygulama Pod'u hacklense bile saldırganın ağda ilerlemesi durdurulur. [] İzolasyon: Test ve Production ortamları aynı cluster içindeyse, birbirlerine erişmeleri engellenir.
- Uyumluluk: PCI-DSS veya KVKK gibi standartlar için ağ seviyesinde izolasyon şarttır.
Sonuç
Kubernetes'te güvenlik sadece imaj taraması veya şifre yönetimi değildir; aynı zamanda ağ trafiğinin yönetimidir. Network Policy'ler sayesinde cluster içinde "mikro-segmentasyon" sağlayarak saldırı yüzeyinizi minimuma indirebilirsiniz.