Aracılığıyla paylaş


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

Erişim kısıtlamalarını ayarlarken, uygulamanıza ağ erişimini denetleen öncelik sırasına göre izin verme/reddetme 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 tümü reddet vardır. Daha fazla bilgi için bkz Azure Uygulaması Hizmet Erişim Kısıtlamaları.

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 Azure İşlevleri uygulamalarını içerebilir.

Birisi uygulamanıza istekte bulunduğunda, FROM adres erişim kısıtlama listenizdeki kurallara göre değerlendirilir. FROM adresi, Microsoft.Web hizmet uç noktalarıyla 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 adrese erişim izni verilmiyorsa hizmet bir HTTP 403 durum koduyla yanıt verir.

Erişim kısıtlama özelliği, kodunuzun çalıştığı çalışan sunucularının önünde yer alan App Service ön uç birimlerinde uygulanır. Bu nedenle, erişim kısıtlamaları etkili bir şekilde ağ erişim denetimi listeleridir.

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şe yaramıyor. 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. Azure hizmetlerinden hizmet uç noktalarını destekleyenlerin listesi için Sanal Ağ hizmet uç noktalarını inceleyin.

Erişim kısıtlamalarının akışını gösteren diyagram.

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

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

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

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

  3. Sol menüde Ayarlar>'ı seçin.

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

    Azure portalındaki App Service ağ seçenekleri bölmesinin ekran görüntüsü.

  5. Erişim Kısıtlamaları bölmesinde, uygulamanız için tanımlanan erişim kısıtlama kuralları listesini gözden geçirin.

    Seçili uygulama için tanımlanan erişim kısıtlama kurallarının listesini gösteren Azure portalındaki Erişim Kısıtlamaları bölmesinin ekran görüntüsü.

    Listede şu anda uygulamaya uygulanan kısıtlamalar görüntülenir. Uygulamanızda sanal ağ kısıtlaması varsa, tabloda hizmet uç noktalarının için Microsoft.Webetkinleş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 özellikleri doğrudan ayarladığınızda site config 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 izinlerine sahip olmanız gerekir:

Eylem Açıklama
Microsoft.Web/sites/config/read Web uygulaması yapılandırma ayarlarını alır.
Microsoft.Web/sites/config/write Web uygulamasının yapılandırma ayarlarını güncelleştirir.
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* Depolama hesabı veya SQL veritabanı gibi kaynakları bir alt ağa ekler.
Microsoft.Web/sites/write** Web uygulaması ayarlarını güncelleştirir.

*Yalnızca sanal ağ (hizmet uç noktası) kuralı eklenirken 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 eklerseniz 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 olun. Sağlayıcıyı açıkça kaydedebilirsiniz, ancak abonelikte ilk web uygulamasını oluşturduğunuzda da otomatik olarak kaydedilir. Daha fazla bilgi için Kaynak sağlayıcısı kaydetme konusuna bakın.

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 Ekle'yi seçin. Kuralı kaydettikten sonra geçerli hale gelir.

Kurallar, Öncelik sütunundaki en düşük sayıdan öncelik sırasına göre uygulanır. Eşleşmeyen bir kuralı yapılandırmazsanız, bir kural eklediğinizde örtük tümünü reddet 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.
  2. Kuralın adını ve açıklamasını girin (isteğe bağlı).
  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. Kurala özel girdiyi yazın. Kuralı listeye eklemek için Kural ekle'yi seçin.
  6. Erişim Kısıtlamaları bölmesinde 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, tek başına bir güvenlik ürünü kullanmayı göz önünde bulundurmanızı öneririz. Azure Front Door, Azure Application Gateway veya farklı bir web uygulaması güvenlik duvarı (WAF) düşünün.

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 Inter-Domain Yönlendirme (CIDR) gösteriminde IP Adresi Bloğunu belirtin. Bir adres belirtmek için, ilk dört sekizlinin IP adresinizi temsil ettiği ve 1.2.3.4/32 maske olduğu gibi /32bir şey kullanabilirsiniz. Tüm adresler için IPv4 CIDR gösterimi şeklindedir 0.0.0.0/0.

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.

    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ğinizle 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ı henüz etkinleştirilmemişse, Microsoft.Web seçeneğini seçmediğiniz sürece ile otomatik olarak etkinleştirilir. Hizmet uç noktalarını uygulamada etkinleştirmek isteyip istemediğiniz, ancak alt ağda değil, alt ağda onları etkinleştirme izniniz 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'ı seçin. Uygulamanız hizmet uç noktaları için yapılandırılmıştır. Bunlar daha sonra alt ağda etkinleştirilebilir.

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, uygulama ağ geçitlerini veya diğer web uygulaması güvenlik duvarı (WAF) cihazlarını kullanarak uygulamanızı yapılandırabilirsiniz. Çok katmanlı uygulamaları güvenli arka uçlarla da yapılandırabilirsiniz. Daha fazla bilgi için bkz . App Service ağ özellikleri ve Application Gateway tümleştirmesi.

