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?.

Tento článek ukazuje, 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 zodpovídáte za veřejný web. Právě jste přidali stránku s informacemi o povýšení, které vaše organizace provozuje. Máte obavy, že pokud klienti navštíví tuto stránku příliš často, nemusí se některé z vašich back-endových služeb 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 použijete jenom na požadavky, které obsahují */promo* adresu URL požadavku.

Tip

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

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

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

    Snímek obrazovky znázorňující tlačítko Vytvořit prostředek na domovské stránce

  2. Vyhledejte službu Front Door a vyberte profily služby Front Door a CDN.

    Snímek obrazovky znázorňující marketplace se zvýrazněnou možností Front Door

  3. Vyberte Vytvořit.

    Snímek obrazovky znázorňující profily služby Front Door a CDN se zvýrazněným tlačítkem Vytvořit

  4. Výběrem možnosti Pokračovat vytvoříte službu Front Door a použijete proces rychlého vytvoření portálu.

    Snímek obrazovky znázorňující nabídky Služby Azure Front Door s vybranou možností Rychlé vytvoření a zvýrazněným tlačítkem Pokračovat pro vytvoření služby Front Door

  5. Na stránce Základy zadejte požadované informace:

    • Skupina prostředků: Vyberte existující skupinu prostředků nebo vytvořte novou skupinu prostředků pro prostředky Azure Front Door a WAF.
    • Název: Zadejte název profilu služby Azure Front Door.
    • Úroveň: Vyberte 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 zdroje a název hostitele Origin: Vyberte aplikaci původu, kterou chcete chránit pomocí pravidla omezení rychlosti.
  6. Vedle zásad WAF vyberte Vytvořit novou.

    Snímek obrazovky znázorňující pracovní postup vytvoř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.

    Snímek obrazovky znázorňující výzvu k vytvoření zásady WAF se zvýrazněným tlačítkem Vytvořit

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

    Snímek obrazovky znázorňující dokončenou konfiguraci profilu služby Azure Front Door

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

Vytvoření pravidla omezení rychlosti

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

    Snímek obrazovky znázorňující stránku vlastních pravidel 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 limit rychlosti.
    • Priorita: Zadejte prioritu pravidla, například 1.
    • Doba trvání limitu rychlosti: Vyberte 1 minutu.
    • Prahová hodnota limitu rychlosti (požadavky):Zadejte 1 000.
  3. V části Podmínky zadejte informace potřebné k zadání podmínky shody pro identifikaci požadavků, ve kterých adresa URL obsahuje řetězec */promo*:

    • Typ shody: Vyberte řetězec.
    • Shoda proměnné: Zadejte Identifikátor RequestUri.
    • Operace: Select is.
    • Operátor: Vybrat obsahuje.
    • Hodnoty shody: Zadejte /promo.
  4. V případě akce vyberte Protokol nebo Blokovat.

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

    Snímek obrazovky znázorňující konfiguraci vlastního pravidla

  5. Vyberte přidat.

  6. Zvolte Uložit.

    Snímek obrazovky se seznamem vlastních pravidel, včetně nového pravidla omezení rychlosti

Použití režimu prevence ve WAF

Azure Portal ve výchozím nastavení vytvoří zásady WAF v režimu detekce. Toto nastavení znamená, že WAF neblokuje požadavky. Další informace najdete 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ě pozitivním detekcím. Pomáhá také zabránit firewallu WAF v blokování legitimních požadavků.

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

  1. Otevřete zásadu WAF.

    Všimněte si, že režim zásad je nastavený při detekci.

    Snímek obrazovky znázorňující zásadu WAF se zvýrazněným 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í PowerShellu 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. Tady se přihlásíte pomocí přihlašovacích údajů Azure a nainstalujete modul Azure PowerShellu 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

Potom restartujte PowerShell, abyste měli jistotu, že používáte nejnovější verzi.

Instalace modulů Azure Front Door PowerShellu

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

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

Tento Az.Cdn modul používáte k práci s prostředky Azure Front Door Standard nebo Premium. Az.FrontDoor Pomocí modulu můžete pracovat 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 skupiny prostředků a umístění 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é na něco jedinečného $frontDoorEndpointName .

$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ů, které by měly mít použitý limit rychlosti.

Následující příklad odpovídá žádostem, ve kterých RequestUri proměnná obsahuje řetězec /promo:

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

Vytvoření vlastního pravidla omezení rychlosti

Pomocí rutiny New-AzFrontDoorWafCustomRuleObject vytvořte pravidlo limitu rychlosti, které zahrnuje podmínku shody definovanou 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

Když jakákoli zdrojová IP adresa během jedné minuty odešle více než 1 000 požadavků, waf zablokuje následné požadavky až do další minuty.

Vytvoření zásad WAF

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

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

Konfigurace zásad zabezpečení pro přidružení profilu služby Azure Front Door k zásadám WAF

Pomocí rutiny New-AzFrontDoorCdnSecurityPolicy vytvořte zásadu zabezpečení pro profil služby Azure Front Door. Zásady zabezpečení přidružují 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é používají model Azure Resource Manageru ke správě prostředků Azure.

Azure CLI můžete nainstalovat na místní počítač a použít ho v libovolné relaci prostředí. Tady se přihlásíte pomocí 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

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

az extension add --name front-door

Pomocí příkazů můžete az afd pracovat s prostředky Azure Front Door Standard nebo Premium. az network front-door waf-policy Pomocí příkazů můžete pracovat s prostředky WAF.

Vytvoření skupiny zdrojů

Pomocí příkazu az group create vytvořte novou skupinu prostředků pro profil služby Azure Front Door a zásady WAF. Aktualizujte název skupiny prostředků a umístění 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é na něco jedinečného frontDoorEndpointName .

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 rate-limit. 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. V tomto příkazu zahrnete --defer argument, který říká Rozhraní příkazového řádku Azure, aby pravidlo ještě neodesílalo do Azure.

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

Když jakákoli zdrojová IP adresa během jedné minuty odešle více než 1 000 požadavků, waf zablokuje následné požadavky až do další minuty.

Přidání podmínky shody

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

Následující příklad odpovídá žádostem, ve kterých RequestUri proměnná 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ínky shody společně.

Konfigurace zásad zabezpečení pro přidružení profilu služby Azure Front Door k zásadám WAF

Pomocí příkazu az afd security-policy create vytvořte zásadu zabezpečení pro profil služby Azure Front Door. Zásady zabezpečení přidružují 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:

Kdykoli v zásadách WAF provedete změny, nemusíte znovu vytvářet zásady zabezpečení služby Azure Front Door. Aktualizace zásad WAF se automaticky použijí na domény služby Azure Front Door.

Rychlé zprovoznění

Pokud chcete vytvořit profil služby Azure Front Door s pravidlem omezení rychlosti pomocí bicep, podívejte se na rychlý start k Azure Front Door Standard nebo Premium s limitem rychlosti Bicep.

Další kroky

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