Uzun zamandır vakit harcadığım hizmetlerden bir kaçı olan Azure Front Door ve Application Gateway ikilisinden bu yazımızda bahsedeceğim. Temel anlamıyla bu yazı serisinde hizmetlerin çok detaylarına girmeyi düşünmüyorum fakat avantajlarını ve dezavantajlarını görebileceğimiz bir yazı seri olacak. Seri sonunda en azından sizlere bu servislerden hangisini ne için seçmeniz gerektiğini aktaran bir sonuca kavuşturmayı hedefliyorum. Bildiğiniz gibi şirket/organizasyon içerisinde servisleriniz var bunlar; http veya https olarak public bir şekilde hizmet verebilen (IaaS, PaaS farketmez.), Function ve Web API vs hizmetleriniz olduğu düşünelim ve tüm bu servislerini Internet ortamına açmak istediğimiz zaman güvenlik kriterlerini sağlayan özellikle Web Application Firewall özelliğine sahip cihazlar üzerinden Internet dünyası ile buluşturup müşterilerimizi hizmet vermeyi hedeflemekteyiz. En temel haliyle Web Application Firewall hizmeti sunan cihazlar/servisler bizlere bir web uygulamasına giden ve uygulamadan gelen tüm HTTP trafiğini filtreler, inceler ve bloklar. Bir Web Application Firewall (WAF) ürününün normal bir güvenlik duvarından farkı, sıradan güvenlik duvarları sunucular arasında bir güvenlik geçidi olarak hizmet verirken, WAF ürününün istediği web uygulamalasına ait içeriği filtreleyebilmesidir.HTTP trafiğini inceleyerek, SQL Enjeksiyonu, Siteler Arası Betik Çalıştırma (XSS) ve güvenlik yanlış yapılandırmaları gibi güvenlik zafiyetlerinden kaynaklanan saldırıları engelleyebilmektedir. Bu servisleri/appliance seçerken karışımıza çıkan bir çok seçenek ve sorular ile karışlacaksınız özellikle güvenlik ekibinden gelen soruların başında 'OWASP' desteği var mı? – Bu da nedir derseniz eğer kısaca; Open Source Web Application Security Project(OWASP), web uygulaması güvenliği alanında serbestçe erişilebilir makale kaynakları, metodolojiler, belgeler, araçlar ve teknolojiler üreten çevrimiçi bir topluluktur. Bu tarz servislerin, OWASP Community üzerinden sununulan standard güvenlik zafiyeti içerebilecek tüm standardları izlemesi gerçekten oldukça önem teşik etmektedir. Daha fazla detay öğrenmek istiyorsanız lütfen şu sayfa üzerinen bir göz atın derim. Konuya bağlı kalarak, Web Application Firewall hizmeti, günümüzde daha çok güvenlik ekibi tarafından yönetilmektedir. Fakat, Scrum & Agile gibi proje yönetim metodları ile çalışıyor ve her Sprint sonu release yapmak istiyorsanız ve bunun detayı Güvenlik tarafındaki ekibe dokunuyorsa işte o zaman işiniz oldukça zorlaşıyor. Buraya kadar anlattıklarım tamamen, ITSM süreçleri ve yaşadığım deneyimler sonrası çok sıkıcı problemler. Agile ve Scrum gibi proje metodolojileri uyguladıktan sonra yapmak istediğiniz release sonrası çok hızlı bir şekilde production ortama geçerken Firewall veya Web Application Firewall gibi hizmetlerde yapılması gerken değişiklikler olduğu zaman gerçekten sancılı bir sürece döndüğünü göreceksiniz.
Hizmetlere genel bakış
Azure Application Gateway, bize servis olarak application delivery controller (ADC) sağlar. Internet dünyasına açmak istediğiniz uygulamalarınız için Layer 7 seviyesinde load-balance yetenekleri sunar. Azure Application Gateway, OWASP desteği olan olası güvenlik açıklarından merkezi bir şekilde korunmasını sağlayan bir Web Application Firewall hizmeti sunar. Web Application Firewall içerisinde Managed Rules detaylarında OWASP tarafından tanımlanan hazır kural dizilerini görebilirsiniz. Ayrıca yine talep ederseniz, kendisine ait özel web application firewall kuralarınızı yazabilirsiniz. Azure Application Gateway ile Web Application Firewall özelliği aktif ettiğiniz zaman, Azure Security Center ile entegre ve detaylı raporlamalar alabilirsiniz.
Azure Front Door, uygulamalarınız için Layer 7 seviyesinde load-balance yetenekleri sunan bir Application Delivery Network hizmetidir. Son derece ölçeklenebilir, global olarak dağıtılmış uygulama ve içerikleriniz içindir. Azure Front Door ile Web Application Firewall entegre edildiğinde OWASP'ın en iyi 10 kategorisinde tanımlanan genel tehditlerden korur. Microsoft'un global ağını kullanarak uygulamanıza bağlanmak için Front Door POP'larından faydalanırsınız ve performansı korurken daha hızlı ve güvenli erişirsiniz. Ayrıca Microsoft bizler paylaştığı bilgi dahilinde, Bing, Office 365, Xbox Live, MSN, LinkedIn ve Azure DevOps gibi hizmetlerde Azure FrontDoor üzerinden hizmet vermektedirler.
Performans farklılıkları
Azure Application Gateway, karşımıza Tier - v1 ve v2 olarak iki farklı sürümde sürülmektedir. Azure Application Gateway aslında arka tarafında yatan teknoloji belki daha önce aşina olduğunuz IIS – Application Request Routing rolünü Microsoft'un bize servis olarak sunduğunu direk anlayabilirsiniz. Azure Portalı üzerinden bir Application Gateway dağıtmak istediğiniz zaman, size bir takım bilgiler soracak ve bunlar başında aslında 'Tier' olarak çağırdığımız, 'Standard ve Standard_v2' olanları arasında farklılıklar. Açıkcası kendi deneyimlerimde her iki tier üzerinde uzanca testler yapmış biri olarak, Standard-SKU olanı kullandığımda bir public ip tahsis ettiğimde işkenceye dönmesi ve Standard_v2 çokta derin bir değişiklik olmadığını söyleyebilirim. Bu anlattıklarım, Infrastructure as Code mimarisinde deployment süreçlerinin uzamasını istemediğimiz için çok sancılı bir duruma dönüyordu. Sadece yapmak istediğiniz uygulamanız için yeni bir front-endname oluşturup bunu Internet açmak için Azure Application Gateway tarafında yaptığınız değişikliğin 10-15 dakika alması gerçekten benim açımdan kabul edilemez bir durum idi. Application Gateway yeni tier'da (Standard_v2) bu biraz daha düzelsede, eksi taraflarını Microsoft kapatmak gözüküyor, Standard_v1 olanda henüz bir auto scaling yok iken yani özetle Instance olarak iki adet deploy ettiğiniz zaman, bunu kullanmasanızda ödüyorsunuz, Standard_v2 olan versiyonda ise auto-scaling sayesinde trafik anında Instance sayısı yükselir ise sadece o an aralığında ödemeye devam ediyorsunuz. Bu benim için oldukça kulağa hoş geliyor ama şahsi düşüncem hala yeterli değil.
Azure Front Door, temel anlamıyla Global bir servis olduğu için, siz herhangi bir auto-scale veya avability gibi konularla uğraşmıyorsunuz. Azure üzerinde her sahip olduğunuz Front Door Profile olarak çağrılır.
Sonuç
Virtual Network içerisinden private bir network özelinde yönetmek istiyorsanız, Azure Application Gateway bu tarz hizmetler için biçilmiş kaftan fakat bir o kadarda hantal, Azure Front Door ise Microsoft'un diğer servislerinde kullanmakta olduğu Edge Network üzerinden döndürdüğü ve WAF hizmeti barındırabildiği ve ancak network içerisine dahil olmadığı bir servis. Benim şahsi fikrim, Web App, Logic App, Function App gibi hizmetleri direk dışarı açmanız yerine önüne Front-Door koyarak WAF hizmetini aktif ederek çok basit bir şekilde uygulamalarınızı lock-down edebilirsiniz. Bu bahsettiğim hizmetler zaten network içerisine dahil olmayan senaryolarında Front-Door seçmeniz en mantıklısı gözüküyor.