Aracılığıyla paylaş


Web Uygulaması Güvenlik Duvarı hız sınırı kuralı yapılandırma

Azure Front Door için Azure Web Uygulaması Güvenlik Duvarı hız sınırı kuralı, hız sınırı süresi boyunca belirli bir kaynak IP adresinden uygulamaya izin verilen istek sayısını denetler. Hız sınırlama hakkında daha fazla bilgi için bkz. Azure Front Door için hız sınırlama nedir?.

Bu makalede, Azure Front Door Standard ve Premium katmanlarında bir web uygulaması güvenlik duvarı (WAF) hız sınırı kuralının nasıl yapılandırılması gösterilmektedir.

Senaryo

Genel bir web sitesinden sorumlu olduğunuzu varsayalım. Kuruluşunuzun çalıştığı bir promosyon hakkında bilgi içeren bir sayfa eklediniz. İstemciler bu sayfayı çok sık ziyaret ederse bazı arka uç hizmetlerinizin hızla ölçeklendirilmediğinden ve uygulamada performans sorunları olabileceğinden endişe duyuyorsunuz.

Her kaynak IP adresini dakikada en fazla 1.000 istekle kısıtlayan bir hız sınırı kuralı oluşturmaya karar verirsiniz. Bu kuralı yalnızca istek URL'sinde bulunan */promo* isteklere uygularsınız.

İpucu

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Azure Front Door profili ve WAF ilkesi oluşturma

  1. Azure portal Kaynak oluştur'u seçin.

    Giriş sayfasındaki Kaynak oluştur düğmesini gösteren ekran görüntüsü.

  2. Front Door araması yapın ve Front Door ve CDN profilleri'ni seçin.

    Front Door'un vurgulandığı marketi gösteren ekran görüntüsü.

  3. Oluştur’u seçin.

    Oluştur düğmesinin vurgulandığı Front Door ve CDN profillerini gösteren ekran görüntüsü.

  4. Hızlı oluşturma portalı oluşturma işlemini kullanmak üzere bir Front Door oluşturmak için Devam'ı seçin.

    Hızlı oluşturma seçeneğinin belirlenip Front Door oluşturmaya devam et düğmesinin vurgulandığı Azure Front Door tekliflerini gösteren ekran görüntüsü.

  5. Temel Bilgiler sayfasında gerekli bilgileri girin:

    • Kaynak grubu: Mevcut bir kaynak grubunu seçin veya Azure Front Door ve WAF kaynakları için yeni bir kaynak grubu oluşturun.
    • Ad: Azure Front Door profilinizin adını girin.
    • Katman: Standart veya Premium'ı seçin. Bu senaryo için her iki katman da hız sınırlamayı destekler.
    • Uç nokta adı: Azure Front Door uç noktalarının genel olarak benzersiz adlara sahip olması gerektiğinden uç noktanız için benzersiz bir ad sağlayın.
    • Kaynak türü ve Kaynak ana bilgisayar adı: Hız sınırı kuralınızla korumak istediğiniz kaynak uygulamayı seçin.
  6. WAF ilkesi'nin yanındaki Yeni oluştur'u seçin.

    WAF ilkesi Yeni oluştur düğmesi vurgulanmış şekilde Azure Front Door oluşturma iş akışını gösteren ekran görüntüsü.

  7. WAF ilkesinin adını girin ve Oluştur'u seçin.

    OLUŞTUR düğmesinin vurgulandığı WAF ilkesi oluşturma istemini gösteren ekran görüntüsü.

  8. Gözden geçir ve oluştur>Oluştur'u seçin.

    Tamamlanan Azure Front Door profil yapılandırmasını gösteren ekran görüntüsü.

  9. Dağıtım tamamlandıktan sonra Kaynağa git'i seçin.

Hız sınırı kuralı oluşturma

  1. Özel kurallar>Özel kural ekle'yi seçin.

    WAF ilkesinin özel kurallar sayfasını gösteren ekran görüntüsü.

  2. Hız sınırı kuralı oluşturmak için gereken bilgileri girin:

    • Özel kural adı: RateLimitRule gibi özel kuralın adını girin.
    • Kural türü: Hız sınırı'ı seçin.
    • Öncelik: Kuralın önceliğini girin, örneğin 1.
    • Hız sınırı süresi: 1 dakika seçin.
    • Hız sınırı eşiği (istekler):1000 girin.
  3. Koşullar bölümünde, URL'nin dizesini */promo*içerdiği istekleri tanımlamak için bir eşleşme koşulu belirtmek için gereken bilgileri girin:

    • Eşleştirme türü: Dize'yi seçin.
    • Eşleştirme değişkeni: RequestUri girin.
    • İşlem: öğesini seçin.
    • İşleç: İçerir'i seçin.
    • Değerleri eşleştir: /promo girin.
  4. Eylem için Günlük veya Engelle'yi seçin.

    Hız sınırı kuralları yalnızca ve Block eylemleri desteklerLog. Allow desteklenmez.

    Özel kural yapılandırmasını gösteren ekran görüntüsü.

  5. Add (Ekle) seçeneğini belirleyin.

  6. Kaydet’i seçin.

    Yeni hız sınırı kuralı dahil olmak üzere özel kural listesini gösteren ekran görüntüsü.

