Dela via


Konfigurera en hastighetsbegränsningsregel för brandväggen för webbaserade program

Hastighetsbegränsningsregeln för Azure Web Application Firewall för Azure Front Door styr antalet begäranden som tillåts från en viss käll-IP-adress till programmet under en hastighetsgräns. Mer information om hastighetsbegränsning finns i Vad är hastighetsbegränsning för Azure Front Door?.

Den här artikeln visar hur du konfigurerar en regel för hastighetsbegränsning för webbaserade programbrandväggar (WAF) på Azure Front Door Standard- och Premium-nivåer.

Scenario

Anta att du ansvarar för en offentlig webbplats. Du har precis lagt till en sida med information om en kampanj som din organisation kör. Du är orolig för att om klienter besöker den sidan för ofta kanske vissa av dina serverdelstjänster inte kan skalas snabbt och programmet kan ha prestandaproblem.

Du bestämmer dig för att skapa en hastighetsbegränsningsregel som begränsar varje käll-IP-adress till högst 1 000 begäranden per minut. Du tillämpar bara den här regeln på begäranden som innehåller */promo* i begärande-URL:en.

Dricks

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Skapa en Azure Front Door-profil och EN WAF-princip

  1. I Azure-portalen väljer du Skapa en resurs.

    Skärmbild som visar knappen Skapa en resurs på startsidan.

  2. Sök efter Front Door och välj Front Door- och CDN-profiler.

    Skärmbild som visar marknadsplatsen med Front Door markerat.

  3. Välj Skapa.

    Skärmbild som visar Front Door- och CDN-profiler med knappen Skapa markerad.

  4. Välj Fortsätt för att skapa en Front Door för att använda snabbskapandeprocessen för portalen.

    Skärmbild som visar Azure Front Door-erbjudandena med alternativet Snabbskapande markerat och knappen Fortsätt att skapa en Front Door markerad.

  5. Ange den information som krävs på sidan Grundläggande :

    • Resursgrupp: Välj en befintlig resursgrupp eller skapa en ny resursgrupp för Azure Front Door- och WAF-resurserna.
    • Namn: Ange namnet på din Azure Front Door-profil.
    • Nivå: Välj Standard eller Premium. I det här scenariot stöder båda nivåerna hastighetsbegränsning.
    • Slutpunktsnamn: Ange ett unikt namn för slutpunkten eftersom Azure Front Door-slutpunkter måste ha globalt unika namn.
    • Ursprungstyp och Ursprungsvärdnamn: Välj det ursprungsprogram som du vill skydda med din hastighetsbegränsningsregel.
  6. Bredvid WAF-princip väljer du Skapa ny.

    Skärmbild som visar arbetsflödet för att skapa Azure Front Door med waf-principen Knappen Skapa ny markerad.

  7. Ange namnet på en WAF-princip och välj Skapa.

    Skärmbild som visar uppmaningen att skapa WAF-princip med knappen Skapa markerad.

  8. Välj Granska + skapa>Skapa.

    Skärmbild som visar den slutförda Azure Front Door-profilkonfigurationen.

  9. När distributionen är klar väljer du Gå till resurs.

Skapa en hastighetsbegränsningsregel

  1. Välj Anpassade regler>Lägg till anpassad regel.

    Skärmbild som visar WAF-principens sida med anpassade regler.

  2. Ange den information som krävs för att skapa en hastighetsbegränsningsregel:

    • Namn på anpassad regel: Ange namnet på den anpassade regeln, till exempel rateLimitRule.
    • Regeltyp: Välj Hastighetsgräns.
    • Prioritet: Ange regelns prioritet, till exempel 1.
    • Varaktighet för hastighetsbegränsning: Välj 1 minut.
    • Tröskelvärde för hastighetsbegränsning (begäranden): Ange 1 000.
  3. I Villkor anger du den information som krävs för att ange ett matchningsvillkor för att identifiera begäranden där URL:en innehåller strängen */promo*:

    • Matchningstyp: Välj Sträng.
    • Matchningsvariabel: Ange RequestUri.
    • Åtgärd: Välj är.
    • Operator: Välj Innehåller.
    • Matchningsvärden: Ange /promo.
  4. För Åtgärd väljer du Logg eller Blockera.

    Regler för hastighetsbegränsning stöder Log endast och Block åtgärder. Allow stöds inte.

    Skärmbild som visar konfigurationen av den anpassade regeln.

  5. Markera Lägg till.

  6. Välj Spara.

    Skärmbild som visar listan över anpassade regler, inklusive den nya regeln för hastighetsbegränsning.

