AWS’de Kubernetes Dağıtımlarının Güvenliğini Sağlama


AWS’de Kubernetes Dağıtımı

Kubernetes, kapsayıcılı uygulamaları uygun ölçekte dağıtmak ve yönetmek için kullanılan açık kaynaklı bir yazılımdır. Kubernet’ler, Amazon EC2 bulut sunucularında kümeleri yönetebilir, bu bulut sunucularında kapsayıcılar çalıştırabilir ve devreye alma, bakım ve ölçeklendirme işlemlerini gerçekleştirebilir.

Kubernetes, aynı araç setini kullanarak kapsayıcılı uygulamaları şirket içinde ve bulutta çalıştırmanıza olanak tanır.

AWS, AWS üzerinde ve şirket içinde Kubernetes’i topluluk destekli hizmet entegrasyonlarıyla çalıştırmak için yönetilen, sertifikalı Kubernetes uyumlu bir hizmet olan Amazon Elastic Kubernetes Service (EKS) sunar.

Kubernetes, açık kaynaklı bir proje olarak kullanılır. Kubernet’ler, operasyonel araçları değiştirmeden kapsayıcılı uygulamaları her yerde çalıştırmanıza olanak tanır. Kubernetes, büyük bir gönüllü topluluğu tarafından düzenli olarak korunur ve geliştirilir.

Büyük Kubernetes topluluğu, uygulama mimarilerini geliştirmek ve genişletmek için kullanılabilen Kubernetes uyumlu yazılımlar oluşturur ve sürdürür.

AWS’de Kubernetes Güvenlik En İyi Uygulamaları

Paylaşılan Sorumluluk Modelini Anlamak

EKS gibi yönetilen hizmetler kullanılırken güvenlik ve uyumluluk paylaşılan sorumluluklar olarak kabul edilir. Genel olarak AWS, bulutun “içindeki” güvenlikten, bulut müşterisi ise bulutun “içindeki” güvenlikten sorumludur.

EKS ile AWS, Kubernetes kontrol düzlemini yönetir. Buna Kubernetes ana sunucusu, etcd veritabanı ve güvenli ve güvenilir hizmetler sağlamak için AWS tarafından gereken diğer altyapı dahildir.

EKS müşterileri, öncelikle kimlik ve erişim yönetimi (IAM), bölme güvenliği, çalışma zamanı güvenliği ve ağ güvenliğinden sorumludur.

AWS, EKS için optimize edilmiş Amazon Makine Görüntülerini (AMI’ler) Kubernetes yama sürümleri ve güvenlik yamaları ile güncel tutmaktan da sorumludur. Yönetilen düğüm gruplarını (MNG’ler) kullanan müşteriler, düğüm gruplarını EKS API, CLI, Cloudformation veya AWS konsolu aracılığıyla en son AMI’ye yükseltmelidir.

Kırmızı/Mavi Takım ve Sızma Testi Uygulaması

Güvenlik personelini iki takıma ayırın: kırmızı takım ve mavi takım. Kırmızı ekip, çeşitli sistemlerdeki güvenlik açıklarını araştırmaya odaklanırken, mavi ekip güvenlik açığı savunmasından sorumludur.

Ayrı bir ekip oluşturmak için yeterli güvenlik personeliniz yoksa Kubernetes açıklarından yararlanma konusunda bilgisi olan bir dış kuruluş tutmayı düşünün.

Kubesploit, testler için kullanabileceğiniz bir penetrasyon testi çerçevesidir. Kubernetes kümelerine yönelik gerçek saldırıları simüle ederek mavi ekibin saldırılara yanıt verme alıştırması yapmasına ve bunların etkinliğini değerlendirmesine olanak tanır. Güvenlik açıklarını ve yanlış yapılandırmaları keşfetmek için kümenize düzenli olarak saldırabilirsiniz.

Denetim ve Günlüğe Kaydetme

Denetim günlüklerinin toplanması ve analiz edilmesi birkaç nedenden dolayı yararlı olabilir.

Günlükler, üretim sorunlarının kök neden analizi için kullanışlıdır. Yeterince günlük toplandığında, anormal davranışları tespit etmek için de kullanılabilirler. EKS, denetim günlüklerini Amazon Cloudwatch hizmetine gönderir.

Denetim günlükleri, EKS tarafından yönetilen Kubernetes denetim düzlemi tarafından yönetilir. Amazon, Kubernetes API sunucusu, denetleyici yöneticisi ve zamanlayıcı dahil olmak üzere kontrol düzlemi günlüklerini etkinleştirmeye/devre dışı bırakmaya yönelik talimatlar sağlar.

Bekleyen Şifreleme

Kubernetes, Luster için üç AWS yerel depolama seçeneği sunar: EBS, EFS ve FSx. Üçü de, hizmet tarafından yönetilen bir anahtar veya bir müşteri ana anahtarı (CMK) kullanarak bekleyen veri şifrelemesi sağlar.