WAF'de önleme modunu kullanma

Varsayılan olarak, Azure portal algılama modunda WAF ilkeleri oluşturur. Bu ayar, WAF'nin istekleri engellemediği anlamına gelir. Daha fazla bilgi için bkz. WAF modları.

Önleme modunu kullanmadan önce WAF'nizi ayarlayın. Ayarlama, hatalı pozitif algılamaları önlemeye yardımcı olur. Ayrıca WAF'nizin meşru istekleri engellemesini önlemeye de yardımcı olur.

Burada WAF'yi önleme modunu kullanacak şekilde yeniden yapılandıracaksınız.

  1. WAF ilkesini açın.

    İlke modununAlgılama olarak ayarlandığına dikkat edin.

    İlke modu ve Önleme moduna geç düğmesi vurgulanmış şekilde WAF ilkesini gösteren ekran görüntüsü.

  2. Önleme moduna geç'i seçin.

Önkoşullar

Hız sınırı ilkesi ayarlamaya başlamadan önce PowerShell ortamınızı ayarlayın ve bir Azure Front Door profili oluşturun.

PowerShell ortamınızı hazırlama

Azure PowerShell, Azure kaynaklarınızı yönetmek için Azure Resource Manager modelini kullanan bir dizi cmdlet sunar.

Azure PowerShell'i yerel makinenize yükleyebilir ve herhangi bir PowerShell oturumunda kullanabilirsiniz. Burada Azure kimlik bilgilerinizle oturum açar ve Azure Front Door Standard veya Premium için Azure PowerShell modülünü yüklersiniz.

Oturum açmak için etkileşimli bir iletişim kutusuyla Azure'a bağlanma

Aşağıdaki komutu çalıştırarak Azure'da oturum açın:

Connect-AzAccount

PowerShellGet yükleme

PowerShellGet'in geçerli sürümünün yüklü olduğundan emin olun. Şu komutu çalıştırın:

Install-Module PowerShellGet -Force -AllowClobber

Ardından, en son sürümü kullandığınızdan emin olmak için PowerShell'i yeniden başlatın.

Azure Front Door PowerShell modüllerini yükleme

PowerShell'den Az.FrontDoor Azure Front Door Standard veya Premium ile çalışmak için ve Az.Cdn PowerShell modüllerini yükleyin.

Install-Module -Name Az.FrontDoor
Install-Module -Name Az.Cdn

Azure Front Door Standard veya Premium kaynaklarıyla çalışmak için modülünü Az.Cdn kullanırsınız. WAF kaynaklarıyla çalışmak için modülünü Az.FrontDoor kullanın.

Kaynak grubu oluşturma

Azure Front Door profiliniz ve WAF ilkeniz için yeni bir kaynak grubu oluşturmak için New-AzResourceGroup cmdlet'ini kullanın. Kendi gereksinimleriniz için kaynak grubu adını ve konumunu güncelleştirin:

$resourceGroupName = 'FrontDoorRateLimit'

New-AzResourceGroup -Name $resourceGroupName -Location 'westus'

Azure Front Door profili oluşturma

Yeni bir Azure Front Door profili oluşturmak için New-AzFrontDoorCdnProfile cmdlet'ini kullanın.

Bu örnekte adlı MyFrontDoorProfilebir Azure Front Door standart profili oluşturursunuz:

$frontDoorProfile = New-AzFrontDoorCdnProfile `
  -Name 'MyFrontDoorProfile' `
  -ResourceGroupName $resourceGroupName `
  -Location global `
  -SkuName Standard_AzureFrontDoor

Azure Front Door uç noktası oluşturma

Azure Front Door profilinize uç nokta eklemek için New-AzFrontDoorCdnEndpoint cmdlet'ini kullanın.

Azure Front Door uç noktalarının genel olarak benzersiz adlara sahip olması gerektiğinden değişkenin $frontDoorEndpointName değerini benzersiz bir adla güncelleştirin.

