Erişim Azure App Service ayarlama

Erişim kısıtlamalarını ayarlayarak, uygulamanıza ağ erişimini kontrol eden öncelikli bir izin verme/reddetme listesi tanımlayabilirsiniz. Listede IP adresleri veya Azure Sanal Ağ alt ağları olabilir. Bir veya daha fazla giriş olduğunda, listenin sonunda örtülü bir reddetme vardır.

Erişim kısıtlama özelliği, tüm Azure App Service iş yükleriyle çalışır. İş yükleri web uygulamaları, API uygulamaları, Linux uygulamaları, Linux kapsayıcı uygulamaları ve İşlevler'i içerebilir.

Uygulamanıza bir istek gönderilmesi, FROM adresinin erişim kısıtlaması listeniz kurallarına göre değerlendirilmesini sağlar. FROM adresi Microsoft.Web'e yönelik hizmet uç noktalarıyla yapılandırılmış bir alt ağda yer alıyorsa, kaynak alt ağ erişim kısıtlaması listenizin sanal ağ kurallarıyla karşılaştırılmıştır. Adrese, listede yer alan kurallara göre erişim izni verilmiyorsa, hizmet bir HTTP 403 durum koduyla yanıtlar.

Erişim kısıtlama özelliği, kodunuzun App Service çalışan konaklarının yukarı akışı olan ön uç rollerinde uygulanır. Bu nedenle, erişim kısıtlamaları etkin bir şekilde ağ erişim denetim listeleridir (ACL).

Bir Azure sanal ağına web uygulamanıza erişimi kısıtlama özelliği, hizmet uç noktaları tarafından etkinleştirilir. Hizmet uç noktalarıyla, seçili alt ağlardan çok kiracılı bir hizmete erişimi kısıtabilirsiniz. Trafiği bir konakta barındırılan uygulamalarla kısıtlamak için App Service Ortamı. Uygulamanıza erişimi App Service Ortamı IP adresi kurallarını uygulayarak uygulamanıza erişimi kontrol edin.

Not

Hizmet uç noktalarının hem ağ tarafında hem de etkinleştirildikleri Azure hizmeti için etkinleştirilmesi gerekir. Hizmet uç noktalarını destekleyen Azure hizmetlerinin listesi için bkz. Sanal Ağ hizmet uç noktaları.

Erişim kısıtlamaları akışının diyagramı.

Portalda erişim kısıtlama kurallarını yönetme

Uygulamanıza erişim kısıtlama kuralı eklemek için şunları yapın:

  1. Azure portalında oturum açın.

  2. Sol bölmede Ağ'ı seçin.

  3. bölmesinde, Erişim Kısıtlamaları'nın altında Erişim Kısıtlamalarını Yapılandır'ı seçin.

    Uygulamanın App Service seçenekleri bölmesinin ekran Azure portal.

  4. Erişim Kısıtlamaları sayfasında, uygulamanıza yönelik olarak tanımlanan erişim kısıtlaması kuralları listesini gözden geçirebilirsiniz.

    Seçilen uygulama için tanımlanan erişim kısıtlaması Azure portal listesini gösteren Erişim Kısıtlamaları sayfasının ekran görüntüsü.

    Listede uygulamaya uygulanan tüm geçerli kısıtlamalar görüntülenir. Uygulamanıza sanal ağ kısıtlaması varsa, tabloda hizmet uç noktalarının Microsoft.Web için etkinleştirilip etkinleştirilmemiş olduğu gösterir. Uygulamanıza hiçbir kısıtlama tanımlanmamışsa, uygulamaya her yerden erişilebilir.

Erişim kısıtlama kuralı ekleme

Uygulamanıza erişim kısıtlama kuralı eklemek için Erişim Kısıtlamaları bölmesinde Kural ekle'yi seçin. Bir kural ekledikten sonra hemen geçerli olur.

