Sdílet prostřednictvím


Konfigurace pravidla omezení rychlosti firewallu webových aplikací

Pravidlo omezení rychlosti firewallu webových aplikací Azure pro službu Azure Front Door řídí počet požadavků povolených z konkrétní zdrojové IP adresy do aplikace během doby trvání omezení rychlosti. Další informace o omezování rychlosti najdete v tématu Co je omezování rychlosti pro Azure Front Door?.

V tomto článku se dozvíte, jak nakonfigurovat pravidlo omezení rychlosti firewallu webových aplikací (WAF) na úrovních Azure Front Door Standard a Premium.

Scénář

Předpokládejme, že jste zodpovědní za veřejný web. Právě jste přidali stránku s informacemi o propagační akci, kterou vaše organizace pořádá. Obáváte se, že pokud klienti navštěvují tuto stránku příliš často, některé z vašich back-endových služeb se nemusí rychle škálovat a aplikace může mít problémy s výkonem.

Rozhodnete se vytvořit pravidlo omezení rychlosti, které omezí každou zdrojovou IP adresu na maximálně 1 000 požadavků za minutu. Toto pravidlo se použije pouze na požadavky, které v adrese URL požadavku obsahují */promo* .

Návod

Pokud nemáte předplatné Azure, vytvořte si bezplatný účet před zahájením.

Vytvoření profilu služby Azure Front Door a zásad WAF

  1. Na webu Azure Portal vyberte Vytvořit prostředek.

  2. Vyhledejte Front Door a vyberte Profily Front Door a CDN.

  3. Vyberte Vytvořit.

  4. Výběrem Pokračovat vytvořte Front Door, čímž spustíte proces rychlého vytvoření portálu.

  5. Zadejte požadované informace na stránce Základy :

    • Skupina prostředků: Vyberte existující skupinu prostředků nebo vytvořte novou skupinu prostředků pro prostředky služby Azure Front Door a WAF.
    • Název: Zadejte název profilu služby Azure Front Door.
    • Úroveň: Vyberte možnost Standard nebo Premium. V tomto scénáři obě úrovně podporují omezování rychlosti.
    • Název koncového bodu: Zadejte jedinečný název koncového bodu, protože koncové body služby Azure Front Door musí mít globálně jedinečné názvy.
    • Typ původu a název hostitele zdroje: Vyberte aplikaci původu, kterou chcete chránit pravidlem omezení rychlosti.
  6. Vedle zásady WAF vyberte Vytvořit novou.

    Snímek obrazovky, který ukazuje pracovní postup vytváření služby Azure Front Door se zvýrazněným tlačítkem Vytvořit novou zásadu WAF.

  7. Zadejte název zásady WAF a vyberte Vytvořit.

  8. Vyberte Zkontrolovat + vytvořit>Vytvořit.

  9. Po dokončení nasazení vyberte Přejít k prostředku.

Vytvoření pravidla pro omezení rychlosti

  1. Vyberte Vlastní pravidla>Přidat vlastní pravidlo.

    Snímek obrazovky, který ukazuje vlastní pravidla na stránce zásad WAF.

  2. Zadejte informace potřebné k vytvoření pravidla omezení rychlosti:

    • Název vlastního pravidla: Zadejte název vlastního pravidla, například rateLimitRule.
    • Typ pravidla: Vyberte možnost Omezení rychlosti.
    • Priorita: Zadejte prioritu pravidla, například 1.
    • Doba trvání omezení rychlosti: Vyberte 1 minutu.
    • Prahová hodnota omezení rychlosti (požadavky): Zadejte 1000.
  3. Do pole Podmínky zadejte informace potřebné k určení podmínky shody pro identifikaci požadavků, kde adresa URL obsahuje řetězec */promo*:

    • Typ shody: Vyberte Řetězec.
    • Proměnná shody: Zadejte RequestUri.
    • Operace: Vyberte je.
    • Operátor: Vyberte Obsahuje.
    • Odpovídající hodnoty: Zadejte /promo.
  4. V části Akce vyberte možnost Záznam nebo Blokovat.

    Pravidla omezení rychlosti podporují pouze Log a Block činnosti. Allow není podporováno.

    Snímek obrazovky, který ukazuje konfiguraci vlastního pravidla.

  5. Vyberte Přidat.

  6. Vyberte Uložit.

    Snímek obrazovky, který ukazuje seznam vlastních pravidel, včetně nového pravidla pro omezení rychlosti.

Použití režimu prevence na WAF

Ve výchozím nastavení Azure Portal vytváří zásady WAF v režimu detekce. Toto nastavení znamená, že WAF neblokuje požadavky. Další informace naleznete v tématu Režimy WAF.