Använd förebyggande läge på WAF

Som standard skapar Azure-portalen WAF-principer i identifieringsläge. Den här inställningen innebär att WAF inte blockerar begäranden. Mer information finns i WAF-lägen.

Justera din WAF innan du använder förebyggande läge. Justering hjälper till att undvika falska positiva identifieringar. Det hjälper också till att förhindra att din WAF blockerar legitima begäranden.

Här konfigurerar du om WAF för att använda förebyggande läge.

  1. Öppna WAF-principen.

    Observera att principläget är inställt på Identifiering.

    Skärmbild som visar WAF-principen med principläget och knappen Växla till förebyggande läge markerat.

  2. Välj Växla till förebyggande läge.

Förutsättningar

Innan du börjar konfigurera en hastighetsbegränsningsprincip konfigurerar du Din PowerShell-miljö och skapar en Azure Front Door-profil.

Konfigurera PowerShell-miljön

Azure PowerShell tillhandahåller en uppsättning cmdletar som använder Azure Resource Manager-modellen för att hantera dina Azure-resurser.

Du kan installera Azure PowerShell på en lokal dator och använda det i alla PowerShell-sessioner. Här loggar du in med dina Azure-autentiseringsuppgifter och installerar Azure PowerShell-modulen för Azure Front Door Standard eller Premium.

Ansluta till Azure med en interaktiv dialogruta för inloggning

Logga in på Azure genom att köra följande kommando:

Connect-AzAccount

Installera PowerShellGet

Kontrollera att den aktuella versionen av PowerShellGet är installerad. Kör följande kommando:

Install-Module PowerShellGet -Force -AllowClobber

Starta sedan om PowerShell för att se till att du använder den senaste versionen.

Installera Azure Front Door PowerShell-modulerna

Installera PowerShell-modulerna Az.FrontDoor och Az.Cdn för att arbeta med Azure Front Door Standard eller Premium från PowerShell.

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

Du använder modulen Az.Cdn för att arbeta med Azure Front Door Standard- eller Premium-resurser. Använd modulen Az.FrontDoor för att arbeta med WAF-resurser.

Skapa en resursgrupp

Använd cmdleten New-AzResourceGroup för att skapa en ny resursgrupp för din Azure Front Door-profil och WAF-princip. Uppdatera resursgruppens namn och plats för dina egna krav:

$resourceGroupName = 'FrontDoorRateLimit'

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

Skapa en Azure Front Door-profil

Använd cmdleten New-AzFrontDoorCdnProfile för att skapa en ny Azure Front Door-profil.

I det här exemplet skapar du en Azure Front Door-standardprofil med namnet MyFrontDoorProfile:

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

Skapa en Azure Front Door-slutpunkt

Använd cmdleten New-AzFrontDoorCdnEndpoint för att lägga till en slutpunkt i din Azure Front Door-profil.

Azure Front Door-slutpunkter måste ha globalt unika namn, så uppdatera värdet för variabeln $frontDoorEndpointName till något unikt.

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

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

Definiera ett URL-matchningsvillkor

Använd cmdleten New-AzFrontDoorWafMatchConditionObject för att skapa ett matchningsvillkor för att identifiera begäranden som ska ha hastighetsgränsen tillämpad.

Följande exempel matchar begäranden där variabeln RequestUri innehåller strängen /promo:

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

Skapa en anpassad hastighetsbegränsningsregel

Använd cmdleten New-AzFrontDoorWafCustomRuleObject för att skapa hastighetsbegränsningsregeln, som innehåller matchningsvillkoret som du definierade i föregående steg och tröskelvärdet för begäran.

I följande exempel anges gränsen till 1000:

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

När en käll-IP-adress skickar fler än 1 000 begäranden inom en minut blockerar WAF efterföljande begäranden tills nästa minut startar.

Skapa en WAF-princip

Använd cmdleten New-AzFrontDoorWafPolicy för att skapa en WAF-princip som innehåller den anpassade regel som du skapade.

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

Konfigurera en säkerhetsprincip för att associera din Azure Front Door-profil med din WAF-princip

Använd cmdleten New-AzFrontDoorCdnSecurityPolicy för att skapa en säkerhetsprincip för din Azure Front Door-profil. En säkerhetsprincip associerar din WAF-princip med domäner som du vill ska skyddas av WAF-regeln.

