Secure DevOps olarak da adlandırılan DevSecOps, geleneksel DevOps yaşam döngüsünün farklı aşamalarında güvenliği birleştirerek DevOps uygulamasını derler. DevOps uygulamalarında güvenlik oluşturmanın avantajlarından bazıları şunlardır:
- Güvenlik tehditlerine görünürlük sağlayarak ve güvenlik açıklarının dağıtılan ortamlara ulaşmasını önleyerek uygulamalarınızı ve sistemlerinizi daha güvenli hale getirme
- Geliştirme ve operasyon ekiplerinizle güvenlik farkındalığını artırma
- Otomatik güvenlik süreçlerini yazılım geliştirme yaşam döngünüze ekleme
- Geliştirme ve tasarım aşamalarının başlarında güvenlik sorunları bularak düzeltme maliyetini azaltma
Azure Kubernetes Service'e (AKS) DevSecOps uygulandığında, farklı kuruluş rollerinin güvenliği uygulamak için dikkate alınması gereken farklı noktaları olabilir. Bu farklı kuruluş rollerine örnek olarak şunlar verilebilir:
- AKS üzerinde çalışan güvenli uygulamalar oluşturan geliştiriciler
- Güvenli AKS altyapısı oluşturan Bulut Mühendisleri
- Kümeleri yönetebilen veya güvenlik sorunlarını izleyebilen çeşitli İşletim ekipleri
Bu makale, güvenlik denetimlerini ve en iyi güvenlik uygulamalarını eklemeye yönelik önemli noktalar ve önerilerle birlikte farklı DevOps yaşam döngüsü aşamalarına ayrılmıştır. Bu kılavuz, kullanılabilir olduğu durumlarda kullanımı kolay yerleşik araçları tercih ederek sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatlarına dahil etmek için yaygın süreçler ve araçlar içerir.
Bu makalenin önkoşulu olarak DevOps ve GitOps kullanarak AKS'de uygulama derleme ve dağıtma makalesini gözden geçirmenizi öneririz.
İşlem akışı
Bu mimarinin bir Visio dosyasını indirin.
Not
Bu makalede AKS ve GitHub'a başvurulsa da, bu öneriler herhangi bir kapsayıcı düzenlemesi veya CI/CD platformu için geçerlidir. Uygulama ayrıntıları farklılık gösterse de, her aşamada bahsedilen kavramların ve uygulamaların çoğu hala ilgili ve uygulanabilir.
- Microsoft Entra Id , GitHub için kimlik sağlayıcısı olarak yapılandırılır. Ek kimlik doğrulaması güvenliği sağlamaya yardımcı olmak için çok faktörlü kimlik doğrulamasını (MFA) yapılandırın.
- Geliştiriciler, güvenlik açıklarına karşı kodlarını proaktif olarak analiz etmek için güvenlik uzantıları etkinleştirilmiş visual studio code veya Visual Studio kullanır.
- Geliştiriciler uygulama kodunu şirkete ait ve yönetilen bir GitHub Enterprise deposuna işler.
- GitHub Enterprise, GitHub Gelişmiş Güvenlik aracılığıyla otomatik güvenlik ve bağımlılık taramayı tümleştirir.
- Çekme istekleri, GitHub Actions aracılığıyla sürekli tümleştirme (CI) derlemelerini ve otomatik test işlemlerini tetikler.
- GitHub Actions aracılığıyla CI derleme iş akışı, Azure Container Registry'de depolanan bir Docker kapsayıcı görüntüsü oluşturur.
- GitHub Actions'taki sürekli teslim (CD) iş akışının bir parçası olarak üretim gibi belirli ortamlara dağıtımlar için el ile onaylar sunabilirsiniz.
- GitHub Actions, AKS'ye CD'yi etkinleştirir. Uygulama kaynak ve yapılandırma dosyalarınızdaki gizli dizileri, kimlik bilgilerini ve diğer hassas bilgileri algılamak için GitHub Gelişmiş Güvenlik'i kullanın.
- Microsoft Defender, güvenlik açıkları için Azure Container Registry, AKS kümesi ve Azure Key Vault'u taramak için kullanılır.
- Kapsayıcılar için Microsoft Defender, kapsayıcı görüntüsünü Container Registry'ye yükledikten sonra bilinen güvenlik açıklarına karşı tarar.
- Aks ortamınızda taramalar yapmak ve AKS kümeleriniz için çalışma zamanı tehdit koruması sağlamak üzere Kapsayıcılar için Defender'ı da kullanabilirsiniz.
- Key Vault için Microsoft Defender, anahtar kasası hesaplarına erişmeye yönelik zararlı ve olağan dışı şüpheli girişimleri algılar.
- Azure İlkesi, ilke uyumluluğu ve zorlaması için Container Registry ve Azure Kubernetes Service'e (AKS) uygulanabilir. Container Registry ve AKS için yaygın güvenlik ilkeleri, hızlı etkinleştirme için yerleşik olarak bulunur.
- Azure Key Vault , gizli dizileri ve kimlik bilgilerini çalışma zamanında bir uygulamaya güvenli bir şekilde eklemek ve hassas bilgileri geliştiricilerden ayırmak için kullanılır.
- AKS ağ ilkesi altyapısı, Kubernetes ağ ilkeleri kullanılarak uygulama podları arasındaki trafiğin güvenliğini sağlamaya yardımcı olacak şekilde yapılandırılır.
- AKS kümesinin sürekli izlenmesi, performans ölçümlerini almak ve uygulama ile güvenlik günlüklerini analiz etmek için Azure İzleyici ve Kapsayıcı içgörüleri kullanılarak ayarlanabilir.
- Kapsayıcı içgörüleri performans ölçümlerini, uygulama ve küme günlüklerini alır.
- Tanılama ve uygulama günlükleri, günlük sorgularını çalıştırmak için bir Azure Log Analytics çalışma alanına çekilir.
- Bir güvenlik bilgileri ve olay yönetimi (SIEM) çözümü olan Microsoft Sentinel, aks kümesi günlüklerini tanımlı desenlere ve kurallara göre güvenlik tehditleri için almak ve daha fazla analiz etmek için kullanılabilir.
- Web uygulamaları ve hizmetleri için sızma testi yapmak için Zed Saldırı Ara Sunucusu (ZAP) (ZAP) gibi açık kaynak araçlar kullanılabilir.
- Bulut için Defender'de kullanılabilen bir hizmet olan DevOps için Defender, güvenlik ekiplerini GitHub ve Azure DevOps gibi çok işlem hattılı ortamlarda DevOps güvenliğini yönetmeye teşvik eder.
Ekip üyelerine genel bakış ve sorumluluklar
Endişelerin ayrımı olarak Kubernetes tabanlı çözüm dağıtımlarında DevSecOps'un karmaşıklığını yönetmeyi göz önünde bulundurun. Kurumsal ortamda hangi ekip dağıtımın her yönüyle ilgilenmelidir? Bir ekip, hedeflerine en iyi şekilde ulaşmak için hangi araçları ve süreçleri devreye almalıdır? Bu bölümde geliştiricilerin, uygulama operatörlerinin (site güvenilirliği mühendisleri), küme operatörlerinin ve güvenlik ekiplerinin ortak rollerinin üzerinden geçeceğiz.
Geliştiriciler
Geliştiriciler uygulama kodunu yazmakla sorumludur. Ayrıca, kodlarını belirlenen depoya işlemek de onların sorumluluğundadır. Geliştiricilerin önemli sorumluluklarından biri, kodlarının istenen şekilde çalıştığından ve uygulamanın geri kalanıyla sorunsuz bir şekilde tümleştirdiğinden emin olmak için otomatik test için betikler yazma ve çalıştırmayı da içerir. Ayrıca, otomasyon işlem hattının bir parçası olarak kapsayıcı görüntülerinin oluşturulmasını tanımlar ve betik oluştururlar.
Uygulama işleçleri (site güvenilirliği mühendisleri)
Kapsayıcıları ve Kubernetes'i kullanarak bulutta uygulama oluşturmak, uygulama geliştirme, dağıtım ve ölçeklenebilirliği basitleştirebilir. Ancak bu geliştirme yaklaşımları, yönetimi karmaşık hale getiren ve giderek daha fazla dağıtılan ortamlar da oluşturur. Site güvenilirlik mühendisleri, büyük yazılım sistemlerinin gözetimini otomatikleştirmek için çözümler oluşturur. Geliştirme ve küme operatörü ekipleri arasında bir köprü görevi görür ve hizmet düzeyi hedefleri ile hata bütçelerinin oluşturulmasına ve izlenmesine yardımcı olur. Bu şekilde uygulama dağıtımlarını yönetmeye yardımcı olur ve genellikle Kubernetes bildirim (YAML) dosyaları yazar.
Küme işleçleri
Küme operatörleri, küme altyapısını yapılandırmak ve yönetmekle sorumludur. Kümelerini sağlamak ve korumak için genellikle kod olarak altyapı (IaC) en iyi yöntemlerini ve GitOps gibi çerçeveleri kullanırlar. Genel küme durumunu izlemek için Azure İzleyici Kapsayıcı içgörüleri ve Prometheus/Grafana gibi çeşitli izleme araçlarını kullanır. Bunlar, kümede düzeltme eki uygulama, küme yükseltmeleri, izinler ve rol tabanlı erişim denetiminden sorumludur. DevSecOps ekiplerinde kümelerin ekibin güvenlik gereksinimlerini karşıladığından emin olur ve bu standartları oluşturmak için güvenlik ekibiyle birlikte çalışırlar.
Güvenlik ekibi
Güvenlik ekibi, güvenlik standartları geliştirmek ve bunları zorunlu tutmaktan sorumludur. Bazı ekipler, kümeleri barındıran aboneliklerde ve kaynak gruplarında uygulanan Azure İlkesi oluşturmak ve seçmekle sorumlu olabilir. Güvenlik sorunlarını izler ve diğer ekiplerle birlikte DevSecOps işleminin her adımında güvenliğin ön plana çıkarılmasını sağlar.
DevSecOps yaşam döngüsü aşamaları
Güvenlik denetimleri, yazılım geliştirme yaşam döngüsünün (SDLC) her aşamasında uygulanır. Bu uygulama, DevSecOps stratejisinin ve sola kaydırma yaklaşımının önemli bir parçasıdır.
Bu mimarinin bir Visio dosyasını indirin.
Plan aşaması
Plan aşaması genellikle en az otomasyona sahiptir, ancak sonraki DevOps yaşam döngüsü aşamalarını önemli ölçüde etkileyen önemli güvenlik etkileri vardır. Bu aşama güvenlik, geliştirme ve operasyon ekipleri arasında işbirliği içerir. Güvenlik paydaşlarının bu tasarım ve planlama aşamasına dahil edilmesi, güvenlik gereksinimlerini ve güvenlik sorunlarının uygun şekilde hesaba katılmasını veya azaltılmasını sağlar.
En İyi Uygulama – Daha güvenli bir uygulama platformu tasarlama
Aks tarafından barındırılan daha güvenli bir platform oluşturmak, platformun kendisinden başlayarak her katmanda sistemde güvenliğin yerleşik olmasını sağlamaya yardımcı olan önemli bir adımdır. Platform hem kümenin içindeki bileşenleri (çalışma zamanı güvenliği ve ilke aracıları gibi) hem de AKS dışında olan bileşenleri (ağ güvenlik duvarları ve kapsayıcı kayıt defterleri gibi) içerebilir. Daha fazla bilgi için bkz . Güvenlik, kimlik ve ağ topolojisi gibi kritik tasarım alanlarını içeren AKS Giriş bölgesi hızlandırıcısı.
En İyi Uygulama – Sürecinizde tehdit modellemesi oluşturma
- Tehdit modellemesi genellikle güvenlik ve geliştirme ekiplerini içeren el ile gerçekleştirilen bir etkinliktir. Bir sistemdeki tehditleri modellemek ve bulmak için kullanılır, böylece güvenlik açıkları kod geliştirme veya sistemde yapılan değişikliklerden önce giderilebilir. Tehdit modelleme, önemli bir yazılım değişikliği, çözüm mimari değişikliği veya güvenlik olayları gibi olaylar tarafından tetiklenen farklı zamanlarda gerçekleşebilir.
- STRIDE tehdit modelini kullanmanızı öneririz. Bu metodoloji bir veri akışı diyagramıyla başlar ve ekiplerin riski tanımlamasını, azaltmasını ve doğrulamasını sağlamak için STRIDE mnemonic (Kimlik Sahtekarlığı, Kurcalama, Bilgilerin Açığa Çıkması, İnkar Etme, Hizmet Reddi ve Ayrıcalıkların Yükseltilmesi) tehdit kategorilerini kullanır. Ayrıca sistem bileşenlerini, veri akışlarını ve güvenlik sınırlarını not etmeye ve görselleştirmeye yönelik bir modelleme aracı içerir. SDLC süreçlerinizde tehdit modellemesi oluşturmak, güncelleştirilmiş tehdit modellerini korumak için yeni süreçler ve daha fazla çalışma sunar. Ancak güvenliğin erken gerçekleşmesine yardımcı olur ve bu da sonraki SDLC aşamalarında bulunan güvenlik sorunlarıyla ilgilenmenin olası maliyetini azaltmaya yardımcı olur.
En İyi Uygulama – Azure Well Architect Framework (WAF) Uygulama
- Bulutta yerel ortamlar için geçerli olduğu gibi kimlik yönetimi, uygulama güvenliği, altyapı koruması, tarih güvenliği ve DevOps gibi konularda rehberlik sağlayan WAF güvenlik sütunu en iyi uygulamalarını uygulayın.
- DevSecOps ve üretim ortamlarınızın izlenmesi için geçerli olduğu gibi WAF operasyonel en iyi yöntemlerini uygulayın.
Geliştirme aşaması
"Sola kaydırma" DevSecOps zihniyetinin önemli bir kiracısı. Bu işlem, kod bir depoya işlenmeden ve işlem hattı aracılığıyla dağıtılmadan önce başlar. Güvenli kodlama en iyi yöntemlerini benimsemek ve geliştirme aşamasında kod analizi için IDE araçlarını ve eklentilerini kullanmak, düzeltmeleri daha kolay olduğunda geliştirme yaşam döngüsünün başlarındaki güvenlik sorunlarını gidermeye yardımcı olabilir.
En İyi Uygulama – Güvenli kodlama standartlarını zorunlu kılma
- Yerleşik güvenli kodlama en iyi yöntemlerini ve denetim listelerini kullanarak kodunuzu ekleme ve güvenli olmayan tasarım gibi yaygın güvenlik açıklarından korumaya yardımcı olabilirsiniz. OWASP temeli, kod yazarken benimsemeniz gereken endüstri standardı güvenli kodlama önerileri yayımlar. Bu yönergeler özellikle genel kullanıma yönelik web uygulamaları veya hizmetleri geliştirirken önemlidir.
- Genel güvenlik en iyi yöntemlerine ek olarak, Java ve .NET gibi belirli programlama dili çalışma zamanlarınız için güvenli kodlama uygulamalarına da bakmanız gerekir.
- Hassas bilgilerin uygulama günlüklerine sızmasını korumak için günlük standartlarını zorunlu kılabilirsiniz. Log4j ve log4net gibi en popüler günlük çerçeveleri, hesap numaraları veya kişisel veriler gibi hassas bilgileri maskeleyebilmek için filtreler ve eklentiler sağlar.
En iyi yöntem – Güvenlik denetimlerini otomatikleştirmek için IDE araçlarını ve eklentilerini kullanma
Visual Studio, Visual Studio Code, IntelliJ IDEA ve Eclipse gibi en popüler IDE'ler, uygulama kodu yazarken ortaya çıkarmış olabileceğiniz olası güvenlik sorunları için anında geri bildirim ve öneriler almak için kullanabileceğiniz uzantıları destekler.
- SonarLint , en popüler diller ve geliştirici ortamları için kullanılabilen bir IDE eklentisidir. SonarLint değerli geri bildirimler sağlar ve yaygın programlama hataları ve olası güvenlik sorunları için kodunuzu otomatik olarak tarar.
- Diğer ücretsiz ve ticari eklentiler, OWASP ilk 10 yaygın güvenlik açığı gibi güvenliğe özgü öğelere odaklanır. Örneğin Synk eklentisi, uygulama kaynağınızı ve üçüncü taraf bağımlılıklarınızı tarar ve herhangi bir güvenlik açığı bulunursa sizi uyarır.
- Visual Studio ve Visual Studio Code için Statik Çözümleme Sonuçları Değişim Biçimi (SARIF) eklentisi, popüler Statik Uygulama Güvenliği Testi (SAST) araçlarından gelen güvenlik açıklarını sezgisel ve kolay okunur bir şekilde görüntülemenize ve ham JSON çıkış dosyalarındaki sonuçları yorumlamanıza olanak tanır.
En iyi yöntem – Kaynak kod depolarınızda denetimler oluşturma
- Kuruluş genelinde dallanmanın tutarlı bir şekilde kullanılması için bir dallanma metodolojisi oluşturun. Yayın akışı ve GitHub akışı gibi yöntemler, ekip ve paralel geliştirmeyi desteklemek için dalların nasıl kullanılması gerektiğine ilişkin yapılandırılmış yönergelere sahiptir. Bu yöntemler, ekiplerin CI/CD iş akışınızda kod işlemeleri ve birleştirmeleri için standartlar ve denetimler oluşturmasına yardımcı olabilir.
- Main gibi bazı dallar, uygulamanızın kaynak kodunun bütünlüğünü koruyan uzun ömürlü dallardır. Değişikliklerin birleştirilebilmesi veya işlenebilmesi için önce bu dalların birleştirme ilkeleri oluşturması gerekir. En iyi uygulamalardan bazıları şunlardır:
- Diğer geliştiricilerin kodu doğrudan ana dalınıza işlemesini önleyin.
- Bir eş gözden geçirme işlemi oluşturun ve değişikliklerin bir ana dalla birleştirilebilmesi için en az sayıda onay gerekir. GitHub ile bu denetimleri kolayca yapılandırabilir ve zorunlu kılabilirsiniz. GitHub ayrıca, geçitli ortamlar için gerekirse yetkili onaylayan grupları belirlemenize de olanak tanır.
- Uygulama kaynak kodunuz içindeki hassas bilgileri denetlemek ve bir güvenlik sorunu bulunursa işlemenin gerçekleşmesini önlemek için ön işleme kancalarını kullanın.
- Belirli bir proje için kolayca yapılandırılabilir GitHub tarafından sağlanan yerleşik ön işleme kancalarını kullanın. Örneğin, gizli dizileri, özel anahtarları ve kimlik bilgilerini taramak ve bu sorunlardan herhangi biri bulunursa işlemeyi önlemek için önceden oluşturulmuş kancalar vardır.
- Sürüm denetim sisteminizde rol tabanlı erişim denetimi oluşturun.
- En az ayrıcalık ilkesini kullanarak iyi tanımlanmış roller oluşturun. CI/CD işlem hattı, üretim dağıtımları için tedarik zincirinizdir.
- Kuruluşunuzda yerleşik kullanıcı veya grup rolleri uygulayın. Yönetici, Geliştirici, Güvenlik yöneticisi ve İşleç gibi roller, ci/CD iş akışlarınızla ilgili belirli rollerine ve işlevlerine göre bireyleri gruplandırmak için oluşturulmalıdır.
- CI/CD işlem hatlarınızla ilgili yapılandırma ve diğer değişiklikler için saydamlık ve izlenebilirlik sağlamak için iş akışlarınızın denetimini etkinleştirin.
En iyi yöntem – Kapsayıcı görüntülerinizin güvenliğini sağlama
- Genel yüzey saldırı alanını azaltmak için minimum işletim sistemi ayak izine sahip hafif görüntüler kullanın. Alpine gibi minimum görüntüleri, hatta yalnızca uygulamanızı ve ilişkili çalışma zamanını içeren distroless görüntüleri göz önünde bulundurun. Microsoft açık kaynak Linux dağıtımı mariner, AKS'nin kapsayıcılı iş yüklerini barındırması için tasarlanmış basit ve sağlamlaştırılmış bir dağıtımdır.
- Kapsayıcılarınızı oluştururken yalnızca güvenilen temel görüntüleri kullanın. Bu temel görüntüler, güvenlik açıkları için sık sık taranan özel bir kayıt defterinden alınmalıdır.
- Görüntü güvenlik açıklarını yerel olarak değerlendirmek için geliştirici araçlarını kullanın.
- Trivy , kapsayıcı görüntülerinizdeki güvenlik açıklarını analiz etmek için kullanabileceğiniz bir açık kaynak aracı örneğidir.
- Bir görüntü için kök kullanıcı erişimini/bağlamı engelleyin. Varsayılan olarak kapsayıcılar kök olarak çalışır.
- Gelişmiş güvenlik gerektiren kapsayıcılar için, çalışan kapsayıcılarınızın güvenliğini zorlamaya daha fazla yardımcı olmak için Kubernetes kümenizde bir AppArmor profili kullanmayı göz önünde bulundurun.
Derleme aşaması
Derleme aşamasında geliştiriciler, uygulama kaynaklarının otomatik taramalarını CI derleme işlem hatlarıyla tümleştirmek için site güvenilirlik mühendisleri ve güvenlik ekipleriyle birlikte çalışır. İşlem hatları, CI/CD platformunun güvenlik araçları ve uzantıları kullanılarak SAST, SCA ve gizli dizi tarama gibi güvenlik uygulamalarını etkinleştirecek şekilde yapılandırılır.
En iyi yöntem – Uygulama kaynak kodunuzda olası güvenlik açıklarını bulmak için Statik Kod Analizi (SAST) gerçekleştirme
- Kod tarama ve CodeQL için GitHub Gelişmiş Güvenlik tarama özelliklerini kullanın.
- Kod tarama , github deposundaki kodu analiz ederek güvenlik açıklarını ve kodlama hatalarını bulmak için kullandığınız bir özelliktir. Analiz tarafından tanımlanan tüm sorunlar GitHub Enterprise Cloud'da gösterilir.
- Kod tarama kodunuzda olası bir güvenlik açığı veya hata bulursa GitHub depoda bir uyarı görüntüler.
- Ayrıca, yeni bir kodu birleştirmeden önce bir özellik dalı ile temel dalın güncel olmasını zorunlu kılmak için gerekli durum denetimleri için dal kurallarını yapılandırabilirsiniz. Bu uygulama, dalınızın her zaman en son kodla test edilmesini sağlar.
- Kubernetes dağıtım nesnelerinizi analiz etmek için kube-score gibi araçları kullanın.
- kube-score, Kubernetes nesne tanımlarınızın statik kod analizini sağlayan bir araçtır.
- Çıktı, uygulamanızın daha güvenli ve dayanıklı olmasına yardımcı olmak için geliştirebileceğiniz önerilerin bir listesidir.
En iyi yöntem – Yanlışlıkla bir depoya işlenen gizli dizilerin sahte kullanımını önlemek için gizli dizi taraması gerçekleştirme
- Depo için gizli dizi taraması etkinleştirildiğinde GitHub, birçok hizmet sağlayıcısı tarafından kullanılan gizli dizilerle eşleşen desenler için kodu tarar.
- GitHub ayrıca depolardaki mevcut içerik için düzenli aralıklarla tam git geçmişi taraması çalıştırır ve uyarı bildirimleri gönderir.
- Azure DevOps için Bulut için Defender, kaynak kodunuzda ve derleme çıkışınızda kimlik bilgilerini, gizli dizileri, sertifikaları ve diğer hassas içeriği algılamak için gizli dizi taramasını kullanır.
- Gizli dizi tarama, Azure DevOps için Microsoft Güvenlik DevOps uzantısının bir parçası olarak çalıştırılabilir.
En iyi yöntem – Kod tabanındaki açık kaynak bileşenlerini izlemek ve bağımlılıklardaki güvenlik açıklarını algılamak için yazılım oluşturma analizi (SCA) araçlarını kullanın
- Bağımlılık gözden geçirmesi , güvenli olmayan bağımlılıkları ortamınıza tanıtmadan önce yakalamanıza olanak tanır ve lisans, bağımlılar ve bağımlılıkların yaşı hakkında bilgi sağlar. Çekme isteğinin "Değiştirilen Dosyalar" sekmesinde zengin fark ile bağımlılık değişikliklerinin kolayca anlaşılabilen bir görselleştirmesini sağlar.
- Dependabot , güvenli olmayan bağımlılıkları algılamak için bir tarama gerçekleştirir ve GitHub Danışmanlık Veritabanı'na yeni bir öneri eklendiğinde veya bir depo için bağımlılık grafiği değiştiğinde Dependabot uyarıları gönderir.
En iyi yöntem – Bulut yanlış yapılandırmalarının üretim ortamlarına ulaşmasını en aza indirmek için Kod Olarak Altyapı (IaC) şablonlarının güvenlik taramalarını etkinleştirin
- Geliştirme yaşam döngüsü boyunca bulut kaynağı yapılandırmalarını proaktif olarak izleyin.
- DevOps için Microsoft Defender hem GitHub hem de Azure DevOps depolarını destekler.
En iyi yöntem – Bilinen güvenlik açıklarını belirlemek için kapsayıcı kayıt defterlerindeki iş yükü görüntülerinizi tarama
- Kapsayıcılar için Defender, görüntülerinizde bilinen güvenlik açıkları olup olmadığını bildirmek için Container Registry ve Amazon AWS Elastic Container Registry'deki (ECR) kapsayıcıları tarar.
- Azure İlkesi, Container Registry'de depolanan tüm görüntülerde güvenlik açığı değerlendirmesi yapmak ve her bulma hakkında ayrıntılı bilgi sağlamak için etkinleştirilebilir.
En iyi yöntem – Temel görüntü güncelleştirmesinde otomatik olarak yeni görüntüler oluşturma
- Azure Container Registry Görevleri , kapsayıcı görüntüsü oluştururken temel görüntü bağımlılıklarını dinamik olarak bulur. Sonuç olarak, bir uygulama görüntüsünün temel görüntüsünün ne zaman güncelleştirildiği algılanabilir. Önceden yapılandırılmış bir derleme göreviyle Container Registry görevleri, temel görüntüye başvuran her uygulama görüntüsünü otomatik olarak yeniden oluşturabilir.
En iyi yöntem – Kapsayıcı görüntülerinizi dijital olarak imzalamak ve AKS kümesini yalnızca doğrulanmış görüntülere izin verecek şekilde yapılandırmak için Container Registry, Azure Key Vault ve gösterimi kullanın
- Azure Key Vault, kapsayıcı görüntülerini ve diğer yapıtları imzalamak ve doğrulamak için Key Vault eklentisi (azure-kv) gösterimiyle birlikte kullanılabilecek bir imzalama anahtarı depolar. Container Registry, Azure CLI komutlarını kullanarak bu imzaları eklemenize olanak tanır.
- İmzalı kapsayıcılar, kullanıcıların dağıtımların güvenilir bir varlıktan oluşturulduğundan emin olmasını sağlar ve oluşturma işleminden bu yana bir yapıtın üzerinde oynanmadığını doğrular. İmzalı yapıt, kullanıcı herhangi bir ortama bir yapıt çekmeden önce bütünlüğü ve orijinalliği güvence altına alır ve bu da saldırıları önlemeye yardımcı olur.
- Onayla , Kubernetes kümelerinin yapıt güvenlik meta verilerini dağıtımdan önce doğrulamasını ve yalnızca sizin oluşturduğunuz bir kabul ilkesiyle uyumlu olan dağıtımları kabul etmesini sağlar.
Dağıtım aşaması
Dağıtım aşamasında geliştiriciler, uygulama operatörleri ve küme operatörü ekipleri, kodu daha güvenli ve otomatik bir şekilde üretim ortamına dağıtmak üzere sürekli dağıtım (CD) işlem hatları için doğru güvenlik denetimlerini oluşturmak için birlikte çalışır.
En iyi yöntem – Dağıtım işlem hattının erişimini ve iş akışını denetleme
- Dal koruma kurallarını ayarlayarak önemli dalları koruyabilirsiniz. Bu kurallar, ortak çalışanların dala göndermeyi silip silip silemeyeceğini veya zorla gönderebileceğini tanımlar. Ayrıca, durum denetimlerini geçirme veya doğrusal işleme geçmişi gibi dalına yapılan tüm gönderimler için gereksinimleri de ayarlar.
- Dağıtım için ortamları kullanarak, koruma kuralları ve gizli dizilerle ortamları yapılandırabilirsiniz.
- Dağıtım işlem hattının iş akışını denetlemek için Onaylar ve Gates özelliğinden yararlanabilirsiniz. Örneğin, üretim ortamına dağıtımdan önce bir güvenlik veya operasyon ekibinin el ile onayını gerektirebilirsiniz.
En iyi yöntem – Güvenli dağıtım kimlik bilgileri
- OpenID Bağlan (OIDC), GitHub Action iş akışlarınızın Azure kimlik bilgilerini uzun ömürlü GitHub gizli dizileri olarak depolamaya gerek kalmadan Azure'daki kaynaklara erişmesini sağlar.
- Dağıtım için ortamları kullanarak, koruma kuralları ve gizli dizilerle ortamları yapılandırabilirsiniz.
- GitOps ile CI/CD'ye yönelik çekme tabanlı bir yaklaşım, güvenlik kimlik bilgilerini Kubernetes kümenize kaydırmanıza olanak tanır ve bu da kimlik bilgilerinin dış CI araçlarınızda depolanmasını kaldırarak güvenlik ve risk yüzeyini azaltır. Ayrıca, izin verilen gelen bağlantıları azaltabilir ve Kubernetes kümelerinize yönetici düzeyinde erişimi sınırlayabilirsiniz.
En iyi yöntem – Çalışan uygulamanızdaki güvenlik açıklarını bulmak için dinamik uygulama güvenlik testleri (DAST) çalıştırma
- Dinamik uygulama güvenlik testi (DAST) testleri çalıştırmak için dağıtım iş akışlarında GitHub Actions'ı kullanın.
- Yaygın web uygulaması güvenlik açıklarına yönelik sızma testi yapmak için ZAP gibi açık kaynak araçları kullanın.
En iyi yöntem – Kapsayıcı görüntülerini yalnızca güvenilen kayıt defterlerinden dağıtma
- Kubernetes için Azure İlkesi eklentisini etkinleştirmek üzere Kapsayıcılar için Defender'ı kullanın.
- Kapsayıcı görüntülerinin yalnızca güvenilen kayıt defterlerinden dağıtılabilmesi için Azure İlkesi etkinleştirin.
Çalıştırma aşaması
Bu aşamada, olası güvenlik olaylarını proaktif olarak izlemek, analiz etmek ve uyarı vermek için işlem izleme ve güvenlik izleme görevleri gerçekleştirilir. Azure İzleyici ve Microsoft Sentinel gibi üretim gözlemlenebilirlik araçları, kurumsal güvenlik standartlarını izlemek ve uyumluluk sağlamak için kullanılır.
En iyi yöntem – Üretim yapılandırmalarınızın otomatik olarak taranmasını ve izlenmesini sağlamak için bulut için Microsoft Defender'ı kullanma
- Uygulamanızın güvenlik açığı durumundaki kaymayı algılamak için sürekli tarama çalıştırın ve güvenlik açığı olan görüntülere düzeltme eki uygulama ve bunları değiştirme işlemi uygulayın.
- İşletim sistemleri için otomatik yapılandırma izlemesi uygulayın.
- AKS kümeleriniz için temel taramalar gerçekleştirmek için Bulut için Microsoft Defender kapsayıcı önerilerini (İşlem ve uygulamalar bölümünün altında) kullanın. Yapılandırma sorunları veya güvenlik açıkları bulunduğunda Bulut için Microsoft Defender panosunda bildirim alın.
- aks kümeleriniz tarafından kullanılan ağ kaynaklarının güvenliğini sağlamaya yardımcı olmak için Bulut için Microsoft Defender kullanın ve ağ koruma önerilerini izleyin.
- Container Registry'de depolanan görüntüler için bir güvenlik açığı değerlendirmesi gerçekleştirin.
- Kapsayıcılar için Defender'i etkinleştirerek Container Registry'de görüntüleri çalıştırmak için sürekli taramalar uygulayın.
En iyi yöntem – Kubernetes kümelerinizi güncel tutun
- Kubernetes sürümleri sık sık dağıtılır. Destekten geri kalmadığınızdan ve destekten çıkmadığınızdan emin olmak için bir yaşam döngüsü yönetimi stratejisine sahip olmanız önemlidir. AKS, bu yükseltme işlemini yönetmek için size araçlar ve esneklik sağlayan yönetilen bir tekliftir. Bakım pencereleri ve yükseltmeleri üzerinde daha fazla denetim sahibi olmak için AKS platformunun planlı bakım özelliklerini kullanabilirsiniz.
- AKS çalışan düğümleri daha sık yükseltilmelidir. Daha fazla denetim ve kapsamlı güncelleştirme için katılımsız mod veya Azure CLI aracılığıyla otomatik olarak uygulanabilen haftalık işletim sistemi ve çalışma zamanı güncelleştirmeleri sağlıyoruz.
En iyi yöntem – AKS kümelerinizin güvenliğini sağlamak ve yönetmek için Azure İlkesi kullanın
- AKS için Azure İlkesi Eklentisini yükledikten sonra, kümenize tek tek ilke tanımları veya girişimler (ilke kümeleri olarak da adlandırılır) adlı ilke tanımları grupları uygulayabilirsiniz.
- Ayrıcalıklı kapsayıcıların çalışmasını engelleme veya yalnızca izin verilen dış IP'leri onaylama gibi yaygın senaryolar için Yerleşik Azure ilkelerini kullanın. Belirli kullanım örnekleri için özel ilkeler de oluşturabilirsiniz.
- Kümenize ilke tanımları uygulayın ve bu atamaların zorunlu kılındığını doğrulayın.
- Belirtilen kurallara göre dağıtımlara izin veren veya reddeden bir erişim denetleyicisi yapılandırmak için Ağ Geçidi Denetleyicisi'ni kullanın. Azure İlkesi Ağ Geçidi Denetleyicisi'nin kapsamını genişletir.
- AKS'de ağ ilkelerini kullanarak iş yükü podları arasındaki trafiğin güvenliğini sağlayın.
- AKS'de podlar arasındaki trafik akışını denetlemek için ağ ilkesi altyapısını yükleyin ve Kubernetes ağ ilkeleri oluşturun. Ağ ilkesi, AKS'deki Linux tabanlı veya Windows tabanlı düğümler ve podlar için kullanılabilir.
En iyi yöntem – Sürekli izleme ve uyarı için Azure İzleyici'yi kullanma
- AKS'den günlükleri ve ölçümleri toplamak için Azure İzleyici'yi kullanın. Uygulamanızın ve altyapınızın kullanılabilirliği ve performansı hakkında içgörüler elde edebilirsiniz. Ayrıca çözümünüzün durumunu izlemek ve anormal etkinliği erken tespit etmek için sinyallere erişmenizi sağlar.
- Azure İzleyici ile sürekli izleme, izleme verilerine göre yayın işlem hatlarını geçit veya geri alma sürümlerine kadar genişletir. Azure İzleyici ayrıca güvenlik günlüklerini alır ve şüpheli etkinlikler hakkında uyarı verebilir.
- AKS örneklerinizi Azure İzleyici'ye ekleme ve kümeniz için tanılama ayarlarını yapılandırma.
- Bkz. Azure Kubernetes Service için Azure güvenlik temeli.
En iyi yöntem – Etkin tehdit izleme için Bulut için Microsoft Defender kullanma
- Bulut için Microsoft Defender, AKS'de düğüm düzeyinde (VM tehditleri) ve dahililer için etkin tehdit izleme sağlar.
- DevOps için Defender kapsamlı görünürlük için kullanılmalıdır ve güvenlik ve operatör ekiplerine tüm CI/CD işlem hatlarınız için merkezi bir pano sağlar. Bu işlevsellik özellikle Azure DevOps ve GitHub gibi çok işlem hattı platformları kullanıyorsanız veya genel bulutlarda işlem hatları çalıştırıyorsanız kullanışlıdır.
- Key Vault için Defender, anahtar kasası hesaplarına erişmeye yönelik olağan dışı, şüpheli girişimleri algılamak için kullanılabilir ve yapılandırmaya göre yöneticileri uyarabilir.
- Kapsayıcılar için Defender, Container Registry'de depolanan kapsayıcı görüntülerinizde bulunan güvenlik açıkları hakkında uyarı verebilir.
En İyi Yöntem – Merkezi günlük izlemeyi etkinleştirme ve gerçek zamanlı güvenlik tehditlerini izlemek için SIEM ürünlerini kullanma
- Desenlere ve kurallara göre merkezi güvenlik izleme için AKS tanılama günlüklerini Microsoft Sentinel'e Bağlan. Sentinel, veri bağlayıcıları aracılığıyla bu erişimi sorunsuz bir şekilde etkinleştirir.
En İyi Yöntem – Üretim kümelerinizdeki etkinliği izlemek için denetim günlüğünü etkinleştirme
- Tüm etkinlikleri ve bunların durumunu görüntülemek üzere AKS kaynaklarındaki eylemleri izlemek için Etkinlik günlüklerini kullanın. Kaynaklarda ve kim tarafından gerçekleştirilen işlemleri belirleyin.
- CoreDNS özel ConfigMap'inize belgelenmiş yapılandırma uygulayarak DNS sorgu günlüğünü etkinleştirin.
- Devre dışı bırakılan kimlik bilgilerine erişme girişimlerini izleyin.
- AKS için kullanıcı kimlik doğrulamasını Microsoft Entra Id ile tümleştirin. Denetim ve oturum açma günlüklerini bir Azure Log Analytics çalışma alanına göndererek Microsoft Entra Id için Tanılama Ayarlar oluşturun. Azure Log Analytics çalışma alanında istenen uyarıları (devre dışı bırakılmış bir hesabın oturum açmaya çalıştığı durumlar gibi) yapılandırın.
En İyi Yöntem – Azure Kaynaklarınızda tanılamayı etkinleştirme
- İş yükünüzün tüm kaynaklarında Azure tanılamasını etkinleştirerek, Azure kaynaklarınız için ayrıntılı tanılama ve denetim bilgileri sağlayan platform günlüklerine erişebilirsiniz. Bu günlükler Log Analytics'e veya güvenlik izleme ve uyarı için Microsoft Sentinel gibi bir SIEM çözümüne aktarılabilir.
Katkıda Bulunanlar
Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.
Asıl yazar:
- Adnan Khan | Sr. Bulut Çözümü Mimarı
Diğer katkıda bulunanlar:
- Ayobami Ayodeji | Program Yöneticisi 2
- Ahmed Bham | Sr. Bulut Çözüm Mimarı
- Chad Kittel | Baş Yazılım Mühendisi
- John Poole | Sr. Bulut Çözümü Mimarı
- Bahram Rushenas | Çözüm Mimarı
- Abed Sau | Sr. Bulut Çözümü Mimarı
Sonraki adımlar
- Bulut için Microsoft Defender
- Güvenli DevOps
- DevOps'ta Güvenlik (DevSecOps)
- GitHub Gelişmiş Güvenlik
- GitOps