Een regel voor frequentielimiet voor Web Application Firewall configureren
De azure Web Application Firewall-frequentielimietregel voor Azure Front Door bepaalt het aantal aanvragen dat is toegestaan van een bepaald bron-IP-adres naar de toepassing tijdens een duur van de frequentielimiet. Zie Wat is snelheidsbeperking voor Azure Front Door? voor meer informatie over snelheidsbeperking.
In dit artikel wordt beschreven hoe u een waf-frequentielimietregel (Web Application Firewall) configureert in Azure Front Door Standard- en Premium-lagen.
Scenario
Stel dat u verantwoordelijk bent voor een openbare website. U hebt zojuist een pagina toegevoegd met informatie over een promotie die uw organisatie uitvoert. U bent bang dat als clients die pagina te vaak bezoeken, sommige van uw back-endservices mogelijk niet snel worden geschaald en de toepassing prestatieproblemen kan hebben.
U besluit een regel voor frequentielimiet te maken waarmee elk bron-IP-adres wordt beperkt tot maximaal 1000 aanvragen per minuut. U past deze regel alleen toe op aanvragen die de aanvraag-URL bevatten */promo*
.
Tip
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Een Azure Front Door-profiel en WAF-beleid maken
Selecteer in Azure Portal Een resource maken.
Zoek naar Front Door en selecteer Front Door- en CDN-profielen.
Selecteer Maken.
Selecteer Doorgaan om een Front Door te maken om het proces voor het maken van de portal snel te gebruiken.
Voer de vereiste gegevens in op de pagina Basisinformatie :
- Resourcegroep: Selecteer een bestaande resourcegroep of maak een nieuwe resourcegroep voor de Azure Front Door- en WAF-resources.
- Naam: Voer de naam in van uw Azure Front Door-profiel.
- Laag: Selecteer Standard of Premium. Voor dit scenario bieden beide lagen ondersteuning voor frequentiebeperking.
- Eindpuntnaam: Geef een unieke naam op voor uw eindpunt, omdat Azure Front Door-eindpunten wereldwijd unieke namen moeten hebben.
- Oorsprongstype en hostnaam Van oorsprong: selecteer de oorspronkelijke toepassing die u wilt beveiligen met uw regel voor frequentielimiet.
Selecteer Nieuwe maken naast WAF-beleid.
Voer de naam van een WAF-beleid in en selecteer Maken.
Selecteer Beoordelen en maken>Maken.
Nadat de implementatie is voltooid, selecteert u Ga naar de resource.
Een regel voor frequentielimiet maken
Selecteer Aangepaste regels>Aangepaste regel toevoegen.
Voer de informatie in die nodig is om een regel voor frequentielimiet te maken:
- Aangepaste regelnaam: Voer de naam van de aangepaste regel in, zoals rateLimitRule.
- Regeltype: Frequentielimiet selecteren.
- Prioriteit: Voer de prioriteit van de regel in, zoals 1.
- Duur van frequentielimiet: Selecteer 1 minuut.
- Drempelwaarde voor frequentielimiet (aanvragen): voer 1000 in.
Voer in Voorwaarden de informatie in die vereist is om een overeenkomstvoorwaarde op te geven om aanvragen te identificeren waarin de URL de tekenreeks
*/promo*
bevat:- Overeenkomsttype: Selecteer Tekenreeks.
- Overeenkomstvariabele: Voer RequestUri in.
- Bewerking: Selecteren is.
- Operator: Select Contains.
- Overeenkomende waarden: Voer /promo in.
Selecteer Logboek of Blokkeren voor Actie.
Regels voor frequentielimieten bieden alleen ondersteuning
Log
enBlock
acties.Allow
wordt niet ondersteund.Selecteer Toevoegen.
Selecteer Opslaan.
Preventiemodus gebruiken op de WAF
Standaard maakt Azure Portal WAF-beleid in de detectiemodus. Deze instelling betekent dat de WAF aanvragen niet blokkeert. Zie WAF-modi voor meer informatie.
Stem uw WAF af voordat u de preventiemodus gebruikt. Afstemming helpt bij het voorkomen van fout-positieve detecties. Het helpt ook om te voorkomen dat uw WAF legitieme aanvragen blokkeert.
Hier configureert u de WAF opnieuw om de preventiemodus te gebruiken.
Open het WAF-beleid.
U ziet dat de beleidsmodus is ingesteld bij Detectie.
Selecteer Overschakelen naar de preventiemodus.
Vereisten
Voordat u begint met het instellen van een beleid voor frequentielimiet, stelt u uw PowerShell-omgeving in en maakt u een Azure Front Door-profiel.
Uw PowerShell-omgeving instellen
Azure PowerShell voorziet in een set van cmdlets die gebruikmaken van het Azure Resource Manager-model om uw Azure-resources te beheren.
U kunt Azure PowerShell op uw lokale computer installeren en in elke PowerShell-sessie gebruiken. Hier meldt u zich aan met uw Azure-referenties en installeert u de Azure PowerShell-module voor Azure Front Door Standard of Premium.
Verbinding maken met Azure met een interactief dialoogvenster voor aanmelden
Meld u aan bij Azure door de volgende opdracht uit te voeren:
Connect-AzAccount
PowerShellGet installeren
Zorg ervoor dat de huidige versie van PowerShellGet is geïnstalleerd. Voer de volgende opdracht uit:
Install-Module PowerShellGet -Force -AllowClobber
Start Vervolgens PowerShell opnieuw om ervoor te zorgen dat u de nieuwste versie gebruikt.
De Azure Front Door PowerShell-modules installeren
Installeer de Az.FrontDoor
en Az.Cdn
PowerShell-modules om te werken met Azure Front Door Standard of Premium vanuit PowerShell.
Install-Module -Name Az.FrontDoor
Install-Module -Name Az.Cdn
U gebruikt de Az.Cdn
module om te werken met Azure Front Door Standard- of Premium-resources. Gebruik de Az.FrontDoor
module om te werken met WAF-resources.
Een brongroep maken
Gebruik de cmdlet New-AzResourceGroup om een nieuwe resourcegroep te maken voor uw Azure Front Door-profiel en WAF-beleid. Werk de naam en locatie van de resourcegroep bij voor uw eigen vereisten:
$resourceGroupName = 'FrontDoorRateLimit'
New-AzResourceGroup -Name $resourceGroupName -Location 'westus'
Een Azure Front Door-profiel maken
Gebruik de cmdlet New-AzFrontDoorCdnProfile om een nieuw Azure Front Door-profiel te maken.
In dit voorbeeld maakt u een Standaardprofiel voor Azure Front Door met de naam MyFrontDoorProfile
:
$frontDoorProfile = New-AzFrontDoorCdnProfile `
-Name 'MyFrontDoorProfile' `
-ResourceGroupName $resourceGroupName `
-Location global `
-SkuName Standard_AzureFrontDoor
Een Azure Front Door-eindpunt maken
Gebruik de cmdlet New-AzFrontDoorCdnEndpoint om een eindpunt toe te voegen aan uw Azure Front Door-profiel.
Azure Front Door-eindpunten moeten wereldwijd unieke namen hebben, dus werk de waarde van de $frontDoorEndpointName
variabele bij naar iets unieks.
$frontDoorEndpointName = '<unique-front-door-endpoint-name>'
$frontDoorEndpoint = New-AzFrontDoorCdnEndpoint `
-EndpointName $frontDoorEndpointName `
-ProfileName $frontDoorProfile.Name `
-ResourceGroupName $frontDoorProfile.ResourceGroupName `
-Location $frontDoorProfile.Location
Een URL-overeenkomstvoorwaarde definiëren
Gebruik de cmdlet New-AzFrontDoorWafMatchConditionObject om een overeenkomstvoorwaarde te maken om aanvragen te identificeren waarop de frequentielimiet moet worden toegepast.
Het volgende voorbeeld komt overeen met aanvragen waarbij de RequestUri
variabele de tekenreeks /promo bevat:
$promoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable RequestUri `
-OperatorProperty Contains `
-MatchValue '/promo'
Een aangepaste regel voor frequentielimiet maken
Gebruik de cmdlet New-AzFrontDoorWafCustomRuleObject om de frequentielimietregel te maken, die de overeenkomstvoorwaarde bevat die u in de vorige stap hebt gedefinieerd en de drempelwaarde voor aanvragen.
In het volgende voorbeeld wordt de limiet ingesteld op 1000
:
$promoRateLimitRule = New-AzFrontDoorWafCustomRuleObject `
-Name 'rateLimitRule' `
-RuleType RateLimitRule `
-MatchCondition $promoMatchCondition `
-RateLimitThreshold 1000 `
-Action Block `
-Priority 1
Wanneer een bron-IP-adres binnen één minuut meer dan 1000 aanvragen verzendt, blokkeert de WAF volgende aanvragen tot de volgende minuut begint.
Een WAF-beleid maken
Gebruik de cmdlet New-AzFrontDoorWafPolicy om een WAF-beleid te maken, dat de aangepaste regel bevat die u hebt gemaakt.
$wafPolicy = New-AzFrontDoorWafPolicy `
-Name 'MyWafPolicy' `
-ResourceGroupName $frontDoorProfile.ResourceGroupName `
-Sku Standard_AzureFrontDoor `
-CustomRule $promoRateLimitRule
Een beveiligingsbeleid configureren om uw Azure Front Door-profiel te koppelen aan uw WAF-beleid
Gebruik de cmdlet New-AzFrontDoorCdnSecurityPolicy om een beveiligingsbeleid te maken voor uw Azure Front Door-profiel. Een beveiligingsbeleid koppelt uw WAF-beleid aan domeinen die u wilt beveiligen door de WAF-regel.
In dit voorbeeld koppelt u de standaardhostnaam van het eindpunt aan uw WAF-beleid:
$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
Vereisten
Voordat u begint met het instellen van een beleid voor frequentielimiet, stelt u uw Azure CLI-omgeving in en maakt u een Azure Front Door-profiel.
Uw Azure CLI-omgeving instellen
De Azure CLI biedt een set opdrachten die gebruikmaken van het Azure Resource Manager-model voor het beheren van uw Azure-resources.
U kunt de Azure CLI installeren op uw lokale computer en deze gebruiken in elke shell-sessie. Hier meldt u zich aan met uw Azure-referenties en installeert u de Azure CLI-extensie voor Azure Front Door Standard of Premium.
Verbinding maken met Azure met een interactief dialoogvenster voor aanmelden
Meld u aan bij Azure door de volgende opdracht uit te voeren:
az login
De Azure Front Door-extensie voor de Azure CLI installeren
Installeer de front-door
extensie om te werken met de Azure Front Door WAF vanuit de Azure CLI:
az extension add --name front-door
U gebruikt de az afd
opdrachten om te werken met Azure Front Door Standard- of Premium-resources. Gebruik de az network front-door waf-policy
opdrachten om te werken met WAF-resources.
Een brongroep maken
Gebruik de opdracht az group create om een nieuwe resourcegroep te maken voor uw Azure Front Door-profiel en WAF-beleid. Werk de naam en locatie van de resourcegroep bij voor uw eigen vereisten:
resourceGroupName='FrontDoorRateLimit'
az group create \
--name $resourceGroupName \
--location westus
Een Azure Front Door-profiel maken
Gebruik de opdracht az afd profile create om een nieuw Azure Front Door-profiel te maken.
In dit voorbeeld maakt u een Standaardprofiel voor Azure Front Door met de naam MyFrontDoorProfile
:
frontDoorProfileName='MyFrontDoorProfile'
az afd profile create \
--profile-name $frontDoorProfileName \
--resource-group $resourceGroupName \
--sku Standard_AzureFrontDoor
Een Azure Front Door-eindpunt maken
Gebruik de opdracht az afd endpoint create om een eindpunt toe te voegen aan uw Azure Front Door-profiel.
Azure Front Door-eindpunten moeten wereldwijd unieke namen hebben, dus werk de waarde van de frontDoorEndpointName
variabele bij naar iets unieks.
frontDoorEndpointName='<unique-front-door-endpoint-name>'
az afd endpoint create \
--endpoint-name $frontDoorEndpointName \
--profile-name $frontDoorProfileName \
--resource-group $resourceGroupName \
Een WAF-beleid maken
Gebruik de opdracht az network front-door waf-policy create om een WAF-beleid te maken:
wafPolicyName='MyWafPolicy'
az network front-door waf-policy create \
--name $wafPolicyName \
--resource-group $resourceGroupName \
--sku Standard_AzureFrontDoor
Een aangepaste regel voor frequentielimiet toevoegen voorbereiden
Gebruik de opdracht az network front-door waf-policy rule create om een aangepaste frequentielimietregel te maken. In het volgende voorbeeld wordt de limiet ingesteld op 1000 aanvragen per minuut.
Regels voor frequentielimiet moeten een overeenkomstvoorwaarde bevatten, die u in de volgende stap maakt. In deze opdracht neemt u het --defer
argument op, waarmee de Azure CLI de regel nog niet naar Azure verzendt.
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
Wanneer een bron-IP-adres binnen één minuut meer dan 1000 aanvragen verzendt, blokkeert de WAF volgende aanvragen tot de volgende minuut begint.
Een voorwaarde voor overeenkomst toevoegen
Gebruik de opdracht az network front-door waf-policy rule match-condition add om een overeenkomstvoorwaarde toe te voegen aan uw aangepaste regel. De overeenkomstvoorwaarde identificeert aanvragen waarop de frequentielimiet moet worden toegepast.
Het volgende voorbeeld komt overeen met aanvragen waarbij de RequestUri
variabele de tekenreeks /promo bevat:
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
Wanneer u deze opdracht verzendt, maakt de Azure CLI de regel voor frequentielimiet en overeenkomstvoorwaarde samen.
Een beveiligingsbeleid configureren om uw Azure Front Door-profiel te koppelen aan uw WAF-beleid
Gebruik de opdracht az afd security-policy create om een beveiligingsbeleid te maken voor uw Azure Front Door-profiel. Een beveiligingsbeleid koppelt uw WAF-beleid aan domeinen die u wilt beveiligen door de WAF-regel.
In dit voorbeeld koppelt u de standaardhostnaam van het eindpunt aan uw WAF-beleid:
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
Met de voorgaande code worden de Azure-resource-id's voor het WAF-beleid en het Azure Front Door-eindpunt opgezoekd, zodat deze kunnen worden gekoppeld aan uw beveiligingsbeleid.
Notitie
Wanneer u wijzigingen aanbrengt in uw WAF-beleid, hoeft u het Azure Front Door-beveiligingsbeleid niet opnieuw te maken. WAF-beleidsupdates worden automatisch toegepast op de Azure Front Door-domeinen.
Snelstart
Als u een Azure Front Door-profiel met een regel voor frequentielimiet wilt maken met Bicep, raadpleegt u de QuickStart voor Azure Front Door Standard of Premium met snelheidslimiet Bicep.
Volgende stappen
Meer informatie over Azure Front Door.