EBS için ağaç içi depolama sürücüsü veya EBS CSI sürücüsü kullanabilirsiniz. Her ikisi de birimi şifrelemek ve bir CMK sağlamak için parametreler içerir.

EFS için EFS CSI sürücüsünü kullanabilirsiniz, ancak EBS’den farklı olarak bu sürücü dinamik yapılandırmayı desteklemez. EFS ile EFS kullanıyorsanız, kalıcı birimler (PV’ler) oluşturmadan önce bekleyen dosya sistemi şifrelemesini sağlamanız ve yapılandırmanız gerekir.

Ağ Politikası

Bir Kubernetes kümesinde, bölmeler arası iletişime varsayılan olarak izin verilir. Bu esneklik geliştirme aşamalarında faydalı olsa da, üretim için güvenli kabul edilmez.

Kubernetes ağ ilkeleri, bölmeler arasındaki ve bölmeler ile harici hizmetler arasındaki ağ trafiğini kısıtlamak için bir mekanizma sağlar. Kubernetes ağ ilkeleri, OSI modelinin 3. ve 4. katmanları için geçerlidir.

Ağ ilkeleri, kaynak ve hedef bölmeleri tanımlamak için bölme seçicileri ve etiketleri kullanır, ancak IP adreslerini, bağlantı noktası numaralarını, protokol numaralarını veya bunların bir kombinasyonunu da içerebilir.

Görüntüleri Güvenlik Açıklarına Karşı Düzenli Olarak Tarayın

Sanal makineler gibi kapsayıcı görüntüleri de savunmasız ikili dosyalar ve uygulama kitaplıkları içerebilir. Tehditlerden kaçınmanın en iyi yolu, görüntüleri otomatik bir tarayıcıyla düzenli olarak taramaktır.

Amazon Elastic Container Registry’de (ECR) depolanan görüntüler, otomatik tetikleyici tarafından veya isteğe bağlı olarak (24 saatte bir) taranabilir. ECR şu anda açık kaynaklı bir görüntü tarama çözümü olan Clair’den yararlanmaktadır.

Görüntü tarandıktan sonra, sonuçlar EventBridge’in ECR olay akışına yazılır. Tarama sonuçlarını ECR konsolunda da görüntüleyebilirsiniz. YÜKSEK veya KRİTİK güvenlik açıklarına sahip resimler silinmeli veya yeniden oluşturulmalıdır. Dağıtılan bir görüntü savunmasız hale geldiğinde, mümkün olan en kısa sürede değiştirilmelidir.

Kod Olarak Politika

Bir politika, davranışı yöneten bir dizi kural olarak düşünülebilir. Politikaları bulmak ve tutarlı bir şekilde Kubernetes kümelerinde uygulamak zor olabilir.

Gereksinimler değiştiği için esnek olmaları da gerekir. Kod olarak politika (PaC) çözümleri, güvenlik, uyumluluk ve gizlilik denetimlerini otomatikleştirerek bilinen kalıcı tehditlerin algılanmasına, önlenmesine ve bunlara yanıt verilmesine yardımcı olabilir. EKS kümelerindeki ilkeleri yapılandırmaya ve yönetmeye yardımcı olabilecek bir dizi üçüncü taraf çözümü mevcuttur.

Çözüm

Bu makalede, Kubernetes dağıtımının temellerini ve bunun AWS’de nasıl güvenli hale getirileceğini açıkladım:

  • Paylaşılan sorumluluk modelini anlamak—EKS gibi yönetilen hizmetler kullanılırken güvenlik ve uyumluluk paylaşılan sorumluluklar olarak kabul edilir.
  • Kırmızı/mavi takım ve penetrasyon testi alıştırması yapın—kırmızı ekip çeşitli sistemlerdeki güvenlik açıklarını araştırmaya odaklanırken, mavi ekip güvenlik açığı savunmasından sorumludur.
  • Denetim ve günlük kaydı— denetim günlüklerinin toplanması ve analiz edilmesi, üretim sorunlarının temel neden analizi için yararlı olabilir.
  • Beklemede şifreleme—Kubernetes, bekleyen veriler için şifreleme sağlayan üç AWS yerel depolama seçeneği sunar.
  • Ağ politikası—ağ ilkeleri, kaynak ve hedef bölmeleri tanımlamak için bölme seçicileri ve etiketleri kullanır.
  • Görüntüleri güvenlik açıklarına karşı düzenli olarak tarayın—container görüntüleri, savunmasız ikili dosyalar ve uygulama kitaplıkları içerebilir. Tehditlerden kaçınmanın en iyi yolu, görüntüleri otomatik bir tarayıcıyla düzenli olarak taramaktır.
  • Kod olarak politika—kod olarak politika çözümleri, güvenlik, uyumluluk ve gizlilik denetimlerini otomatikleştirerek bilinen kalıcı tehditlerin algılanmasına, önlenmesine ve bunlara yanıt verilmesine yardımcı olabilir.

AWS’de Kubernetes dağıtımınızın güvenliğini sağlarken bunun yararlı olacağını umuyorum.



Source link