Azure App Service erişim kısıtlamalarını ayarlama
Not
1 Haziran 2024'den itibaren, yeni oluşturulan tüm App Service uygulamaları adlandırma kuralını <app-name>-<random-hash>.<region>.azurewebsites.net
kullanarak benzersiz bir varsayılan ana bilgisayar adı oluşturma seçeneğine sahip olacaktır. Mevcut uygulama adları değişmeden kalır.
Örnek: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Diğer ayrıntılar için App Service Kaynağı için Benzersiz Varsayılan Ana Bilgisayar Adı'na bakın.
Erişim kısıtlamalarını ayarlayarak uygulamanıza ağ erişimini denetleyen, önceliğe göre sıralanmış bir izin verilenler/reddedilenler listesi tanımlayabilirsiniz. Listede IP adresleri veya Azure Sanal Ağ alt ağları bulunabilir. Bir veya daha fazla girdi olduğunda, listenin sonunda örtük bir reddetmenin tümü vardır. Erişim kısıtlamaları hakkında daha fazla bilgi edinmek için erişim kısıtlamalarına genel bakış bölümüne gidin.
Erişim kısıtlaması özelliği Azure App Service'de barındırılan tüm iş yüklerinde çalışır. İş yükleri web uygulamalarını, API uygulamalarını, Linux uygulamalarını, Linux özel kapsayıcılarını ve İşlevleri içerebilir.
Uygulamanıza bir istek geldiğinde FROM adresi erişim kısıtlama listenizdeki kurallara göre değerlendirilir. FROM adresi için hizmet uç noktalarıyla Microsoft.Web
yapılandırılmış bir alt ağdaysa, kaynak alt ağ erişim kısıtlama listenizdeki sanal ağ kurallarıyla karşılaştırılır. Listedeki kurallara göre adres erişimine izin verilmiyorsa hizmet, HTTP 403 durum koduyla yanıt verir.
Erişim kısıtlama özelliği, kodunuzun çalıştığı çalışan konaklarının yukarı akışı olan App Service ön uç rollerinde uygulanır. Bu nedenle, erişim kısıtlamaları etkili bir şekilde ağ erişim denetimi listeleridir (ACL'ler).
Azure sanal ağından web uygulamanıza erişimi kısıtlama özelliği hizmet uç noktalarını kullanır. Hizmet uç noktalarıyla, seçili alt ağlardan çok kiracılı bir hizmete erişimi kısıtlayabilirsiniz. App Service Ortamında barındırılan uygulamalara yönelik trafiği kısıtlamak için çalışmaz. App Service Ortamındaysanız, uygulamanıza erişimi denetlemek için IP adres kuralları uygulayabilirsiniz.
Not
Hizmet uç noktalarının hem ağ tarafında hem de etkinleştirildiği Azure hizmeti için etkinleştirilmesi gerekir. Hizmet uç noktalarını destekleyen Azure hizmetlerinin listesi için bkz. hizmet uç noktalarını Sanal Ağ.
Portalda erişim kısıtlama kurallarını yönetme
Uygulamanıza erişim kısıtlama kuralı eklemek için aşağıdaki adımları uygulayın:
Azure Portal’ında oturum açın.
Erişim kısıtlamaları eklemek istediğiniz uygulamayı seçin.
Soldaki menüde Ağ'ı seçin.
Ağ sayfasındaki Gelen trafik yapılandırması'nın altında Genel ağ erişimi ayarını seçin.
Erişim Kısıtlamaları sayfasında, uygulamanız için tanımlanan erişim kısıtlama kurallarının listesini gözden geçirin.
Listede uygulamaya uygulanan tüm geçerli kısıtlamalar görüntülenir. Uygulamanızda sanal ağ kısıtlaması varsa, tabloda hizmet uç noktalarının Microsoft.Web için etkinleştirilip etkinleştirilmediği gösterilir. Uygulamanızda hiçbir kısıtlama tanımlanmamışsa ve eşleşmeyen kuralınız Reddet olarak ayarlanmamışsa, uygulamaya her yerden erişilebilir.
İzinler
Azure portalı, CLI aracılığıyla veya site yapılandırma özelliklerini doğrudan ayarlarken erişim kısıtlamalarını yapılandırmak için alt ağda veya daha yüksek bir düzeyde aşağıdaki Rol tabanlı erişim denetimi izinleri gereklidir:
Eylem | Açıklama |
---|---|
Microsoft.Web/sites/config/read | Web Uygulaması yapılandırma ayarlarını alma |
Microsoft.Web/sites/config/write | Web App'in yapılandırma ayarlarını güncelleştirme |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* | Depolama hesabı veya SQL veritabanı gibi kaynakları bir alt ağa birleştirir |
Microsoft.Web/sites/write** | Web Uygulaması ayarlarını güncelleştirme |
*yalnızca bir sanal ağ (hizmet uç noktası) kuralı eklerken gereklidir.
**yalnızca Azure portalı aracılığıyla erişim kısıtlamalarını güncelleştiriyorsanız gereklidir.
Hizmet uç noktası tabanlı bir kural ekliyorsanız ve sanal ağ uygulamadan farklı bir abonelikteyse, sanal ağa sahip aboneliğin kaynak sağlayıcısı için Microsoft.Web
kayıtlı olduğundan emin olmanız gerekir. Bu belgeleri izleyerek sağlayıcıyı açıkça kaydedebilirsiniz, ancak bir abonelikte ilk web uygulamasını oluştururken de otomatik olarak kaydolabilirsiniz.
Erişim kısıtlama kuralı ekleme
Uygulamanıza erişim kısıtlama kuralı eklemek için Erişim Kısıtlamaları sayfasında Ekle'yi seçin. Kural yalnızca kaydettikten sonra etkilidir.
Kurallar, Öncelik sütunundaki en düşük sayıdan başlayarak öncelik sırasına göre uygulanır. Eşleşmeyen kuralı yapılandırmazsanız, tek bir kural bile ekledikten sonra örtük reddetmenin tümü geçerli olur.
Erişim Kısıtlaması Ekle bölmesinde, bir kural oluşturduğunuzda aşağıdakileri yapın:
Eylem'in altında İzin Ver veya Reddet'i seçin.
İsteğe bağlı olarak, kuralın adını ve açıklamasını girin.
Öncelik kutusuna bir öncelik değeri girin.
Tür açılan listesinde kural türünü seçin. Farklı kural türleri aşağıdaki bölümlerde açıklanmıştır.
Kuralı listeye eklemek için kurala özgü girişi yazdıktan sonra Kural ekle'yi seçin.
Son olarak Erişim Kısıtlamaları sayfasında Geri kaydet'i seçin.
Not
- 512 erişim kısıtlama kuralı sınırı vardır. 512'den fazla erişim kısıtlama kuralına ihtiyacınız varsa Azure Front Door, Azure Uygulaması Gateway veya alternatif bir WAF gibi tek başına bir güvenlik ürünü yüklemenizi öneririz.
IP adresi tabanlı kural ayarlama
Yukarıdaki bölümde özetlenen yordamı izleyin, ancak aşağıdaki eklemeyle:
- 4. adım için Tür açılan listesinde IPv4 veya IPv6'yı seçin.
Hem IPv4 hem de IPv6 adresleri için Sınıfsız Etki Alanları Arası Yönlendirme (CIDR) gösteriminde IP Adresi Bloğunu belirtin. Adres belirtmek için 1.2.3.4/32 gibi bir değer kullanabilirsiniz; burada ilk dört sekizli IP adresinizi temsil eder ve /32 maskedir. Tüm adresler için IPv4 CIDR gösterimi 0.0.0.0/0'dır. CIDR gösterimi hakkında daha fazla bilgi edinmek için bkz . Sınıfsız Etki Alanları Arası Yönlendirme.
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ç noktası tabanlı kural ayarlama
4. adım için Tür açılan listesinde Sanal Ağ'ı seçin.
Erişimi kısıtlamak istediğiniz listeyle eşleşen Abonelik, Sanal Ağ ve Alt Ağ açılan listelerini belirtin.
Hizmet uç noktalarını kullanarak, seçili Azure sanal ağ alt ağlarına erişimi kısıtlayabilirsiniz. Seçtiğiniz alt ağ için hizmet uç noktaları önceden etkinleştirilmemişse Microsoft.Web
Eksik hizmet uç noktalarını yoksay Microsoft.Web
onay kutusunu seçmediğiniz sürece bunlar otomatik olarak etkinleştirilir. Uygulamada hizmet uç noktalarını etkinleştirmek isteyebileceğiniz ancak alt ağı etkinleştirmemek isteyebileceğiniz senaryo, temel olarak bunları alt ağda etkinleştirme izinlerinizin olup olmadığına bağlıdır.
Alt ağda hizmet uç noktalarını etkinleştirmek için başka birine ihtiyacınız varsa Eksik Microsoft.Web hizmet uç noktalarını yoksay onay kutusunu seçin. Uygulamanız, hizmet uç noktaları için daha sonra alt ağda etkinleştirilmelerini beklemektedir.
Bir App Service Ortamı çalışan uygulamalara erişimi kısıtlamak için hizmet uç noktalarını kullanamazsınız. Uygulamanız bir App Service Ortamı olduğunda, IP erişim kuralları uygulayarak uygulamaya erişimi denetleyebilirsiniz.
Hizmet uç noktalarıyla uygulamanızı uygulama ağ geçitleri veya diğer web uygulaması güvenlik duvarı (WAF) cihazlarıyla yapılandırabilirsiniz. Çok katmanlı uygulamaları güvenli arka uçlarla da yapılandırabilirsiniz. Daha fazla bilgi için bkz. Ağ özellikleri ve Hizmet uç noktalarıyla App Service ve Application Gateway tümleştirmesi.
Not
- Hizmet uç noktaları, sanal IP (VIP) ile IP tabanlı TLS/SSL bağlamaları kullanan web uygulamaları için desteklenmez.
Hizmet etiketi tabanlı kural ayarlama
4. adım için Tür açılan listesinde Hizmet Etiketi'ni seçin.
Erişim kısıtlama kurallarında tüm kullanılabilir hizmet etiketleri desteklenir. Her hizmet etiketi, Azure hizmetlerindeki IP aralıklarının listesini temsil eder. Bu hizmetlerin listesi ve belirli aralıklara yönelik bağlantılar hizmet etiketi belgelerinde yer almaktadır. Bölgesel kapsamlı kurallar gibi daha gelişmiş kurallar yapılandırmak için Azure Resource Manager şablonlarını veya betiklerini kullanın.
Kuralı düzenleme
Mevcut bir erişim kısıtlama kuralını düzenlemeye başlamak için, Erişim Kısıtlamaları sayfasında düzenlemek istediğiniz kuralı seçin.
Erişim Kısıtlamasını Düzenle bölmesinde değişikliklerinizi yapın ve ardından Kuralı güncelleştir'i seçin.
Değişiklikleri kaydetmek için Kaydet'i seçin.
Not
Bir kuralı düzenlerken, kural türleri arasında geçiş yapamazsınız.
Kuralı silme
Bir kuralı silmek için, Erişim Kısıtlamaları sayfasında, silmek istediğiniz kuralı veya kuralları denetleyin ve sil'i seçin.
Değişiklikleri kaydetmek için Kaydet'i seçin.
Erişim kısıtlaması gelişmiş senaryoları
Aşağıdaki bölümlerde erişim kısıtlamalarını kullanan bazı gelişmiş senaryolar açıklanmaktadır.
Http üst bilgilerine göre filtrele
Herhangi bir kuralın parçası olarak http üst bilgi filtreleri ekleyebilirsiniz. Aşağıdaki http üst bilgi adları desteklenir:
- X İletilmiş-For
- X İletilmiş Ana Bilgisayar
- X-Azure-FDID
- X-FD-HealthProbe
Her üst bilgi adı için virgülle ayrılmış en çok sekiz değer ekleyebilirsiniz. Http üst bilgi filtreleri kuralın kendisinden sonra değerlendirilir ve kuralın uygulanması için her iki koşul da doğru olmalıdır.
Ç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 veya mantıksal kurallar oluşturmak istiyorsanız çok kaynaklı kurallar kullanırsınız. Mantıksal kurallar, birden çok IP aralığının tek bir http üst bilgi filtresiyle birleştirildiği yer olabilir.
Ç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.
PowerShell örneği:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
-Priority 100 -Action Allow
Tek bir IP adresini engelleme
Tek bir IP adresini veya IP adresi bloğunu açıkça engellemek ancak diğer her şeye erişim izni vermek istediğiniz bir senaryo için, belirli IP adresi için bir Reddetme kuralı ekleyin ve eşleşmeyen kural eylemini İzin Ver olarak yapılandırın.
SCM sitesine erişimi kısıtlama
Uygulamanıza erişimi denetleyebilmenin yanı sıra, uygulamanız tarafından kullanılan SCM (Gelişmiş araç) sitesine erişimi kısıtlayabilirsiniz. SCM sitesi hem web dağıtım uç noktası hem de Kudu konsoludur. SCM sitesine uygulamadan ayrı olarak erişim kısıtlamaları atayabilir veya hem uygulama hem de SCM sitesi için aynı kısıtlama kümesini kullanabilirsiniz. Ana site kurallarını kullan onay kutusunu seçtiğinizde, kural listesi gizlenir ve ana sitedeki kuralları kullanır. Onay kutusunu temizlerseniz, SCM site ayarlarınız yeniden görünür.
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 benzersiz http üst bilgisine göre daha fazla filtrelemeniz gerekir.
PowerShell örneği:
$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
-HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}
Erişim kısıtlamalarını program aracılığıyla yönetme
Erişim kısıtlamasını program aracılığıyla yönetebilirsiniz. Aşağıda, erişim kısıtlamalarına kural ekleme ve hem Ana site hem de Gelişmiş araç sitesi için Eşleşmeyen kural eyleminin nasıl değiştirileceğini gösteren örnekler bulabilirsiniz.
Ana site için erişim kısıtlama kuralları ekleme
Aşağıdaki seçeneklerden birini belirleyerek Program aracılığıyla Ana site için erişim kısıtlama kuralları ekleyebilirsiniz:
Cloud Shell'de aşağıdaki komutu çalıştırabilirsiniz. Komut hakkında az webapp config access-restriction
daha fazla bilgi için bu sayfayı ziyaret edin.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
--http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Gelişmiş araç sitesi için erişim kısıtlama kuralları ekleme
Aşağıdaki seçeneklerden birini belirleyerek Program aracılığıyla Gelişmiş araç sitesi için erişim kısıtlama kuralları ekleyebilirsiniz:
Cloud Shell'de aşağıdaki komutu çalıştırabilirsiniz. Komut hakkında az webapp config access-restriction
daha fazla bilgi için bu sayfayı ziyaret edin.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true
Ana site için eşleşmeyen kural eylemini değiştirme
Ana site için eşleşmeyen kural eylemini, aşağıdaki seçeneklerden birini seçerek program aracılığıyla değiştirebilirsiniz:
Cloud Shell'de aşağıdaki komutu çalıştırabilirsiniz. Komut hakkında az resource
daha fazla bilgi için bu sayfayı ziyaret edin. için ipSecurityRestrictionsDefaultAction
kabul edilen değerler veya Deny
şeklindedirAllow
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
Gelişmiş araç sitesi için eşleşmeyen kural eylemini değiştirme
Aşağıdaki seçeneklerden birini seçerek Gelişmiş araç sitesi için Eşleşmeyen kural eylemini program aracılığıyla değiştirebilirsiniz:
Cloud Shell'de aşağıdaki komutu çalıştırabilirsiniz. Komut hakkında az resource
daha fazla bilgi için bu sayfayı ziyaret edin. için scmIpSecurityRestrictionsDefaultAction
kabul edilen değerler veya Deny
şeklindedirAllow
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Azure İşlevleri erişim kısıtlamalarını ayarlama
Erişim kısıtlamaları, App Service planlarıyla aynı işlevselliğe sahip işlev uygulamaları için de kullanılabilir. Erişim kısıtlamalarını etkinleştirdiğinizde, izin verilmeyen IP'ler için Azure portalı kod düzenleyicisini de devre dışı bırakırsınız.
Sonraki adımlar
Azure İşlevleri için erişim kısıtlamaları
Hizmet uç noktalarıyla Application Gateway tümleştirmesi
Azure Uygulaması Hizmetinde gelişmiş erişim kısıtlama senaryoları - blog gönderisi