$frontDoorEndpointName = '<unique-front-door-endpoint-name>'

$frontDoorEndpoint = New-AzFrontDoorCdnEndpoint `
  -EndpointName $frontDoorEndpointName `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Location $frontDoorProfile.Location

URL eşleştirme koşulu tanımlama

Hız sınırının uygulanması gereken istekleri tanımlamak üzere bir eşleştirme koşulu oluşturmak için New-AzFrontDoorWafMatchConditionObject cmdlet'ini kullanın.

Aşağıdaki örnek, değişkeninin RequestUri/promo dizesini içerdiği isteklerle eşleşir:

$promoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
  -MatchVariable RequestUri `
  -OperatorProperty Contains `
  -MatchValue '/promo'

Özel hız sınırı kuralı oluşturma

Önceki adımda tanımladığınız eşleşme koşulunu ve istek eşiğini içeren hız sınırı kuralını oluşturmak için New-AzFrontDoorWafCustomRuleObject cmdlet'ini kullanın.

Aşağıdaki örnek sınırı olarak 1000ayarlar:

$promoRateLimitRule = New-AzFrontDoorWafCustomRuleObject `
  -Name 'rateLimitRule' `
  -RuleType RateLimitRule `
  -MatchCondition $promoMatchCondition `
  -RateLimitThreshold 1000 `
  -Action Block `
  -Priority 1

Herhangi bir kaynak IP adresi bir dakika içinde 1.000'den fazla istek gönderdiğinde, WAF sonraki istekleri sonraki dakika başlayana kadar engeller.

WAF ilkesi oluşturma

Oluşturduğunuz özel kuralı içeren bir WAF ilkesi oluşturmak için New-AzFrontDoorWafPolicy cmdlet'ini kullanın.