Not

Hizmet uç noktaları, sanal IP 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 listesinden Hizmet Etiketi'ni seçin.

    Hizmet Etiketi türü seçili durumdayken Kısıtlama Ekle bölmesinin ekran görüntüsü.

Genel kullanıma açık tüm hizmet etiketleri erişim kısıtlama kurallarında 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.

Not

Azure portalı veya Azure CLI aracılığıyla hizmet etiketi tabanlı kurallar oluşturduğunuzda, seçim/doğrulama için hizmet etiketlerinin tam listesini almak için abonelik düzeyinde okuma erişimine ihtiyacınız vardır. Ayrıca, kaynak sağlayıcısının Microsoft.Network aboneliğe kaydedilmesi gerekir.

Kuralı düzenleme

  1. Mevcut bir erişim kısıtlama kuralını düzenlemek için Erişim Kısıtlamaları bölmesine gidin ve 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.

    Not

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

Kuralı silme

  1. Kuralı silmek için , Erişim Kısıtlamaları bölmesinde silmek istediğiniz kuralı veya kuralları seçin ve ardından Sil'i seçin.

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

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

Erişim kısıtlaması gelişmiş senaryoları

Aşağıdaki bölümlerde, gelişmiş senaryolarda erişim kısıtlamalarının kullanımı açıklanmaktadır.

HTTP üst bilgilerine göre filtrele

Herhangi bir kurala HTTP üst bilgi filtreleri ekleyebilirsiniz. Aşağıdaki HTTP üst bilgi adları desteklenir:

  • X-Forwarded-For
  • X-Forwarded-Host
  • 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

Çok kaynaklı kurallar, en fazla sekiz IP aralığını veya sekiz hizmet etiketini tek bir kuralda birleştirmenizi sağlar. 512'den fazla IP aralığınız varsa veya mantıksal kurallar oluşturmak istiyorsanız çok kaynaklı kuralları kullanın. Örneğin: Mantıksal bir kural, tek bir HTTP üst bilgi filtresiyle birleştirilmiş birden çok IP aralığı içerebilir.

Çok kaynaklı kurallar tek kaynaklı kurallarla aynı şekilde tanımlanır, ancak her 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

Tek bir IP adresini veya BIR IP adresi bloğunu açıkça engellemek, ancak diğer her şeye erişime izin vermek istiyorsanız, belirli IP adresi için bir Reddetme kuralı ekleyebilirsiniz. Ardından eşleşmeyen kural eylemini İzin Ver olarak yapılandırın.

Tek bir engellenen IP adresini gösteren Azure portalındaki Erişim Kısıtlamaları bölmesinin ekran görüntüsü.

SCM sitesine erişimi kısıtlama

Uygulamanıza erişimi denetleyebilmenin yanı sıra, uygulamanız tarafından kullanılan kaynak denetimi yönetimi (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'ı seçtiğinizde, kural listesi gizlenir. SCM sitesi, ana sitedeki kuralları kullanır. Onay kutusunun seçimini kaldırırsanız, SCM site ayarlarınız yeniden görünür.

SCM sitesi veya uygulama için hiçbir erişim kısıtlaması ayarlandığını gösteren Azure portalındaki Erişim Kısıtlamaları bölmesinin ekran görüntüsü.

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. Bir hizmet etiketi kısıtlama kuralı kullanarak trafiği yalnızca Azure Front Door'dan gelenlerle 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.

Azure portalında Azure Front Door kısıtlamasının nasıl ekleneceğini gösteren Erişim Kısıtlamaları bölmesinin ekran 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ıtlamalarını program aracılığıyla yönetme

Erişim kısıtlamalarını program aracılığıyla da yönetebilirsiniz. Aşağıdaki örneklerde, erişim kısıtlamalarına nasıl kural ekleneceği ve hem Ana site hem de Gelişmiş araç sitesi için eşleşmeyen kural eyleminin nasıl değiştireceği gösterilmektedir.

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:

Azure Cloud Shell'de aşağıdaki komutu çalıştırabilirsiniz. Komut hakkında daha fazla bilgi için bkz az webapp config access-restriction. .

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

Gelişmiş araç sitesi için program aracılığıyla erişim kısıtlama kuralları ekleyebilirsiniz. Aşağıdaki seçeneklerden birini belirleyin:

Cloud Shell'de aşağıdaki komutu çalıştırabilirsiniz. Komut hakkında daha fazla bilgi için bkz az webapp config access-restriction. .

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 daha fazla bilgi için bkz az resource. . ipSecurityRestrictionsDefaultAction için kabul edilen değerler Allow veya Deny şeklindedir.

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 daha fazla bilgi için bkz az resource. . scmIpSecurityRestrictionsDefaultAction için kabul edilen değerler Allow veya Deny şeklindedir.

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.