Kurallar Öncelik sütunundaki en düşük sayıdan başlayarak öncelik sırasına göre uygulanır. Tek bir kural bile ekledikten sonra, örtülü bir hepsini reddetme etkili olur.

Erişim Kısıtlaması Ekle bölmesinde, bir kural ekleyebilirsiniz, şunları yapın:

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

    'Erişim Kısıtlaması Ekle' bölmesinin ekran görüntüsü.

  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.

Not

  • 512 erişim kısıtlama kuralı sınırı vardır. 512'den fazla erişim kısıtlama kuralına ihtiyaçnız varsa, Azure Front Door, Azure App Gateway veya alternatif bir WAF gibi tek başına bir güvenlik ürünü yüklemenizi öneririz.

IP adresi tabanlı kural ayarlama

Önceki bölümde açıklanan yordamı izleyin, ancak aşağıdaki eklemeyle birlikte:

    1. adım için Tür açılan listesinde IPv4 veya IPv6'yı seçin.

Hem IPv4 hem de IPv6 adresleri Inter-Domain Yönlendirme (CIDR) notasyonunda IP Adresi Bloğu belirtin. Bir adres belirtmek için 1.2.3.4/32 gibi bir şey kullanabilirsiniz; burada ilk dört sekizli IP adresinizi temsil ediyor ve /32 maskedir. Tüm adresler için IPv4 CIDR notasyonu 0.0.0.0/0'dır. CIDR hakkında daha fazla bilgi edinmek için bkz. Sınıfsız Inter-Domain Yönlendirme.

Hizmet uç noktası tabanlı kural ayarlama

    1. adım için Tür açılan listesinde Sanal Ağ'ı seçin.

    Sanal Ağ türünün seçili olduğu 'Kısıtlama Ekle' bölmesinin ekran görüntüsü.

Erişimi kısıtlamak istediğiniz abonelikle 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ıtabilirsiniz. Seçtiğiniz alt ağ için hizmet uç noktaları Microsoft.Web ile henüz etkinleştirilmediyse, Eksik Microsoft.Web hizmet uç noktalarını yoksay onay kutusunu seçmedikçe bunlar otomatik olarak etkinleştirilir. Uygulama üzerinde hizmet uç noktalarını etkinleştirmek istemeniz ancak alt ağda etkinleştirmeyebilirsiniz senaryosu temel olarak alt ağda bunları etkinleştirme izinlerine sahip olup olmadığınızdır.

Alt ağda hizmet uç noktalarını başka birinin etkinleştirmesi gerekirse, Eksik Microsoft.Web hizmeti uç noktalarını yoksay onay kutusunu seçin. Daha sonra alt ağda etkinleştirilmesi beklentisiyle, uygulamanız hizmet uç noktaları için yapılandırılır.

Hizmet uç noktalarını kullanarak bir hizmet hizmet uç noktası içinde çalıştıran uygulamalara erişimi App Service Ortamı. Uygulamanız bir App Service Ortamı, IP erişim kuralları uygulayarak bu uygulamaya erişimi kontrol edin.

Hizmet uç noktaları ile, uygulama ağ geçitleri veya diğer web uygulaması güvenlik duvarı (WAF) cihazlarıyla uygulamalarınızı yapılandırabilirsiniz. Çok katmanlı uygulamaları güvenli arka uçlarla da yapılandırabilirsiniz. Daha fazla bilgi için bkz. Ağ özellikleri ve App Service uç Application Gateway tümleştirmesi.

Not

  • Hizmet uç noktaları şu anda sanal IP (VIP) ile IP tabanlı TLS/SSL bağlamaları kullanan web uygulamaları için destek sunmaktadır.

Hizmet etiketi tabanlı kural ayarlama

    1. adım için Tür açılan listesinde Hizmet Etiketi'ne tıklayın.

    Hizmet Etiketi türünün seçili olduğu 'Kısıtlama Ekle' bölmesinin ekran görüntüsü.

