Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Secure DevOps olarak da adlandırılan DevSecOps, bir DevOps iş akışındaki yazılım geliştirme yaşam döngüsünün (SDLC) her aşamasında güvenliği tümleştirme uygulamasıdır. AKS üzerinde DevSecOps bu yaklaşımı Azure Kubernetes Service üzerinde çalışan kapsayıcılı uygulamalara uygular ve otomatik güvenlik denetimlerini doğrudan CI/CD işlem hatlarına ve küme işlemlerine ekler. Aşağıdakiler için DevOps uygulamalarında güvenlik oluşturma:
- Uygulamalarınızı ve sistemlerinizi daha güvenli hale getirin, güvenlik tehditlerine görünürlük sağlayın ve güvenlik açıklarının dağıtılan ortamlara ulaşmasını engelleyin.
- Geliştirme ve operasyon ekipleriniz arasında güvenlik farkındalığını artırın.
- Otomatik güvenlik süreçlerini yazılım geliştirme yaşam döngünüze (SDLC) dahil edin.
- Geliştirme ve tasarım aşamalarının başlarında güvenlik sorunları bularak düzeltme maliyetlerini azaltın.
Önemli çıkarımlar
- Sola kaydırmalı güvenlik: Kod üretime ulaşmadan önce güvenlik açıklarını yakalamak için IDE eklentilerini, ön işleme kancalarını ve güvenli kodlama standartlarını kullanarak geliştirmenin erken aşamalarında güvenlik denetimlerini tümleştirin.
- Otomatik tarama: Kod güvenlik açıklarını, güvenli olmayan bağımlılıkları ve kullanıma sunulan kimlik bilgilerini otomatik olarak algılamak için CI işlem hatlarında statik uygulama güvenlik testi (SAST), yazılım oluşturma analizi (SCA) ve gizli dizi tarama kullanın.
- İlke uygulama: Azure Container Registry yapılandırmalarını denetlemek için Azure İlkesi kullanın. AKS kabul zorlaması için, Gatekeeper'ı genişleten AKS için Azure İlkesi eklentisini kullanın.
- Sürekli izleme: Kapsayıcılar için Microsoft Defender ile çalışma zamanı tehdit koruması, Azure İzleyici ile merkezi günlük kaydı ve Microsoft Sentinel ile SIEM tümleştirmesi uygulayın.
- Tedarik zinciri güvenliği: Yapıt bütünlüğünü korumak için SBOM'lar oluşturun, kapsayıcı görüntülerini imzalayın ve yalnızca güvenilen kayıt defterlerinden dağıtın.
Azure Kubernetes Service'e (AKS) DevSecOps uyguladığınızda, her kuruluş rolünün belirli güvenlik konuları vardır:
- Geliştiriciler AKS üzerinde çalışan güvenli uygulamalar oluşturur.
- Bulut mühendisleri güvenli AKS altyapısı oluşturur.
- İşletim ekipleri kümeleri yönetebilir veya güvenlik sorunlarını izleyebilir.
Bu makalede DevOps yaşam döngüsü aşamasına göre yönergeler düzenlenir ve güvenlik denetimleri ve en iyi yöntemler için öneriler sağlanır. Yerleşik araçlara odaklanarak sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatlarına yönelik yaygın süreçleri ve araçları kapsar.
İşlem akışı
Bu mimariye ait bir Visio dosyasını indirin.
Note
Bu makale AKS ve GitHub'a başvurur, ancak bu önerileri herhangi bir kapsayıcı düzenlemesine veya CI/CD platformuna uygulayabilirsiniz. Uygulama ayrıntıları farklılık gösterebilir, ancak her aşama için çoğu kavram ve uygulama hala geçerlidir.
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, Visual Studio Code veya Visual Studio'yu kullanırken güvenlik uzantıları etkinleştirilmiş olarak güvenlik açıklarına karşı kodlarını proaktif bir şekilde analiz eder.
Geliştiriciler uygulama kodunu şirkete ait ve yönetilen 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.
Pull istekleri, GitHub Actions aracılığıyla sürekli tümleştirme (CI) derlemelerini ve otomatik testleri tetikler.
GitHub Actions aracılığıyla CI derleme iş akışı bir Docker kapsayıcı görüntüsü oluşturur ve bunu Azure Container Registry'de depolar.
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 ekleyebilirsiniz.
GitHub Actions, CD'nin AKS'ye entegrasyonunu sağlar. 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 Container Registry, AKS kümesi ve Azure Key Vault'u tarar.
Kapsayıcılar için Microsoft Defender , GitHub Actions tarafından Container Registry'ye yüklendiğinde kapsayıcı görüntüsünü bilinen güvenlik açıklarına karşı tarar.
Kapsayıcılar için Defender ayrıca AKS ortamınızı tarar ve AKS kümeleriniz için çalışma zamanı tehdit koruması sağlar.
Microsoft Defender for Key Vault, anahtar kasalarına erişim için olağan dışı ve şüpheli girişimleri algılar.
İlke uyumluluğunu zorlamak için Container Registry ve AKS'ye Azure İlkesi uygulayabilirsiniz. Azure İlkesi, hem Container Registry hem de AKS için yerleşik güvenlik ilkeleri içerir.
Key Vault, gizli bilgileri ve kimlik bilgilerini geliştiricilere göstermeden, çalışma zamanında uygulamaya güvenli bir şekilde enjekte eder.
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. Ağ ilkesi altyapısı olarak Cilium tarafından desteklenen Azure CNI'yi öneririz. Genişletilmiş Berkeley Paket Filtresi (eBPF) tabanlı uygulama, katman-7 politikası ve tam nitelikli alan adı (FQDN) filtrelemesi sağlar.
Prometheus ölçümlerini, kapsayıcı günlüklerini ve Kubernetes olaylarını toplamak için Azure İzleyici'yi kullanarak AKS kümesinin sürekli izlenmesini ayarlayabilirsiniz. Görselleştirme için Azure Yönetilen Grafana panolarını ve sorgu tabanlı uyarılar için Log Analytics'i kullanın.
Azure İzleyici, Managed Prometheus aracılığıyla performans ölçümlerini ve kapsayıcı günlük toplama aracılığıyla uygulama ve küme günlüklerini toplar.
Log Analytics çalışma alanı, günlük sorgularını çalıştırmak için tanılama ve uygulama günlüklerini depolar.
Aks telemetrisini Bulut için Microsoft Defender, Microsoft Entra Id ve ağ kaynaklarından gelen sinyallerle ilişkilendirmek için merkezi güvenlik bilgileri ve olay yönetimi (SIEM) olarak Microsoft Sentinel'i kullanın. Microsoft Sentinel, AKS ortamının tamamında güvenlik olaylarına algılama, araştırma ve otomatik yanıt sağlar.
Zed Saldırı Ara Sunucusu (ZAP) gibi açık kaynak araçlar web uygulamaları ve hizmetleri için sızma testi yapabilir.
Bulut için Defender'da kullanılabilen DevOps için Defender, güvenlik ekiplerinin GitHub ve Azure DevOps gibi çok noktalı ortamlarda DevOps güvenliğini yönetmesini sağlar.
Ekip üyelerine genel bakış ve sorumluluklar
Sorumlulukları ekipler arasında bölerek Kubernetes tabanlı çözüm dağıtımlarında DevSecOps karmaşıklığını yönetmeyi göz önünde bulundurun. Bu bölümde geliştiricilerin, site güvenilirlik mühendisleri, küme operatörleri ve güvenlik ekipleri gibi uygulama operatörlerinin rolleri ve sorumlulukları açıklanmaktadır.
Developers
Geliştiriciler uygulama kodunu yazar ve belirlenen depoya işler. Kodlarının amaçlanan şekilde çalıştığından ve uygulamanın geri kalanıyla tümleştirdiğinden emin olmak için otomatik test için betikler yazar ve çalıştırır. Geliştiriciler ayrıca otomasyon işlem hattının bir parçası olarak kapsayıcı görüntülerinin oluşturulmasını tanımlar ve betikler.
Uygulama operatörleri (Site Güvenilirliği Mühendisleri)
Kapsayıcıları ve Kubernetes'i kullanarak 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üvenilirliği mühendisleri, ekiplerin büyük yazılım sistemlerini denetleme şeklini otomatik hale getiren çözümler oluşturur. Geliştirme ve küme operatörü ekipleri arasında bir köprü görevi görürler. Hizmet düzeyi hedeflerinin (SLO' lar) ve hata bütçelerinin oluşturulmasına ve izlenmesine yardımcı olur. Site güvenilirliği mühendisleri ayrıca uygulama dağıtımlarını yönetmeye ve Kubernetes bildirim (YAML) dosyalarını yazmaya da yardımcı olur.
Küme işleçleri
Küme operatörleri küme altyapısını yapılandırıp yönetir. 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 Prometheus için Azure İzleyici yönetilen hizmeti ve Azure Yönetilen Grafana gibi izleme araçlarını kullanır. Bu kişiler, kümenin düzeltme eklerinin uygulanması, küme yükseltmeleri, izinler ve rol tabanlı erişim denetimi (RBAC) ile ilgilenir. DevSecOps ekiplerinde, küme operatörleri güvenlik standartları oluşturmak ve kümelerin bu gereksinimleri karşıladığından emin olmak için güvenlik ekipleriyle birlikte çalışır.
Güvenlik ekibi
Güvenlik ekibi güvenlik standartlarını geliştirir ve uygular. Bazı ekipler, kümeleri içeren abonelikler ve kaynak grupları arasında zorunlu kıldığınız Azure İlkesi tanımları oluşturabilir ve seçebilir. Güvenlik ekipleri güvenlik sorunlarını izler ve DevSecOps işlemi boyunca güvenliği önceliklendirmek için diğer ekiplerle birlikte çalışır.
DevSecOps yaşam döngüsü aşamaları
SDLC'nin her aşaması güvenlik denetimleri uygular. Bu güvenlik denetimleri DevSecOps ve sola kaydırma uygulamalarının merkezidir.
Bu mimariye ait bir Visio dosyasını indirin.
Plan aşaması
Plan aşaması genellikle en az otomasyona sahiptir, ancak daha sonraki DevOps yaşam döngüsü aşamalarını 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 gereksinimlerini ve güvenlik sorunlarını hesaba katmanız veya azaltmanız için bu aşamaya güvenlik paydaşlarını dahil edin.
En iyi yöntem: Güvenli bir uygulama platformu tasarlama
AKS tarafından barındırılan güvenli bir iş yükü oluşturmak için, platformun kendisinden başlayarak her katmanda sisteme güvenlik eklemelisiniz. Platform, küme içi bileşenler olarak çalışma zamanı güvenliği ve ilke aracıları gibi bileşenleri içerebilir. AKS dışındaki bileşenler olarak ise ağ güvenlik duvarları ve kapsayıcı kayıt defterlerini içerebilir.
En iyi yöntem: Sürecinizde tehdit modellemesi oluşturma
Tehdit modellemesi genellikle güvenlik ve geliştirme ekiplerini içeren el ile gerçekleştirilen bir etkinliktir. Kod geliştirmeden veya değişiklik yapmadan önce güvenlik açıklarını gidermek için bir sistemdeki tehditleri modelleyebilir ve bulabilirsiniz. Ekipler önemli yazılım değişikliklerine, çözüm mimari değişikliklerine veya güvenlik olaylarına yanıt olarak tehdit modellemesi yürütür.
STRIDE tehdit modelini öneririz. Bu metodoloji bir veri akışı diyagramıyla başlar ve tehditleri STRIDE kısaltması kullanarak kategorilere ayırır: Kimlik Sahtekarlığı, Kurcalama veya Sahtecilik, Red, Bilgi Açığa Çıkması, Hizmet Reddi ve Ayrıcalık Yükseltme. Ekipler riskleri belirlemek, azaltmak ve doğrulamak için bu kategorileri kullanır. Modelleme aracı sistem bileşenlerini, veri akışlarını ve güvenlik sınırlarını belirlemeye ve görselleştirmeye yardımcı olur.
SDLC'nize tehdit modellemesi oluşturmak işlem yükü ekler ve güncelleştirilmiş tehdit modellerini korumanızı gerektirir. Ancak, güvenliği geliştirmenin erken aşamalarında ele alır ve bu da daha sonra keşfedilen sorunları düzeltme maliyetini azaltır.
En iyi yöntem: Azure Well-Architected Framework'lerini uygulama
Bulutta yerel ortamlar için geçerli olduğu gibi kimlik yönetimi, uygulama güvenliği, altyapı koruması, veri güvenliği ve DevOps için rehberlik sağlayan En iyi Güvenlik uygulamalarını uygulayın.
DevSecOps ve üretim ortamlarınızın izlenmesi için geçerli olduğu gibi Operasyonel Mükemmellik en iyi yöntemlerini uygulayın.
Geliştirme aşaması
Sola kaydırma , DevSecOps zihniyetinin önemli bir tenet'idir. Bu işlem, kodu bir depoya işlemeden ve işlem hattı aracılığıyla dağıtmadan önce başlar. Geliştirme yaşam döngüsünün başlarındaki güvenlik sorunlarını çözmek için güvenli kodlama en iyi yöntemlerini benimseyin ve geliştirme aşamasında kod analizi için tümleşik geliştirme ortamı (IDE) araçlarını ve eklentilerini kullanın.
En iyi yöntem: Güvenli kodlama standartlarını zorunlu kılma
Kodunuzu ekleme ve güvenli olmayan tasarım gibi yaygın güvenlik açıklarından korumaya yardımcı olmak için yerleşik güvenli kodlama en iyi yöntemlerini ve denetim listelerini kullanın. Open Worldwide Application Security Project (OWASP) foundation, 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.
Java ve .NET gibi belirli programlama dili çalışma zamanlarınız için güvenli kodlama uygulamalarını gözden geçirin.
Uygulama günlüklerine hassas bilgilerin sızmasını önlemek için günlük standartlarının uygulanmasını zorunlu tutun. Apache Log4j ve Apache 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, VS Code, IntelliJ IDEA ve Eclipse gibi en popüler IDE'ler, uygulama kodu yazarken ortaya çıkardığınız olası güvenlik sorunları için anında geri bildirim ve öneriler almak için kullanabileceğiniz uzantıları destekler.
IDE için SonarQube , en popüler diller ve geliştirici ortamları için bir IDE eklentisidir. IDE için SonarQube geri bildirim 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. Snyk eklentisi ayrıca uygulama kaynağınızı ve dış bağımlılıklarınızı tarar ve güvenlik açıkları bulursa sizi uyarır.
Visual Studio ve VS 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ı kolayca görüntülemenize ve ham JSON çıkış dosyalarından sonuçları yorumlamanıza olanak tanır.
En iyi yöntem: Kaynak kod depolarınızda denetimler oluşturma
Kuruluşunuz genelinde tutarlılık 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ılacağına 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şiklikleri işlemeden veya birleştirmeden önce bu dallar için birleştirme ilkeleri oluşturun. Örneğin şunları yapabilirsiniz:
Diğer geliştiricilerin kodu doğrudan ana dalınıza işlemesini önleyin.
Bir eş gözden geçirme süreci oluşturun ve değişiklikleri bir ana dalda birleştirmeden önce en az belirli sayıda onay gereklidir. GitHub kullanarak bu denetimleri yapılandırın ve zorunlu kılın. Geçitli ortamlar için gerekirse yetkili onaylayan grupları ayarlamak için GitHub'ı kullanın.
Uygulama kaynak kodunuzda hassas bilgileri denetlemek ve güvenlik sorunları algıladığında işlemeleri engellemek için ön komut kancalarını kullanın.
- GitHub tarafından sağlanan yerleşik ön komut kancalarını kullanın. Bunları belirli projeler için kolayca yapılandırın. Örneğin, önceden oluşturulmuş bazı kancalar gizli dizileri, özel anahtarları ve kimlik bilgilerini tarar ve bu sorunları bulurlarsa bir işlemeyi engeller.
Sürüm denetim sisteminizde RBAC oluşturun.
En düşük ayrıcalık ilkesini kullanarak iyi tanımlanmış roller oluşturun. CI/CD işlem hattı, üretim dağıtımları için tedarik zinciriniz olarak işlev görür.
Kuruluşunuzda yerleşik kullanıcı veya grup rolleri uygulayın. Ci/CD iş akışlarınızdaki belirli rol ve işleve göre bireyleri gruplandırmak için Yönetici, Geliştirici, Güvenlik Yöneticisi ve İşleç gibi roller oluşturun.
CI/CD işlem hatlarınıza yapılandırma ve diğer değişiklikler için saydamlık ve izlenebilirlik eklemek 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 saldırı yüzeyini azaltmak için düşük işletim sistemi ayak izine sahip hafif görüntüler kullanın. Yalnızca uygulamanızı ve ilişkili çalışma zamanını içeren Alpine veya distroless görüntüleri gibi en düşük görüntüleri göz önünde bulundurun.
Kapsayıcılarınızı oluştururken yalnızca güvenilen temel görüntüleri kullanın. Güvenlik açıklarını sık sık taradığınız özel bir kayıt defterinden bu temel görüntüleri alın.
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 eden açık kaynak bir araçtır.
Bir görüntüde root kullanıcı erişimini veya bağlamını 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 daha fazla sağlamak amacıyla Kubernetes kümenizde bir AppArmor veya seccomp profili kullanmayı göz önünde bulundurun.
Derleme ve oluşturma 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. Teams, CI/CD platformunun güvenlik araçlarını ve uzantılarını kullanarak işlem hatlarını güvenlik uygulamalarını etkinleştirecek şekilde yapılandırır. Bu uygulamalar arasında SAST, yazılım oluşturma analizi (SCA) ve gizli dizi taraması yer alır.
En iyi yöntem: Uygulama kaynak kodunuzda olası güvenlik açıklarını bulmak için SAST gerçekleştirme
Kod tarama ve CodeQL için GitHub Gelişmiş Güvenlik tarama özelliklerini kullanın.
Kod tarama , güvenlik açıklarını ve kodlama hatalarını bulmak için GitHub deposundaki kodu analiz eden bir özelliktir. GitHub Enterprise Cloud'daki sorunları görüntüler.
Kod tarama kodunuzda olası bir güvenlik açığı veya hata bulursa GitHub depoda bir uyarı görüntüler.
Gerekli durum denetimleri için dal kurallarını yapılandırabilirsiniz. Örneğin, yeni kodu birleştirmeden önce özellik dallarının temel dal ile güncel olmasını zorunlu kılabilirsiniz. Bu gereksinim, dalınızı en son kodla test etmenizi sağlar.
Kod tarama uyarıları için yapay zeka tarafından oluşturulan düzeltme önerilerini almak için Copilot Autofix'i etkinleştirin. Copilot Autofix, geliştiricilerin güvenlik bulgularını hızlı bir şekilde çözümlemesine yardımcı olan pull isteklerinde doğrudan çözüm önerir.
Kubernetes dağıtım nesnelerinizi analiz etmek için kube-score gibi araçları kullanın. Bu araç Kubernetes nesne tanımlarınızın statik kod analizini yapar. Uygulamanızı daha güvenli ve dayanıklı hale getirmek için bir öneri listesi oluşturur.
En iyi uygulama: Yanlışlıkla yüklenen gizli bilgileri algılamak için gizli bilgi taramasını kullanma.
Bir depo için gizli dizi taramayı etkinleştirdiğinizde GitHub, kodu birçok hizmet sağlayıcısının kullandığı gizli dizilerle eşleşen desenler için tarar.
GitHub, 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 kodunuzdaki ve derleme çıktınızdaki kimlik bilgilerini, gizli bilgileri, sertifikaları ve diğer hassas içerikleri algılamak için gizli taramayı kullanır.
Azure DevOps için Microsoft Güvenlik DevOps uzantısının bir parçası olarak gizli dizi taraması çalıştırabilirsiniz.
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 SCA araçlarını kullanma
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. Ayrıca lisans, bağımlılar ve bağımlılıkların yaşı hakkında bilgi sağlar. Çekme isteğinin Dosyalar değişti sekmesinde farklı bir görünüm aracılığıyla bağımlılık değişikliklerini görüntüler.
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 deponun bağımlılık grafiği değiştiğinde Dependabot uyarıları gönderir.
En iyi yöntem: Kapsayıcı görüntüleriniz için SBOM oluşturma
Yazılım malzeme listesi (SBOM), kapsayıcı görüntülerinizi oluşturan bileşenlerin, kitaplıkların ve bağımlılıkların tam envanterini sağlar. BIR SPDX veya CycloneDX bildirimi oluşturmak için CI derlemesi sırasında Microsoft sbom-tool veya Syft gibi SBOM oluşturma araçlarını kullanın.
Tedarik zincirinde aşağı akış güvenlik açığı taramasını ve lisans uyumluluğu izlemeyi etkinleştirmek için Container Registry'de depolanan kapsayıcı görüntülerinize bir SBOM ekleyin.
En iyi yöntem: Dağıtımdan önce yanlış yapılandırmaları algılamak için IaC şablonlarını tarama
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 ve IaC güvenlik açıklarını belirlemek için IaC şablonlarını tarar.
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ülerinizdeki bilinen güvenlik açıklarını size bildirmek için Container Registry ve Amazon Elastic Container Registry'deki (ECR) kapsayıcıları tarar.
Azure İlkesi'ni, Container Registry'de depolanan görüntülerde güvenlik açığı değerlendirmesi yapmak için etkinleştirebilir ve her bulma hakkında ayrıntılı bilgi sağlayabilirsiniz.
En iyi yöntem: Temel görüntü güncelleştirmelerinde otomatik olarak yeni görüntüler oluşturma
- Kapsayıcı Kayıt Defteri Görevleri , kapsayıcı görüntüsü oluştururken temel görüntü bağımlılıklarını dinamik olarak bulur. Bir uygulama görüntüsünün temel görüntüsüne yönelik bir güncelleştirme algıladığında, bu temel görüntüye başvuran uygulama görüntülerini otomatik olarak yeniden oluşturmak için bir derleme görevi yapılandırabilirsiniz.
En iyi uygulama: Kapsayıcı resimlerinizi dijital olarak imzalamak ve yalnızca doğrulanmış resimlere izin vermek amacıyla AKS kümesini yapılandırmak için Container Registry, Key Vault ve notasyonu kullanın.
Key Vault, notasyon aracının kullandığı imzalama anahtarlarını depolar. Key Vault eklentisi (azure-kv), kapsayıcı görüntülerini ve diğer yapıtları imzalamak ve doğrulamak için bu anahtarlara erişir. Azure CLI komutlarını kullanarak bu imzaları Container Registry görüntülerine ekleyebilirsiniz.
İmzalı kapsayıcılar, dağıtımların güvenilir bir kaynaktan geldiğinden ve yapıtların oluşturulduktan sonra değiştirilmediğinden emin olur. İ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.
- Doğrula yapı güvenlik meta verilerini doğrular ve Kubernetes kümelerine dağıtımdan önce ilkeleri uygular. AKS Görüntü Bütünlüğü, podlar kümeye kabul edilmeden önce görüntü imzalarını ve SBOM doğrulamalarını teyit etmek için yerleşik bir doğrulayıcı olan Ratify'ı kullanır.
Dağıtım aşaması
Dağıtım aşamasında geliştiriciler, uygulama operatörleri ve küme operatörü ekipleri birlikte çalışarak CD işlem hatları için doğru güvenlik denetimlerini oluşturur. Bu denetimler, kodun güvenli ve otomatik bir şekilde üretim ortamına dağıtılmasına yardımcı olur.
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, iş birliği yapan kişilerin dalı silip silemeyeceğini veya zorla itip itemeyeceğini tanımlar. Ayrıca, durum denetimlerini geçirme veya doğrusal işleme geçmişi gibi dalına göndermeler için gereksinimleri de ayarlar.
Koruma kurallarını ve gizli bilgileri yapılandırmak için dağıtım ortamlarını kullanın.
Dağıtım işlem hattının iş akışını denetlemek için onaylar ve geçitler özelliğini kullanın. Örneğin, bir üretim ortamına dağıtmadan önce bir güvenlik veya operasyon ekibinin el ile onayını gerektirebilirsiniz.
En iyi yöntem: Güvenli dağıtım kimlik bilgileri
OpenID Connect (OIDC) GitHub Eylem iş akışlarınızın Azure kimlik bilgilerini uzun ömürlü GitHub gizli diziler olarak depolamaya gerek kalmadan Azure'daki kaynaklara erişmesini sağlar.
Güvenlik kimlik bilgilerini Kubernetes kümenize kaydırmak için GitOps ile CI/CD için çekme tabanlı bir yaklaşım kullanın. Bu yaklaşım, dış CI araçlarınızdan kimlik bilgilerini 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 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üsü dağıtımlarını güvenilen kayıt defterleriyle kısıtlamak için Kubernetes için Azure İlkesi'ni yapılandırın.
Ç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ştirin. Kurumsal güvenlik standartlarını izlemek ve uyumluluk sağlamak için Azure İzleyici ve Microsoft Sentinel gibi üretim gözlemlenebilirlik araçlarını kullanın.
En iyi yöntem: Üretim yapılandırmalarınızı otomatik olarak taramak ve izlemek için Bulut için 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 Defender'daki kapsayıcı önerilerini kullanın ( İşlem ve uygulamalar'ın altında). Bulut için Defender, yapılandırma sorunlarını veya güvenlik açıklarını panosunda görüntüler.
Bulut için Defender'ı kullanın ve AKS kümenizin ağ kaynaklarının güvenliğini sağlamaya yardımcı olmak için ağ koruma önerilerini izleyin.
Container Registry'de depolanan görüntüler için bir güvenlik açığı değerlendirmesi gerçekleştirin.
- Container Registry'de çalışan görüntüleri sürekli taramak için Defender for Containers etkinleştirin.
En iyi yöntem: Kubernetes kümelerinizi güncel tutun
Kubernetes sık sık yeni sürümler yayınlar. Kümelerinizi destekli ve güncel tutmak için yaşam döngüsü yönetimi stratejinizi koruyun. AKS, küme yükseltmelerini yönetmek için araçlar sağlar. Bakım pencerelerinin ve yükseltmelerin ne zaman gerçekleştiğini denetlemek için AKS planlı bakım özelliklerini kullanın.
AKS işçi düğümlerini sık sık yükseltin. Azure haftalık işletim sistemi ve çalışma zamanı güncelleştirmeleri yayınlar. Bu güncelleştirmeleri katılımsız mod aracılığıyla otomatik olarak veya daha fazla denetim için Azure CLI aracılığıyla el ile uygulayın.
En iyi yöntem: AKS kümelerinizin güvenliğini sağlamak ve yönetmek için Azure İlkesi'ni kullanma
AKS için Azure İlkesi eklentisini yükledikten sonra, kümenize girişimler veya ilke kümeleri olarak adlandırılan tek tek ilke tanımları veya ilke tanımları grupları uygulayabilirsiniz.
Ayrıcalıklı kapsayıcıların çalışmasını engelleme veya dış IP adreslerini izin verme listesiyle kısıtlama 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 Azure İlkesi'nin bu atamaları zorunlu kıldığı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 Gatekeeper'ı genişletir.
AKS'de ağ ilkelerini kullanarak iş yükü podları arasındaki trafiğin güvenliğini sağlayın.
- Ağ ilkesi altyapısı olarak Cilium tarafından desteklenen Azure CNI kullanın. Cilium eBPF tabanlı bir veri düzlemi kullanır ve Kubernetes yerel ilkelerini, katman 7 ilkesini ve FQDN filtrelemesini destekler.
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. Prometheus için Azure İzleyici yönetilen hizmeti aracılığıyla Prometheus ölçümlerini toplayın, Log Analytics'te kapsayıcı ve platform günlüklerini sorgulayıp Azure Yönetilen Grafana panoları aracılığıyla küme durumunu görselleştirin.
Azure İzleyici, sürekli izlemeyi yayın işlem hatlarına genişletir. Yayınları onaylamak veya geri almak için izleme verilerini kullanın. Azure İzleyici ayrıca güvenlik günlüklerini ve şüpheli etkinliklerle ilgili uyarıları alır.
Azure İzleyici'a AKS örneklerinizi katın ve kümenizin tanılama ayarlarını yapılandırın.
Daha fazla bilgi için bkz. AKS için Azure güvenlik temeli.
En iyi yöntem: Etkin tehdit izleme için Bulut için Defender kullanma
Bulut için Defender, AKS için düğüm düzeyinde (VM tehditleri) ve küme iş yüklerinde etkin tehdit izleme sağlar.
Tüm CI/CD işlem hatlarında kapsamlı görünürlük elde etmek için DevOps için Defender'ı kullanın. Güvenlik ve operatör ekiplerine merkezi bir pano sağlar. Özellikle Azure DevOps ve GitHub gibi birden çok işlem hattı platformlarını kullandığınızda veya genel bulutlarda işlem hatları çalıştırdığınızda bu merkezi görünürlükten faydalanabilirsiniz.
Key Vault için Defender, anahtar kasası hesaplarına erişmeye yönelik olağan dışı ve şüpheli girişimleri algılar ve yapılandırmaya göre yöneticilere uyarı gönderebilir.
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 iyi 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ğlayın. Microsoft Sentinel bu erişimi veri bağlayıcıları aracılığıyla etkinleştirir.
En iyi 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 hangi işlemleri kimin gerçekleştirdiğini belirleyin.
CoreDNS özel ConfigMap'inize belgelenmiş yapılandırma uygulayarak Etki Alanı Adı Sistemi (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. Microsoft Entra Id için tanılama ayarları oluşturun ve denetim ve oturum açma günlüklerini Log Analytics çalışma alanına gönderin. Log Analytics çalışma alanında, devre dışı bırakılan hesaplardan oturum açma girişimleri gibi güvenlik olayları için uyarılar yapılandırın.
En iyi yöntem: Azure kaynaklarınızda tanılamayı etkinleştirme
- Ayrıntılı tanılama ve denetim bilgileri sağlayan platform günlüklerine erişmek için iş yükünüzün tüm kaynaklarında Azure tanılamasını etkinleştirin. Bu günlükleri Log Analytics'e veya güvenlik izleme ve alarm için Microsoft Sentinel gibi bir SIEM çözümüne aktarabilirsiniz.
Contributors
Microsoft bu makaleyi korur. Bu makaleyi aşağıdaki katkıda bulunanlar yazdı.
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 - Azure Desenleri ve Uygulamaları
- John Poole | Sr. Bulut Çözümü Mimarı
- Bahram Rushenas | Çözüm Mimarı
- Abed Sau | Sr. Bulut Çözümü Mimarı
Herkese açık olmayan LinkedIn profillerini görmek için LinkedIn'e oturum açın.