2024-09-20Hünkar Döner

EKS Güvenlik En İyi Pratikleri: Zero Trust Yaklaşımı

SecurityEKSDevSecOpsZero Trust
E

EKS Güvenlik En İyi Pratikleri: Zero Trust Yaklaşımı

Kubernetes, güçlü olduğu kadar karmaşık bir yapıdır ve varsayılan ayarlarıyla (default settings) her zaman en güvenli seçenekleri sunmaz. Amazon EKS, kontrol düzlemini güvenceye alsa da, veri düzlemi ve uygulama güvenliği "Paylaşılan Sorumluluk Modeli" gereği size aittir.

Güvenli bir EKS ortamı için "Zero Trust" (Sıfır Güven) yaklaşımını benimsemelisiniz: "Asla güvenme, her zaman doğrula."

1. Ağ Güvenliği: Kapıları Kapatın

  • Private Endpoint: EKS API sunucusuna erişimi sadece VPN veya belirli IP adresleri ile sınırlandırın. Public erişimi kapatın veya kısıtlayın.
  • Network Policies: Varsayılan olarak Kubernetes'te tüm podlar birbiriyle konuşabilir. Bu risklidir. Calico veya AWS VPC CNI kullanarak Network Policy tanımlayın. Örneğin, "Frontend podları sadece Backend podlarına erişebilir, Veritabanına erişemez" kuralını uygulayın.

2. Kimlik ve Erişim (IAM)

  • IRSA (IAM Roles for Service Accounts): Asla node'lara (EC2) geniş yetkiler vermeyin. Her pod'a sadece ihtiyacı olan (S3 okuma, DynamoDB yazma gibi) IAM rolünü atayın.
  • aws-auth ConfigMap: Kümeye kimlerin erişebileceğini (kubectl) yöneten bu dosyayı dikkatli yapılandırın. Mümkünse EKS Access Entries özelliğine geçiş yapın (daha yeni ve güvenli yöntem).

3. Pod Güvenliği (Pod Security)

  • Pod Security Standards (PSS): Pod Security Policies (PSP) kullanımdan kalktı (deprecated). Artık PSS ve Pod Security Admission denetleyicisi kullanılıyor. Pod'ların "root" yetkisiyle çalışmasını (RunAsRoot) veya host ağına erişmesini engelleyin.
  • Read-Only Filesystem: Konteynerlerin dosya sistemine yazmasını engelleyerek, saldırganların zararlı yazılım indirmesini zorlaştırın.

4. İmaj Güvenliği (Supply Chain Security)

  • Image Scanning: Amazon ECR'a yüklediğiniz her imajı otomatik olarak taratın. Yüksek seviyeli (Critical/High) güvenlik açığı olan imajların deploy edilmesini engelleyin.
  • Minimal İmajlar: Distroless veya Alpine gibi minimal imajlar kullanın. İçinde curl, wget veya shell olmayan imajlar, saldırganların işini zorlaştırır.

5. Gizli Veri Yönetimi (Secrets Management)

  • Şifreleme: Kubernetes Secret'ları etcd içinde base64 olarak saklanır (şifreli değildir!). AWS KMS kullanarak Envelope Encryption'ı aktif edin.
  • Harici Yönetim: Mümkünse Secret'ları Kubernetes içinde değil, AWS Secrets Manager veya HashiCorp Vault gibi harici ve daha güvenli sistemlerde tutun ve podlara dinamik olarak enjekte edin.

6. İzleme ve Denetim (Audit & Monitoring)

  • Audit Logs: EKS Control Plane loglarını (Audit, API, Authenticator) CloudWatch'a gönderin ve saklayın. "Kim, ne zaman, hangi değişikliği yaptı?" sorusunun cevabı buradadır.
  • Runtime Security: Falco gibi araçlar kullanarak, çalışma zamanında (runtime) şüpheli davranışları (örn: bir pod içinde shell açılması) tespit edin.

Güvenlik bir varış noktası değil, bir yolculuktur. Kubernetes Danışmanlığı hizmetimizle, EKS kümelerinizi düzenli olarak güvenlik taramalarından (Pentest) geçirerek risklerinizi minimize edebilirsiniz.