Her hizmet etiketi, Azure hizmetlerinden gelen IP aralıklarının listesini temsil eder. Bu hizmetlerin listesi ve belirli aralıklara bağlantılar hizmet etiketi belgelerinde bulunabilir.

Tüm kullanılabilir hizmet etiketleri, erişim kısıtlama kurallarında de destekler. Kolaylık olması için, yalnızca en yaygın etiketlerin listesi, Azure portal. Bölgesel Azure Resource Manager gibi daha gelişmiş kuralları yapılandırmak için şablon veya betik oluşturma kullanın. Bu etiketler, aşağıdakiler aracılığıyla Azure portal:

  • ActionGroup
  • ApplicationInsightsAvailability
  • AzureCloud
  • AzureCognitiveSearch
  • AzureEventGrid
  • AzureFrontDoor.Backend
  • AzureMachineLearning
  • AzureTrafficManager
  • LogicApps

Kuralı düzenleme

  1. Mevcut erişim kısıtlaması 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ın Düzenle bölmesinde değişikliklerinizi yapın ve kuralı güncelleştir'i seçin. Düzenlemeler, öncelik sıralamada yapılan değişiklikler de dahil olmak üzere hemen geçerli olur.

    Mevcut bir erişim kısıtlama kuralına yönelik alanları gösteren Azure portal 'Erişim Kısıtlaması Düzenle' bölmesinin ekran görüntüsü.

    Not

    Bir kuralı düzenlerken kural türleri arasında geçişleyemezsiniz.

Kuralı silme

Bir kuralı silmek için Erişim Kısıtlamaları sayfasında silmek istediğiniz kuralın yanındaki üç noktayı (... ) ve ardından Kaldır'ı seçin.

Silinecek erişim kısıtlama kuralının yanındaki 'Kaldır' üç noktayı gösteren 'Erişim Kısıtlamaları' sayfasının ekran görüntüsü.

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 bilgiye göre filtreleme

Herhangi bir kuralın parçası olarak, ek http üst bilgisi filtreleri ekleyebilirsiniz. Aşağıdaki http üst bilgisi adları de destekler:

  • X-Forwarded-for
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

Her üst bilgi adı için virgülle ayrılmış en fazla sekiz değer ebilirsiniz. Http üst bilgisi filtreleri kuralın kendisi sonrasında değerlendirilir ve kuralın geçerli olması için her iki koşulların da geçerli olması gerekir.

Çok kaynaklı kurallar

Çok kaynaklı 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 birden çok IP aralığı tek bir http üst bilgi filtresiyle birleştirilen mantıksal kurallar oluşturmak için bunu kullanabilirsiniz.

Çok kaynaklı kurallar, tek kaynak kuralları tanımladığınız şekilde tanımlanır, ancak her bir aralık virgülle ayrılı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

İlk erişim kısıtlama kuralınızı eklerken, hizmet 2147483647 önceliğe sahip açık bir Tüm kuralı reddet ekler. Uygulamada, açık Tüm reddetme kuralı yürütülecek son kuraldır ve bir İzin Ver kuralı tarafından açıkça izin verilmiyor herhangi bir IP adresine erişimi engeller.

Tek bir IP adresini veya bir IP adresi bloğunun açıkça engellemek, ancak diğer her şeye erişim izni vermek istediğiniz bir senaryo için açık bir Tüme İzin Ver kuralı ekleyin.

Tek bir engellenen IP adresini gösteren Azure portal 'Erişim Kısıtlamaları' sayfasının ekran görüntüsü.

SCM sitesine erişimi kısıtlama

Uygulamanıza erişimi denetlemenin yanı sıra, uygulamanız tarafından kullanılan SCM sitesine erişimi kısıtabilirsiniz. SCM sitesi hem web dağıtımı uç noktası hem de Kudu konsolundadır. SCM sitesine erişim kısıtlamalarını uygulamadan ayrı olarak atayabilirsiniz veya hem uygulama hem de SCM sitesi için aynı kısıtlama kümelerini kullanabilirsiniz. Aynı kısıtlamalar onay kutusunu <app name> işaretle, her şey boş bırakılır. Onay kutusunu temizlersanız SCM site ayarlarınız yeniden kullanılır.