Před použitím režimu prevence vylaďte WAF. Ladění pomáhá vyhnout se falešným pozitivním detekcím. Pomáhá také zabránit tomu, aby WAF blokoval legitimní požadavky.

Zde překonfigurujete WAF tak, aby používal režim prevence.

  1. Otevřete politiku WAF.

    Všimněte si, že režim zásad je nastaven na Detekci.

    Snímek obrazovky, který ukazuje zásady WAF se zvýrazněným režimem zásad a tlačítkem Přepnout do režimu prevence.

  2. Vyberte Přepnout do režimu prevence.

Požadavky

Než začnete nastavovat zásady omezení rychlosti, nastavte prostředí PowerShell a vytvořte profil služby Azure Front Door.

Nastavení prostředí PowerShell

Prostředí Azure PowerShell poskytuje sadu rutin, které ke správě vašich prostředků Azure využívají model Azure Resource Manager.

Azure PowerShell můžete nainstalovat na místní počítač a používat v jakékoli relaci PowerShellu. Zde se přihlásíte pomocí svých přihlašovacích údajů Azure a nainstalujete modul Azure PowerShell pro Azure Front Door Standard nebo Premium.

Připojení k Azure pomocí interaktivního dialogového okna pro přihlášení

K Azure se přihlásíte spuštěním následujícího příkazu:

Connect-AzAccount

Instalace modulu PowerShellGet

Ujistěte se, že je nainstalovaná aktuální verze modulu PowerShellGet . Spusťte následující příkaz:

Install-Module PowerShellGet -Force -AllowClobber

Poté restartujte PowerShell, abyste se ujistili, že používáte nejnovější verzi.

Instalace modulů PowerShellu služby Azure Front Door

Nainstalujte moduly PowerShell Az.FrontDoor a Az.Cdn pro práci se službou Azure Front Door Standard nebo Premium z PowerShellu.

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

Modul Az.Cdn se používá k práci s prostředky Azure Front Door Standard nebo Premium. Použijte modul Az.FrontDoor k práci s prostředky WAF.

Vytvoření skupiny zdrojů

Pomocí rutiny New-AzResourceGroup vytvořte novou skupinu prostředků pro váš profil služby Azure Front Door a zásady WAF. Aktualizujte název a umístění skupiny prostředků podle vlastních požadavků:

$resourceGroupName = 'FrontDoorRateLimit'

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

Vytvoření profilu služby Azure Front Door

Pomocí rutiny New-AzFrontDoorCdnProfile vytvořte nový profil služby Azure Front Door.

V tomto příkladu vytvoříte standardní profil služby Azure Front Door s názvem MyFrontDoorProfile:

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

Vytvoření koncového bodu služby Azure Front Door

Pomocí rutiny New-AzFrontDoorCdnEndpoint přidejte koncový bod do profilu služby Azure Front Door.

Koncové body služby Azure Front Door musí mít globálně jedinečné názvy, proto aktualizujte hodnotu proměnné $frontDoorEndpointName na něco jedinečného.

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

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

Definování podmínky shody adresy URL

Pomocí rutiny New-AzFrontDoorWafMatchConditionObject vytvořte podmínku shody k identifikaci požadavků, na které by se měl použít limit rychlosti.

Následující příklad odpovídá požadavkům, kde proměnná RequestUri obsahuje řetězec /promo:

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

Vytvoření vlastního pravidla pro omezení rychlosti

Pomocí rutiny New-AzFrontDoorWafCustomRuleObject vytvořte pravidlo rate-limit, které zahrnuje podmínku shody, kterou jste definovali v předchozím kroku, a prahovou hodnotu požadavku.

Následující příklad nastaví limit na 1000:

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

Pokud jakákoli zdrojová IP adresa odešle více než 1 000 požadavků během jedné minuty, WAF zablokuje další požadavky až do začátku další minuty.

Vytvoření zásad WAF

Pomocí rutiny New-AzFrontDoorWafPolicy vytvořte zásadu WAF, která obsahuje vlastní pravidlo, které jste vytvořili.

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

Nakonfigurujte zásadu zabezpečení pro přidružení profilu služby Azure Front Door k vašim zásadám WAF

Pomocí rutiny New-AzFrontDoorCdnSecurityPolicy vytvořte zásady zabezpečení pro svůj profil služby Azure Front Door. Zásady zabezpečení přidruží vaše zásady WAF k doménám, které chcete chránit pravidlem WAF.

V tomto příkladu přidružíte výchozí název hostitele koncového bodu k zásadám WAF:

$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

Požadavky

Než začnete nastavovat zásady omezení rychlosti, nastavte prostředí Azure CLI a vytvořte profil služby Azure Front Door.

Nastavení prostředí Azure CLI

Azure CLI poskytuje sadu příkazů, které ke správě prostředků Azure používají model Azure Resource Manager .

Azure CLI můžete nainstalovat na místní počítač a použít ho v jakékoli relaci prostředí. Zde se přihlásíte pomocí svých přihlašovacích údajů Azure a nainstalujete rozšíření Azure CLI pro Azure Front Door Standard nebo Premium.

Připojení k Azure pomocí interaktivního dialogového okna pro přihlášení

K Azure se přihlásíte spuštěním následujícího příkazu:

az login

Instalace rozšíření Azure Front Door pro Azure CLI

Nainstalujte front-door rozšíření pro práci s WAF služby Azure Front Door z Azure CLI:

az extension add --name front-door

Příkazy az afd se používají pro práci s prostředky Azure Front Door Standard nebo Premium. Pomocí těchto příkazů az network front-door waf-policy můžete pracovat se zdroji WAF.

Vytvoření skupiny zdrojů

Pomocí příkazu az group create vytvořte novou skupinu prostředků pro váš profil služby Azure Front Door a zásady WAF. Aktualizujte název a umístění skupiny prostředků podle vlastních požadavků:

resourceGroupName='FrontDoorRateLimit'

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

Vytvoření profilu služby Azure Front Door

Pomocí příkazu az afd profile create vytvořte nový profil služby Azure Front Door.

V tomto příkladu vytvoříte standardní profil služby Azure Front Door s názvem MyFrontDoorProfile:

frontDoorProfileName='MyFrontDoorProfile'

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

Vytvoření koncového bodu služby Azure Front Door

Pomocí příkazu az afd endpoint create přidejte koncový bod do profilu služby Azure Front Door.

Koncové body služby Azure Front Door musí mít globálně jedinečné názvy, proto aktualizujte hodnotu proměnné frontDoorEndpointName na něco jedinečného.

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

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

Vytvoření zásad WAF

Pomocí příkazu az network front-door waf-policy create vytvořte zásadu WAF:

wafPolicyName='MyWafPolicy'

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

Příprava na přidání vlastního pravidla omezení rychlosti

Pomocí příkazu az network front-door waf-policy rule create vytvořte vlastní pravidlo omezení rychlosti. Následující příklad nastaví limit na 1 000 požadavků za minutu.

Pravidla omezení rychlosti musí obsahovat podmínku shody, kterou vytvoříte v dalším kroku. Do tohoto příkazu zahrnete --defer argument, který říká Azure CLI, aby pravidlo do Azure zatím neodesílalo.

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

Pokud jakákoli zdrojová IP adresa odešle více než 1 000 požadavků během jedné minuty, WAF zablokuje další požadavky až do začátku další minuty.

Přidejte podmínku shody

Pomocí příkazu az network front-door waf-policy rule match-condition add přidejte do vlastního pravidla podmínku shody. Podmínka shody identifikuje požadavky, na které by se měl použít limit přenosové rychlosti.

Následující příklad odpovídá požadavkům, kde proměnná RequestUri obsahuje řetězec /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

Když odešlete tento příkaz, Azure CLI vytvoří pravidlo omezení rychlosti a podmínku shody společně.

Nakonfigurujte zásadu zabezpečení pro přidružení profilu služby Azure Front Door k vašim zásadám WAF

Pomocí příkazu az afd security-policy create vytvořte zásadu zabezpečení pro svůj profil služby Azure Front Door. Zásady zabezpečení přidruží vaše zásady WAF k doménám, které chcete chránit pravidlem WAF.

V tomto příkladu přidružíte výchozí název hostitele koncového bodu k zásadám WAF:

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

Předchozí kód vyhledá identifikátory prostředků Azure pro zásady WAF a koncový bod služby Azure Front Door, aby je mohl přidružit k vašim zásadám zabezpečení.

Poznámka:

Pokaždé, když provedete změny zásad WAF, nemusíte znovu vytvářet zásady zabezpečení služby Azure Front Door. Aktualizace zásad WAF se automaticky aplikují na domény služby Azure Front Door.

Rychlý začátek

Pokud chcete vytvořit profil služby Azure Front Door s pravidlem omezení rychlosti pomocí nástroje Bicep, přečtěte si rychlý start služby Azure Front Door Standard nebo Premium s omezením rychlosti .

Další kroky

Přečtěte si další informace o službě Azure Front Door.