I det här exemplet associerar du slutpunktens standardvärdnamn med din WAF-princip:

$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

Förutsättningar

Innan du börjar konfigurera en hastighetsbegränsningsprincip konfigurerar du Din Azure CLI-miljö och skapar en Azure Front Door-profil.

Konfigurera din Azure CLI-miljö

Azure CLI tillhandahåller en uppsättning kommandon som använder Azure Resource Manager-modellen för att hantera dina Azure-resurser.

Du kan installera Azure CLI på din lokala dator och använda den i alla gränssnittssessioner. Här loggar du in med dina Azure-autentiseringsuppgifter och installerar Azure CLI-tillägget för Azure Front Door Standard eller Premium.

Ansluta till Azure med en interaktiv dialogruta för inloggning

Logga in på Azure genom att köra följande kommando:

az login

Installera Azure Front Door-tillägget för Azure CLI

front-door Installera tillägget så att det fungerar med Azure Front Door WAF från Azure CLI:

az extension add --name front-door

Du använder kommandona az afd för att arbeta med Azure Front Door Standard- eller Premium-resurser. Använd kommandona az network front-door waf-policy för att arbeta med WAF-resurser.

Skapa en resursgrupp

Använd kommandot az group create för att skapa en ny resursgrupp för din Azure Front Door-profil och WAF-princip. Uppdatera resursgruppens namn och plats för dina egna krav:

resourceGroupName='FrontDoorRateLimit'

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

Skapa en Azure Front Door-profil

Använd kommandot az afd profile create för att skapa en ny Azure Front Door-profil.

I det här exemplet skapar du en Azure Front Door-standardprofil med namnet MyFrontDoorProfile:

frontDoorProfileName='MyFrontDoorProfile'

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

Skapa en Azure Front Door-slutpunkt

Använd kommandot az afd endpoint create för att lägga till en slutpunkt i din Azure Front Door-profil.

Azure Front Door-slutpunkter måste ha globalt unika namn, så uppdatera värdet för variabeln frontDoorEndpointName till något unikt.

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

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

Skapa en WAF-princip

Använd kommandot az network front-door waf-policy create för att skapa en WAF-princip:

wafPolicyName='MyWafPolicy'

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

Förbereda för att lägga till en anpassad hastighetsbegränsningsregel

Använd kommandot az network front-door waf-policy rule create för att skapa en anpassad hastighetsbegränsningsregel. I följande exempel anges gränsen till 1 000 begäranden per minut.

Regler för hastighetsbegränsning måste innehålla ett matchningsvillkor som du skapar i nästa steg. I det här kommandot inkluderar --defer du argumentet som säger till Azure CLI att inte skicka regeln till Azure ännu.

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

När en käll-IP-adress skickar fler än 1 000 begäranden inom en minut blockerar WAF efterföljande begäranden tills nästa minut startar.

Lägga till ett matchningsvillkor

Använd kommandot az network front-door waf-policy rule match-condition add för att lägga till ett matchningsvillkor i din anpassade regel. Matchningsvillkoret identifierar begäranden som ska ha hastighetsgränsen tillämpad.

Följande exempel matchar begäranden där variabeln RequestUri innehåller strängen /promo:

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

När du skickar det här kommandot skapar Azure CLI regeln för hastighetsbegränsning och matchar villkoret tillsammans.

Konfigurera en säkerhetsprincip för att associera din Azure Front Door-profil med din WAF-princip

Använd kommandot az afd security-policy create för att skapa en säkerhetsprincip för din Azure Front Door-profil. En säkerhetsprincip associerar din WAF-princip med domäner som du vill ska skyddas av WAF-regeln.

I det här exemplet associerar du slutpunktens standardvärdnamn med din WAF-princip:

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

Föregående kod letar upp Azure-resursidentifierarna för WAF-principen och Azure Front Door-slutpunkten så att den kan associera dem med din säkerhetsprincip.

Kommentar

När du gör ändringar i waf-principen behöver du inte återskapa Azure Front Door-säkerhetsprincipen. WAF-principuppdateringar tillämpas automatiskt på Azure Front Door-domänerna.

Snabbstart

Information om hur du skapar en Azure Front Door-profil med en hastighetsbegränsningsregel med hjälp av Bicep finns i snabbstarten Azure Front Door Standard eller Premium med hastighetsgräns Bicep.

Nästa steg

Läs mer om Azure Front Door.