$wafPolicy = New-AzFrontDoorWafPolicy `
  -Name 'MyWafPolicy' `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Sku Standard_AzureFrontDoor `
  -CustomRule $promoRateLimitRule

Azure Front Door profilinizi WAF ilkenizle ilişkilendirmek için bir güvenlik ilkesi yapılandırma

Azure Front Door profiliniz için bir güvenlik ilkesi oluşturmak için New-AzFrontDoorCdnSecurityPolicy cmdlet'ini kullanın. Güvenlik ilkesi WAF ilkenizi WAF kuralı tarafından korunmasını istediğiniz etki alanlarıyla ilişkilendirir.

Bu örnekte uç noktanın varsayılan ana bilgisayar adını WAF ilkenizle ilişkilendirirsiniz:

$securityPolicyAssociation = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallAssociationObject `
  -PatternsToMatch @("/*") `
  -Domain @(@{"Id"=$($frontDoorEndpoint.Id)})

$securityPolicyParameters = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallParametersObject `
  -Association $securityPolicyAssociation `
  -WafPolicyId $wafPolicy.Id

$frontDoorSecurityPolicy = New-AzFrontDoorCdnSecurityPolicy `
  -Name 'MySecurityPolicy' `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Parameter $securityPolicyParameters

Önkoşullar

Hız sınırı ilkesi ayarlamaya başlamadan önce Azure CLI ortamınızı ayarlayın ve bir Azure Front Door profili oluşturun.

Azure CLI ortamınızı ayarlama

Azure CLI, Azure kaynaklarınızı yönetmek için Azure Resource Manager modelini kullanan bir dizi komut sağlar.

Azure CLI'yi yerel makinenize yükleyebilir ve herhangi bir kabuk oturumunda kullanabilirsiniz. Burada Azure kimlik bilgilerinizle oturum açar ve Azure Front Door Standard veya Premium için Azure CLI uzantısını yüklersiniz.

Oturum açmak için etkileşimli bir iletişim kutusuyla Azure'a bağlanma

Aşağıdaki komutu çalıştırarak Azure'da oturum açın:

az login

Azure CLI için Azure Front Door uzantısını yükleme

Azure CLI'dan front-door Azure Front Door WAF ile çalışmak için uzantıyı yükleyin:

az extension add --name front-door

Azure Front Door Standard veya Premium kaynaklarıyla çalışmak için komutlarını kullanırsınız az afd . az network front-door waf-policy WAF kaynaklarıyla çalışmak için komutlarını kullanın.

Kaynak grubu oluşturma

Azure Front Door profiliniz ve WAF ilkeniz için yeni bir kaynak grubu oluşturmak için az group create komutunu kullanın. Kendi gereksinimleriniz için kaynak grubu adını ve konumunu güncelleştirin:

resourceGroupName='FrontDoorRateLimit'

az group create \
  --name $resourceGroupName \
  --location westus

Azure Front Door profili oluşturma

Yeni bir Azure Front Door profili oluşturmak için az afd profile create komutunu kullanın.

Bu örnekte adlı MyFrontDoorProfilebir Azure Front Door standart profili oluşturursunuz:

frontDoorProfileName='MyFrontDoorProfile'

az afd profile create \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Azure Front Door uç noktası oluşturma

Azure Front Door profilinize uç nokta eklemek için az afd endpoint create komutunu kullanın.

Azure Front Door uç noktalarının genel olarak benzersiz adlara sahip olması gerektiğinden değişkenin frontDoorEndpointName değerini benzersiz bir adla güncelleştirin.

frontDoorEndpointName='<unique-front-door-endpoint-name>'

az afd endpoint create \
  --endpoint-name $frontDoorEndpointName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \

WAF ilkesi oluşturma

WAF ilkesi oluşturmak için az network front-door waf-policy create komutunu kullanın:

wafPolicyName='MyWafPolicy'

az network front-door waf-policy create \
  --name $wafPolicyName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Özel hız sınırı kuralı eklemeye hazırlanma

Özel bir hız sınırı kuralı oluşturmak için az network front-door waf-policy rule create komutunu kullanın. Aşağıdaki örnek, sınırı dakikada 1.000 istek olarak ayarlar.

Hız sınırı kuralları, bir sonraki adımda oluşturacağınız bir eşleşme koşulu içermelidir. Bu komutta, Azure CLI'ya kuralı henüz Azure'a göndermemelerini söyleyen bağımsız değişkenini eklersiniz --defer .

az network front-door waf-policy rule create \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName \
  --rule-type RateLimitRule \
  --rate-limit-duration 1 \
  --rate-limit-threshold 1000 \
  --action Block \
  --priority 1 \
  --defer

Herhangi bir kaynak IP adresi bir dakika içinde 1.000'den fazla istek gönderdiğinde, WAF sonraki istekleri sonraki dakika başlayana kadar engeller.

Eşleştirme koşulu ekleme

Özel kuralınıza eşleştirme koşulu eklemek için az network front-door waf-policy rule match-condition add komutunu kullanın. Eşleştirme koşulu, hız sınırının uygulanması gereken istekleri tanımlar.

Aşağıdaki örnek, değişkeninin RequestUri/promo dizesini içerdiği isteklerle eşleşir:

az network front-door waf-policy rule match-condition add \
  --match-variable RequestUri \
  --operator Contains \
  --values '/promo' \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName

Bu komutu gönderdiğinizde Azure CLI hız sınırı kuralını ve eşleştirme koşulunu birlikte oluşturur.

Azure Front Door profilinizi WAF ilkenizle ilişkilendirmek için bir güvenlik ilkesi yapılandırma

Azure Front Door profiliniz için bir güvenlik ilkesi oluşturmak için az afd security-policy create komutunu kullanın. Güvenlik ilkesi WAF ilkenizi WAF kuralı tarafından korunmasını istediğiniz etki alanlarıyla ilişkilendirir.

Bu örnekte uç noktanın varsayılan ana bilgisayar adını WAF ilkenizle ilişkilendirirsiniz:

securityPolicyName='MySecurityPolicy'

wafPolicyResourceId=$(az network front-door waf-policy show --name $wafPolicyName --resource-group $resourceGroupName --query id --output tsv)
frontDoorEndpointResourceId=$(az afd endpoint show --endpoint-name $frontDoorEndpointName --profile-name $frontDoorProfileName --resource-group $resourceGroupName --query id --output tsv)

az afd security-policy create \
  --security-policy-name $securityPolicyName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --domains $frontDoorEndpointResourceId \
  --waf-policy $wafPolicyResourceId

Yukarıdaki kod WAF ilkesi ve Azure Front Door uç noktası için Azure kaynak tanımlayıcılarını arar, böylece bunları güvenlik ilkenizle ilişkilendirebilir.

Not

WAF ilkenizde her değişiklik yaptığınızda Azure Front Door güvenlik ilkesini yeniden oluşturmanız gerekmez. WAF ilke güncelleştirmeleri Azure Front Door etki alanlarına otomatik olarak uygulanır.

Hızlı Başlangıç

Bicep kullanarak hız sınırı kuralına sahip bir Azure Front Door profili oluşturmak için bkz. Azure Front Door Standard veya Fiyat sınırıyla Premium Bicep hızlı başlangıcı.

Sonraki adımlar

Azure Front Door hakkında daha fazla bilgi edinin.