Azure App Service erişim kısıtlamalarını ayarlama

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.Webyapı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ğ.

Diagram of the flow of access restrictions.

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:

  1. Azure Portal’ında oturum açın.

  2. Erişim kısıtlamaları eklemek istediğiniz uygulamayı seçin.

  3. Soldaki menüde Ağ'ı seçin.

  4. sayfasındaki Gelen trafik yapılandırması'nın altında Genel ağ erişimi ayarını seçin.

    Screenshot of the App Service networking options page in the Azure portal.

  5. 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.

    Screenshot of the Access Restrictions page in the Azure portal, showing the list of access restriction rules defined for the selected app.

    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:

  1. Eylem'in altında İzin Ver veya Reddet'i seçin.

    Screenshot of the 'Add Access Restriction' pane.

  2. İsteğe bağlı olarak, kuralın adını ve açıklamasını girin.

  3. Öncelik kutusuna bir öncelik değeri girin.

  4. 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.

  5. 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.

    Screenshot of the 'Add Restriction' pane with the Virtual Network type selected.

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.

    Screenshot of the 'Add Restriction' pane with the Service Tag type selected.

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

  1. 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.

  2. 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.

  3. Değişiklikleri kaydetmek için Kaydet'i seçin.

    Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.

    Not

    Bir kuralı düzenlerken, kural türleri arasında geçiş yapamazsınız.

Kuralı silme

  1. Bir kuralı silmek için, Erişim Kısıtlamaları sayfasında, silmek istediğiniz kuralı veya kuralları denetleyin ve sil'i seçin.

  2. Değişiklikleri kaydetmek için Kaydet'i seçin.

Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing a single blocked IP address.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing how to add Azure Front Door restriction.

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ç sitesiiç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