hizmet erişim kısıtlamalarını Azure Uygulaması
App Service'teki erişim kısıtlamaları, trafiği engellemenize ve filtrelemenize olanak sağlayan bir güvenlik duvarına eşdeğerdir. Erişim kısıtlamaları yalnızca gelen erişim için geçerlidir. App Service fiyatlandırma katmanlarının çoğu, uygulamaya başka bir giriş noktası olan özel uç noktalar ekleme özelliğine de sahiptir. Erişim kısıtlamaları, özel uç nokta üzerinden giren trafiğe uygulanmaz. App Service'te barındırılan tüm uygulamalar için varsayılan giriş noktası genel kullanıma açıktır. Tek istisna, varsayılan giriş noktasının sanal ağın içinde olduğu ILB App Service Ortamı barındırılan uygulamalardır.
Nasıl çalışır?
Trafik App Service'e ulaştığında, önce trafiğin özel bir uç noktadan mı geldiğini yoksa varsayılan uç noktadan mı geldiğini değerlendirir. Trafik özel bir uç nokta üzerinden gönderilirse, herhangi bir kısıtlama olmadan doğrudan siteye gönderir. Özel uç noktalara yönelik kısıtlamalar ağ güvenlik grupları kullanılarak yapılandırılır.
Trafiği varsayılan uç nokta (genellikle genel uç nokta) üzerinden gönderirseniz, trafik önce uygulama erişim düzeyinde değerlendirilir. Burada erişimi etkinleştirebilir veya devre dışı bırakabilirsiniz. Uygulama erişimini etkinleştirirseniz, trafik site erişim düzeyinde değerlendirilir. Herhangi bir uygulama için hem ana siteye hem de gelişmiş araçlar sitesine (scm veya kudu sitesi olarak da bilinir) sahip olursunuz.
Her site için bir dizi erişim kısıtlama kuralı yapılandırma seçeneğiniz vardır. Erişim kısıtlama kuralları öncelik sırasına göre değerlendirilir. Bazı kurallar aynı önceliğe sahipse, sıralamadan önce Azure Resource Manager API'sinden ve Azure portalından döndürüldüklerinde listelendikleri sırayla değerlendirilir. Hiçbir kural eşleştirilmemişse davranışı da belirtebilirsiniz. Aşağıdaki bölümlerde ayrıntılara yer velanmıştır.
Uygulama erişimi
Uygulama erişimi, erişimin varsayılan (genel) uç nokta üzerinden kullanılabilir olup olmadığını yapılandırmanıza olanak tanır. Bu davranışı veya Enabled
olacak Disabled
şekilde yapılandırabilirsiniz. Erişim etkinleştirildiğinde, belirli sanal ağlardan ve IP adreslerinden erişimi denetlemek için Site erişim kısıtlama kuralları ekleyebilirsiniz.
Ayar ayarlanmadıysa (özelliği şudur null
), varsayılan davranış, erişimi devre dışı bırakmak için davranışı değiştiren özel bir uç nokta olmadığı sürece erişimi etkinleştirmektir. Azure portalında özellik ayarlanmadığında radyo düğmesi de ayarlanmaz ve ardından varsayılan davranışı kullanırsınız.
Azure Resource Manager API'sinde uygulama erişimini denetleen özellik olarak adlandırılır publicNetworkAccess
. İç yük dengeleyici (ILB) App Service Ortamı için, uygulamaların varsayılan giriş noktası her zaman sanal ağ içindedir. Uygulama erişiminin (publicNetworkAccess
) etkinleştirilmesi uygulamalara doğrudan genel erişim vermez; bunun yerine, App Service Ortamı iç IP adresine karşılık gelen varsayılan giriş noktasından erişime izin verir. ILB App Service Ortamı uygulama erişimini devre dışı bırakırsanız, uygulamalara yalnızca tek tek uygulamalara eklenen özel uç noktalar üzerinden erişebilirsiniz.
Not
Linux siteleri için özellik tetikleyici uygulamasında yapılan publicNetworkAccess
değişiklikler yeniden başlatılır.
Site erişimi
Site erişim kısıtlamaları, gelen istekleri filtrelemenize olanak sağlar. Site erişim kısıtlamaları, öncelik sırasına göre değerlendirilen izin verme ve reddetme kurallarının listesini oluşturmanıza olanak sağlar. Azure ağındaki ağ güvenlik grubu (NSG) özelliğine benzer.
Site erişim kısıtlaması, uygulayabileceğiniz çeşitli kural türlerine sahiptir:
Eşleşmeyen kural
Hiçbir kural eşleşmediğinde davranışı yapılandırabilirsiniz (varsayılan eylem). Her zaman kural koleksiyonunun son kuralı olarak görünen özel bir kuraldır. Ayar yapılandırılmamışsa, eşleşmeyen kural davranışı yapılandırılmış kurallara bağlıdır. Kural yoksa, eşleşmeyen kural davranışı tüm erişime izin vermektir, ancak bir veya daha fazla kural varsa, tüm erişimi reddetmek için örtük olarak değişir. Bu davranışı, tanımlı kurallardan bağımsız olarak erişime izin verecek veya erişimi reddedecek şekilde açıkça yapılandırabilirsiniz.
IP tabanlı erişim kısıtlama kuralları
IP tabanlı erişim kısıtlamaları özelliği, uygulamanıza ulaşmak için kullanılabilecek IP adreslerini kısıtlamak istediğinizde yardımcı olur. Hem IPv4 hem de IPv6 desteklenir. Bu özellik için bazı kullanım örnekleri:
- İyi tanımlanmış bir dizi adresten uygulamanıza erişimi kısıtlayın.
- Dış yük dengeleme hizmetinden veya bilinen çıkış IP adreslerine sahip diğer ağ gereçlerinden gelen trafiğe erişimi kısıtlayın.
Bu özelliği etkinleştirmeyi öğrenmek için bkz . Erişim kısıtlamalarını yapılandırma.
Not
IP tabanlı erişim kısıtlama kuralları yalnızca uygulamanız bir App Service Ortamı olduğunda sanal ağ adres aralıklarını işler. Uygulamanız çok kiracılı hizmetteyse trafiği sanal ağınızdaki alt ağları seçecek şekilde kısıtlamak için hizmet uç noktalarını kullanmanız gerekir.
Hizmet uç noktalarını temel alan erişim kısıtlama kuralları
Hizmet uç noktaları, kaynak adresin seçtiğiniz bir alt ağ kümesinden gelmesi için uygulamanıza gelen erişimi kilitlemenize olanak sağlar. Bu özellik IP erişim kısıtlamalarıyla birlikte çalışır. Hizmet uç noktaları uzaktan hata ayıklama ile uyumlu değildir. Uygulamanızla uzaktan hata ayıklama kullanmak istiyorsanız, istemciniz hizmet uç noktalarının etkinleştirildiği bir alt ağda olamaz. Hizmet uç noktalarını ayarlama işlemi, IP erişim kısıtlamalarını ayarlama işlemine benzer. Sanal ağlarınızdaki genel adresleri ve alt ağları içeren erişim kurallarının izin verme/reddetme listesini oluşturabilirsiniz.
Not
Hizmet uç noktalarını temel alan erişim kısıtlama kuralları, özel uç nokta yapılandırılmış uygulamalarda veya IP tabanlı SSL (Uygulama tarafından atanan adres) kullanan uygulamalarda desteklenmez.
Uygulamanızla hizmet uç noktalarını yapılandırma hakkında daha fazla bilgi edinmek için bkz. hizmet erişim kısıtlamaları Azure Uygulaması.
Herhangi bir hizmet uç noktası kaynağı
Test veya belirli senaryolarda, hizmet uç noktası etkin herhangi bir alt ağdan gelen trafiğe izin vekleyebilirsiniz. Bunu, IP aralığı yerine "AnyVnets" metniyle IP tabanlı bir kural tanımlayarak yapabilirsiniz. Portalda bu kuralları oluşturamazsınız, ancak var olan BIR IP tabanlı kuralı değiştirebilir ve IP adresini "AnyVnets" dizesiyle değiştirebilirsiniz.
Hizmet etiketlerini temel alan erişim kısıtlama kuralları
Azure hizmet etiketleri , Azure hizmetleri için iyi tanımlanmış IP adresi kümeleridir. Hizmet etiketleri, çeşitli Azure hizmetlerinde kullanılan IP aralıklarını gruplar ve genellikle kapsamı da belirli bölgelere göre daha kapsamlıdır. Bu tür bir kural, belirli Azure hizmetlerinden gelen trafiği filtrelemenize olanak tanır.
Etiketlerin tam listesi ve daha fazla bilgi için hizmet etiketi bağlantısını ziyaret edin.
Bu özelliği etkinleştirmeyi öğrenmek için bkz . Erişim kısıtlamalarını yapılandırma.
Çok kaynaklı kurallar
Çoklu kaynak kuralları, tek bir kuralda en fazla sekiz IP aralığı veya sekiz Hizmet Etiketi birleştirmenizi sağlar. 512'den fazla IP aralığınız varsa çok kaynaklı kurallar kullanabilirsiniz. Birden çok IP aralığının tek bir http üst bilgi filtresiyle birleştirildiği mantıksal kurallar oluşturmak istiyorsanız, çok kaynaklı kuralları da kullanabilirsiniz.
Çok kaynaklı kurallar, tek kaynaklı kuralları tanımladığınız gibi tanımlanır, ancak her aralık virgülle ayrılmış olarak tanımlanır.
Portalda bu kuralları oluşturamazsınız, ancak mevcut bir hizmet etiketini veya IP tabanlı kuralı değiştirebilir ve kurala daha fazla kaynak ekleyebilirsiniz.
Site erişim kısıtlama kuralları için Http üst bilgi filtrelemesi
Herhangi bir kural için, türü ne olursa olsun http üst bilgi filtrelemesi ekleyebilirsiniz. Http üst bilgi filtreleri, gelen isteği daha fazla incelemenize ve belirli http üst bilgi değerlerine göre filtrelemenize olanak tanır. Her üst bilgi, kural başına en fazla sekiz değere sahip olabilir. Desteklenen http üst bilgileri aşağıda listelenmektedir:
- X-forwarded-For. Ara sunucu üzerinden bağlanan bir istemcinin kaynak IP adresini tanımlamak için standart üst bilgi . Geçerli IP adreslerini kabul eder.
- X İletilmiş Ana Bilgisayar. İstemci tarafından istenen özgün konağı tanımlamak için standart üst bilgi . Uzunluğu 64 karaktere kadar olan tüm dizeleri kabul eder.
- X-Azure-FDID. Ters proxy örneğini tanımlamak için özel üst bilgi . Azure Front Door örneği tanımlayan bir guid gönderir, ancak belirli bir örneği tanımlamak için Microsoft dışı proxy'ler için de kullanılabilir. Uzunluğu 64 karaktere kadar olan tüm dizeleri kabul eder.
- X-FD-HealthProbe. Ters ara sunucu sistem durumu araştırmasını tanımlamak için özel üst bilgi . Azure Front Door, bir durum yoklaması isteğini benzersiz olarak tanımlamak için "1" gönderir. Üst bilgi, Microsoft dışı proxy'ler için sistem durumu yoklamalarını tanımlamak için de kullanılabilir. Uzunluğu 64 karaktere kadar olan tüm dizeleri kabul eder.
Http üst bilgi filtrelemesi için bazı kullanım örnekleri şunlardır:
- Ana bilgisayar adını ileten ara sunuculardan gelen trafiğe erişimi kısıtlama
- Hizmet etiketi kuralı ve X-Azure-FDID üst bilgi kısıtlaması ile belirli bir Azure Front Door örneğine erişimi kısıtlama
Tanılama günlüğüne kaydetme
App Service, Azure İzleyici'ye çeşitli günlük kategorileri gönderebilir. Bu kategorilerden biri çağrılır IPSecurity Audit logs
ve erişim kısıtlamalarındaki etkinlikleri temsil eder. Bir kuralla eşleşen tüm istekler (eşleşmeyen kural hariç), hem izin ver hem de reddet günlüğe kaydedilir ve erişim kısıtlamalarının yapılandırmasını doğrulamak için kullanılabilir. Günlük özelliği, kural yapılandırması sorunlarını giderirken de güçlü bir araçtır.
Gelişmiş kullanım örnekleri
Yukarıdaki özellikleri birleştirmek, aşağıdaki bölümlerde açıklanan bazı belirli kullanım örneklerini çözmenize olanak sağlar.
Tek bir IP adresini engelleme
Belirli bir veya daha fazla IP adresini reddetmek/engellemek istiyorsanız, IP adreslerini reddetme kuralları olarak ekleyebilir ve eşleşmeyen tüm trafiğe izin verecek şekilde eşleşmeyen kuralı yapılandırabilirsiniz.
Gelişmiş araçlar sitesine erişimi kısıtlama
Scm veya kudu olarak da bilinen gelişmiş araçlar sitesinde yapılandırabileceğiniz tek bir kural koleksiyonu vardır. Bu site için eşleşmeyen kuralı da yapılandırabilirsiniz. Bir ayar, ana site için yapılandırılan kuralları kullanmanıza olanak tanır. Belirli gelişmiş araç sitesi özelliklerine seçmeli olarak erişime izin veremezsiniz. Örneğin, gelişmiş araçlar sitesindeki yalnızca Web İşleri yönetim konsoluna seçmeli olarak erişime izin veremezsiniz.
Özel uç nokta üzerinden dağıtma
Genel olarak erişilebilen bir siteniz olabilir, ancak dağıtım sisteminiz bir sanal ağdadır. Özel uç nokta ekleyerek dağıtım trafiğini özel tutabilirsiniz. Daha sonra genel uygulama erişiminin etkinleştirildiğinden emin olmanız gerekir. Son olarak, gelişmiş araçlar sitesi için eşleşmeyen kuralı reddetmek üzere ayarlamanız gerekir ve bu kural bu uç noktaya yönelik tüm genel trafiği engeller.
Özel uç nokta korumalı siteye dış iş ortağı erişimine izin ver
Bu senaryoda, sitenize bir özel uç nokta üzerinden erişiyor ve özel uç nokta üzerinden dağıtıyorsunuz. Siteyi test etmek için geçici olarak bir dış iş ortağı davet edebilirsiniz. Genel uygulama erişimini etkinleştirerek bunu yapabilirsiniz. İş ortağının istemcisini tanımlamak için bir kural (IP tabanlı) ekleyin. Hem ana hem de gelişmiş araçlar sitesi için eşleşmeyen kurallar eylemini reddedecek şekilde yapılandırın.
Belirli bir Azure Front Door örneğine erişimi kısıtlama
Azure Front Door'dan uygulamanıza gelen trafik, hizmet etiketinde tanımlanan iyi bilinen bir IP aralığı kümesinden AzureFrontDoor.Backend
kaynaklanır. Hizmet etiketi kısıtlama kuralı kullanarak, trafiği yalnızca Azure Front Door'tan kaynaklanan şekilde kısıtlayabilirsiniz. Trafiğin yalnızca sizin örneğinizden kaynaklanmasını sağlamak için gelen istekleri Azure Front Door'un gönderdiği X-Azure-FDID adlı benzersiz http üst bilgisine göre daha fazla filtrelemeniz gerekir. Front Door Kimliğini portalda bulabilirsiniz.
Sonraki adımlar
Not
Sitenize genel erişimi engelleyen erişim kısıtlama kuralları, günlük akışı gibi hizmetleri de engelleyebilir. Bunlara ihtiyacınız varsa, kısıtlamalarınızda App Service'inizin IP adresine izin vermeniz gerekir.