EKS İçin Network Policy Yönetimi: Podlar Arası Güvenlik Duvarı
EKS İçin Network Policy Yönetimi
Kubernetes'te varsayılan olarak "Flat Network" yapısı vardır. Yani, bir Namespace'teki herhangi bir Pod, başka bir Namespace'teki herhangi bir Pod ile konuşabilir. Bu, geliştirme ortamları için kolaylık olsa da, güvenlik açısından (Zero Trust) kabul edilemez.
Amazon EKS üzerinde podlar arası trafiği kontrol etmek için Network Policy kaynaklarını kullanmalısınız.
Network Policy Nasıl Çalışır?
Network Policy, podlar için bir güvenlik duvarı (Firewall) gibi davranır. Trafiğin nereden gelip (Ingress) nereye gidebileceğini (Egress) etiketler (labels) üzerinden tanımlarsınız.
EKS'te Network Policy Desteği
EKS, varsayılan olarak (VPC CNI ile) Network Policy desteklemezdi. Ancak yakın zamanda AWS, VPC CNI eklentisine bu özelliği getirdi. Alternatif olarak, endüstri standardı Calico da kullanılabilir.
Örnek Senaryo: Frontend -> Backend Erişimi
Backend podlarına sadece Frontend podlarından gelen trafiğe izin verelim, diğerlerini reddedelim.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-only
namespace: my-app
spec:
podSelector:
matchLabels:
app: backend
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
Default Deny (Varsayılan Red)
Güvenliği sıkılaştırmak için önce tüm trafiği reddeden bir "Default Deny" politikası uygulayın, ardından sadece gerekli izinleri (Allow) açın.
Network Policy, Kubernetes Danışmanlığı verdiğimiz müşterilerimizde ilk kontrol ettiğimiz güvenlik katmanıdır.