SCM sitesi veya uygulama için hiçbir erişim kısıtlaması Azure portal gösteren, Azure portal'daki 'Erişim Kısıtlamaları' sayfasının ekran görüntüsü.

Belirli bir örnek için Azure Front Door kısıtlama

Uygulamanıza Azure Front Door gelen trafik, AzureFrontDoor.Backend hizmet etiketinde tanımlanan iyi bilinen bir IP aralığı kümesinden kaynaklandı. Hizmet etiketi kısıtlama kuralı kullanarak trafiği yalnızca bir hizmet etiketi Azure Front Door. Trafiğin yalnızca sizin örneğinizin kaynağı olduğundan emin olmak için, gelen istekleri gönderen benzersiz http üst bilgisini temel alarak Azure Front Door gerekir.

Uygulama kısıtlaması eklemenin nasıl Azure portal 'Erişim Kısıtlamaları' Azure Front Door görüntüsü.

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ıtlama kurallarını program aracılığıyla yönetme

Erişim kısıtlamalarını program aracılığıyla eklemek için aşağıdakilerden birini yapabilirsiniz:

  • Azure CLI'sini kullanın. Örneğin:

    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
    

    Not

    Azure CLI'de hizmet etiketleri, http üst bilgileri veya çok kaynaklı kurallarla çalışmak için en az 2.23.0 sürümü gerekir. Yüklü modülün sürümünü şu şekilde doğruabilirsiniz: az version

  • Azure PowerShell. Örneğin:

    Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName"
        -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress 122.133.144.0/24
    

    Not

    Hizmet etiketleri, http üst bilgileri veya çok kaynaklı kurallarla çalışmak Azure PowerShell 5.7.0 sürümünü gerektirir. Yüklü modülün sürümünü şu şekilde doğruabilirsiniz: Get-InstalledModule -Name Az

Ayrıca, aşağıdakilerden birini yaparak değerleri el ile de ayarlayabilirsiniz:

  • Azure REST API PUT işlemi kullanarak uygulama yapılandırmasında Azure Resource Manager. Bu bilgilerin Azure Resource Manager:

    management.azure.com/subscriptions/ abonelik kimliği/resourceGroups/kaynak grupları/providers/Microsoft.Web/sites/ web uygulaması adı/config/web?api-version=2020-06-01

  • Bir Resource Manager kullanın. Örneğin, gerekli JSON'resources.azure.com eklemek için ipSecurityRestrictions bloğuyla ilgili bilgileri kullanabilir ve düzenleyebilirsiniz.

    Önceki örneğin JSON söz dizimi şöyledir:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "122.133.144.0/24",
            "action": "Allow",
            "priority": 100,
            "name": "IP example rule"
          }
        ]
      }
    }
    

    Hizmet etiketi ve http üst bilgisi kısıtlaması kullanan gelişmiş bir örneğin JSON söz dizimi şöyledir:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "AzureFrontDoor.Backend",
            "tag": "ServiceTag",
            "action": "Allow",
            "priority": 100,
            "name": "Azure Front Door example",
            "headers": {
              "x-azure-fdid": [
                "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
              ]
            }
          }
        ]
      }
    }
    

Erişim Azure İşlevleri ayarlama

Erişim kısıtlamaları, planlarla aynı işlevlere sahip işlev uygulamaları için App Service kullanılabilir. Erişim kısıtlamalarını etkinleştirecek olurken, izin verilmeyen Azure portal kod düzenleyicisini de devre dışı bırakabilirsiniz.

Sonraki adımlar

Azure İşlevleri için erişim kısıtlamaları
Application Gateway uç noktalarıyla tümleştirme