Bu yazımızda Azure App Service outbound ip adresinin nasıl sabitlenebileceğinden bahsedeceğim. Çoğumuzun bildiği gibi Azure app service .Net, .Net Core, PHP, Java, Ruby, Go gibi birçok dilde yazılmış web ve mobil uygulamalarınızı çalıştırabileceğiniz PAAS bir servis.
App service üzerinde inbound yani domain ya da servis ip adresiniz 1 adet olsa da, outbound yani çıkış için, app service size bir ip havuzu veriyor ve defaultta uygulamanızdan çıkan istekler bu ip adreslerinden herhangi biri üzerinden geliyor. Bu ip havuzunu app service’iniz içerisinde network ya da Properties menülerinden görüntüleyebilirsiniz. Daha yüksek SKU servis planlarda bu çıkış ip havuzu 30’a kadar yükselebiliyor.
Burada koşan uygulamalarınız bazı durumlarda farklı bir api servis ya da firewall arkasında çalışan farklı bir uygulama ile konuşabilir. Fakat tüm ip adreslerini white liste eklemek ya da her bir ip adresi için ayrı ayrı izin vermek çok uğraştırıcı bir işlem.
Outbound IP Addresleri Nasıl Sabitleyebiliriz?
Bunun için Azure NAT gateways servsini kullanacağız. App service outbound trafiğiniz NAT gateway üzerinden geçirerek bu şekilde tüm isteklerimizi tek bir ip adresi üzerinden geçrimemiz mümkün. İlk olarak network address translation yani (NAT) gateway kurulumu ile işleme başlıyoruz. Bunun için aynı region ve aynı abonelik üzerinde kurulum yapmanız şart.
ikici adımda NAT GW‘imize sabit bir public ip adres atıyoruz. Bu ip adresi standart SKU olduğu için 3$ gibi bir ücreti olacaktır. Azure Pricing Calculator
ip adresimizi oluşturduktan sonra, subnet bölümünden yeni bir subnet yaratabilir ya da diğer servisler ile konuşan bir subnet’iniz var ise, bunu tercih edebilirsiniz. Sadece adres space’lerin Overlap olmamasına dikkat ediyoruz ve review and create diyerek NatGateway‘imizi oluşturuyoruz.
Ardından outbound ip adresimizi sabitleyeceğimiz app service’e gelerek network sekmesinden Vnet Integration linkine gidiyoruz.
Vnet integration bölümnünden daha önce Nat Gateway için oluşturduğumuz subneti ve virtual network’u seçiyoruz.
Bir sonraki adımda Route All seçeneğiniz disable ediyoruz, bunu kurmuş olduğumuz App Service configraton’undan yapacağız. Azure app service’imizin configuration menüsünden Application settings’e gelerek aşağıdaki değeri ekliyioruz.
1 | WEBSITE_VNET_ROUTE_ALL = 1 |
ip adresiminizin test işlemi için yine app service üzerinden Advanced Tools bölümünden Kudu aracına gelip DebugConsole’a geçiyoruz. Aşağıdaki komut ile sabitlediğimiz IP adresini kontrol edebilirsiniz.
1 | curl -s https://api.ipify.org<span class="jquery-console-cursor"> </span> |
Umarım faydalı bir yazı olmuştur, farklı bir makalede görüşmek dileği ile.