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.
Çözüm fikirleri
Bu makalede bir çözüm fikri açıklanmaktadır. Bulut mimarınız bu mimarinin tipik bir uygulaması için ana bileşenleri görselleştirmeye yardımcı olmak için bu kılavuzu kullanabilir. İş yükünüzün özel gereksinimlerine uygun iyi tasarlanmış bir çözüm tasarlamak için bu makaleyi başlangıç noktası olarak kullanın.
Bu çözüm fikri, kod olarak altyapı (IaC) için GitHub kullanan DevSecOps işlem hattını gösterir. Ayrıca operasyonel mükemmellik, güvenlik ve maliyet iyileştirme için iş akışının nasıl yönetilmeye tabi olduğu da açıklanır.
Terraform, Hashicorp'un ticari markasıdır. Bu işaretin kullanılması herhangi bir onay anlamına gelmez.
Mimari
Bu mimarinin bir Visio dosyasını indirin.
Veri akışı
Aşağıdaki veri akışı önceki diyagrama karşılık gelir:
Geliştiriciler, IaC şablonları gibi altyapı tanımları için GitHub depolarında yapılan kod değişikliklerini denetlemek için test temelli geliştirmeyi kullanır. IaC'nin kalitesini test etmek için birim testlerini, tümleştirme testlerini ve kod olarak ilkeyi (PaC) eşzamanlı olarak geliştirir.
Çekme istekleri GitHub Actions aracılığıyla otomatik birim testlerini tetikler.
Yerel olarak oluşturulan altyapı durumlarını ve planlarını kullanarak IaC'yi test etmek için GitHub Actions iş akışı işlemini yapılandırın.
Kod kalitesi ve güvenlik sorunlarını taramak için GitHub Actions'ı yapılandırın. IaC şablonlarını analiz etmek ve olası güvenlik açıklarını algılamak için kendi özel derlenmiş GitHub CodeQL sorgularınızı veya diğer güvenlik araçlarını kullanarak tarama yapın. Bir güvenlik açığı algılanırsa GitHub, kuruluşa veya depo sahiplerine ve bakımcılara uyarılar gönderir.
IaC aracı, boyutu, örnek sayısını ve diğer özellikleri uyarlayarak her ortam için kaynakları sağlar ve değiştirir. Sağlanan kaynaklarda IaC için otomatik tümleştirme testleri çalıştırabilirsiniz.
Altyapıda el ile güncelleştirme gerektiğinde, atanan yönetici değişiklikleri gerçekleştirmek için erişimini yükseltir. Değişiklik sonrasında yükseltilmiş erişim kaldırılır. IaC'nin mutabakatı için bir GitHub Sorunu da günlüğe kaydetmeniz gerekir. Mutabakat adımları ve yaklaşımları belirli IaC araçlarına bağlıdır.
SecOps, güvenlik tehditlerini ve güvenlik açıklarını sürekli izler ve bu tehditlere karşı savunma sağlar. Azure İlkesi, bulut idaresini zorlar.
Sistem bir anomali algıladığında, çözüm için otomatik olarak bir GitHub Hatası kaydeder.
Bileşenler
GitHub , sürüm denetimi ve işbirliği için bir kod barındırma platformudur. Bu mimaride IaC şablonlarını depolar ve geliştirme, test ve idare iş akışları için merkezi depo görevi görür.
GitHub Actions , iş akışlarının doğrudan GitHub depolarından kod oluşturmasını, test etmesini ve dağıtmasını sağlayan sürekli tümleştirme ve sürekli dağıtım (CI/CD) otomasyon aracıdır. Bu mimaride GitHub Actions, IaC işlem hatları için birim testlerini, güvenlik taramalarını ve altyapı sağlamayı otomatikleştirir.
GitHub Advanced Security, GitHub'da depolanan kod için statik analiz ve güvenlik açığı algılamayı içeren bir güvenlik özellikleri paketidir. Bu mimaride şablonları tarayarak ve yanlış yapılandırmalar veya riskler hakkında uyarılar çıkararak IaC güvenliğini geliştirir.
CodeQL , özel sorguların koddaki güvenlik açıklarını ve yanlış yapılandırmaları algılamasını sağlayan bir anlamsal kod çözümleme altyapısıdır. Bu mimaride CodeQL, dağıtım öncesinde olası güvenlik sorunlarını belirlemek için depo yapıtlarını tarar.
Uyarı
CodeQL, Terraform gibi tüm IaC dosyalarının taranması için yerel olarak destek sağlamaz. Ancak CodeQL IaC Extractor topluluk projesini veya Aqua Security'nin Trivy'i gibi satıcı tarafından sağlanan alternatifleri kullanabilirsiniz.
Terraform , HashiCorp tarafından geliştirilen ve bulut ortamlarında bildirim temelli sağlama sağlayan bir açık kaynak altyapı otomasyon aracıdır. Bu mimaride Terraform, Azure kaynaklarını IaC tanımlarına göre sağlar ve değiştirir ve test temelli geliştirme iş akışlarını destekler.
Bulut için Microsoft Defender , hibrit bulut iş yükleri arasında tehdit koruması sağlayan bir güvenlik yönetimi platformudur. Bu mimaride, güvenlik açıkları için dağıtılan altyapıyı sürekli izler.
Microsoft Sentinel , tehditleri algılamak ve yanıtlamak için yapay zeka ve analiz kullanan buluta özel bir güvenlik bilgileri ve olay yönetimi (SIEM) ve güvenlik düzenleme otomatik yanıtı (SOAR) çözümüdür. Bu mimaride, Microsoft Sentinel altyapı etkinliğini izler ve anomaliler algılandığında uyarılar veya GitHub Sorunları oluşturur.
Azure İlkesi , Azure kaynakları genelinde kuralları ve uyumluluğu zorunlu kılan bir idare hizmetidir. Bu mimaride Azure İlkesi, IaC dağıtımlarını kuruluş ve iş yükü standartlarına göre doğrular ve uyumsuz yapılandırmaları engeller. Örneğin, projeniz tanınmayan bir SKU'su olan bir sanal makine dağıtmak üzereyse Azure İlkesi sizi uyarır ve dağıtımı durdurur.
Azure İzleyici, Azure kaynaklarından performans ölçümlerini ve etkinlik günlüklerini toplayan bir telemetri ve gözlemlenebilirlik platformudur. Bu mimaride Azure İzleyici, altyapıdaki düzensiz koşulları algılar ve önceliklendirme ve düzeltmenin başlayabilmesi için uyarılar tetikler.
Senaryo ayrıntıları
IaC için DevSecOps, Azure Kubernetes Service'te (AKS) uygulama kodu için DevSecOps'a kavramsal olarak benzerdir. Ancak, IaC için sürekli tümleştirme ve sürekli teslimi yönetmek ve otomatikleştirmek için farklı bir işlem hattı ve araç kümesine ihtiyacınız vardır.
IaC'yi benimsediğinizde, kodu geliştirirken otomasyon testleri oluşturmanız önemlidir. Bu testler, iş yükünüz ölçeklendirildiğinde IaC testinin karmaşıklığını azaltır. Terraform durumları ve test temelli geliştirme planları gibi yerel altyapı yapılandırma durumlarını kullanabilirsiniz. Bu yapılandırma durumları gerçek dağıtımlara öykünmektedir. Azure Kaynak Grafı REST API'sini kullanarak gerçek altyapı dağıtımlarında IaC için tümleştirme testleri çalıştırabilirsiniz.
PaC, düzenlemelere ve kurumsal idareye uygun altyapı sunmak için bir diğer önemli yöntemdir. Bulut idaresini otomatikleştirmek için işlem hatlarınıza PaC iş akışları ekleyebilirsiniz.
Geliştirme aşamasının başlarında altyapının güvenliğini sağlamak, dağıtımdan sonra saldırı noktalarını ortaya çıkaran yanlış yapılandırılmış altyapı risklerini azaltır. Altyapı kodundaki güvenlik açıklarını taramak için Snyk veya Aqua Security Trivy gibi statik kod analizi araçlarını GitHub Advanced Security ile tümleştirebilirsiniz. Bu işlem statik uygulama güvenliği testine benzer.
Altyapı dağıtıldığında ve çalışır durumda olduğunda, bulut yapılandırma kaymasının çözülmesi, özellikle üretim ortamlarında zor olabilir.
Üretim ortamları için bulut altyapısını dağıtmak veya değiştirmek için ayrılmış hizmet sorumluları ayarlayın. Ardından ortamın el ile yapılandırılmasına izin veren diğer tüm erişimi kaldırın. El ile yapılandırmalara ihtiyacınız varsa, belirlenen yöneticinin erişimini yükseltin ve değişiklik yapıldıktan sonra yükseltilmiş erişimi kaldırın. Geliştiricilerin değişiklikleri uzlaştırabilmesi için Azure İzleyici'yi bir GitHub Sorunu oluşturacak şekilde yapılandırmanız gerekir. Mümkünse el ile yapılandırmadan kaçının.
Güvenlik olaylarını önlemeye yardımcı olmak için bulut ortamını tehditlere ve güvenlik açıklarına karşı sürekli izlemek önemlidir. Anormal trafiği algılamak için tehdit koruması ve SIEM araçlarını kullanabilirsiniz. Bu araçlar güvenlik yöneticilerini otomatik olarak uyarır ve bir GitHub Sorunu oluşturur.
Olası kullanım örnekleri
Contoso adlı kurgusal şirket için çoklu bulut stratejisi kullanan IaC geliştiricilerinden oluşan merkezi bir ekibin parçasısınız. Dağıtımların güvenliğini ve kalitesini sağlamaya yardımcı olmak için IaC için DevSecOps kullanarak bulut altyapısını yeni bir Azure giriş bölgesine dağıtmak istiyorsunuz. Ayrıca altyapıda yapılan tüm değişiklikleri izlemek ve denetlemek istiyorsunuz.
Katkıda Bulunanlar
Microsoft bu makaleyi korur. Bu makaleyi aşağıdaki katkıda bulunanlar yazdı.
Asıl yazarlar:
- Vito Chin | Üst Düzey Bulut Çözümü Mimarı
- Yee Shian Lee | Üst Düzey Bulut Çözümü Mimarı
Nonpublic LinkedIn profillerini görmek için LinkedIn'de oturum açın.
Sonraki adımlar
- DevSecOps için kullanılacak tercih edilen IaC araçlarını göz önünde bulundurun ve bunların IaC güvenlik taraması yapmak için uzantılarla birlikte geldiğinden emin olun.
- Azure'da tercih edilen IaC dili veya şablonları, Bicep veya Terraform'ı göz önünde bulundurun.
- Kuruluşlar için GitHub kılavuzu
- Azure'a bağlanmak için GitHub Actions'ı kullanma
- GitHub Eylemleri
- Sıfır Güven uyumluluğu ile ne demek istiyoruz?
- Azure Resource Manager şablonları için AzOps
- Terraform giriş bölgeleri modülü ve çözümleri
- Bicep kullanarak IaC'ye giriş