Konfigurowanie reguły ograniczania szybkości zapory aplikacji internetowej
Reguła limitu szybkości usługi Azure Web Application Firewall dla usługi Azure Front Door kontroluje liczbę żądań dozwolonych z określonego źródłowego adresu IP do aplikacji w czasie trwania limitu szybkości. Aby uzyskać więcej informacji na temat ograniczania szybkości, zobacz Co to jest ograniczanie szybkości dla usługi Azure Front Door?.
W tym artykule pokazano, jak skonfigurować regułę limitu szybkości zapory aplikacji internetowej (WAF) w warstwach Azure Front Door Standard i Premium.
Scenariusz
Załóżmy, że odpowiadasz za publiczną witrynę internetową. Właśnie dodano stronę z informacjami na temat podwyższenia poziomu organizacji. Obawiasz się, że jeśli klienci odwiedzają tę stronę zbyt często, niektóre usługi zaplecza mogą nie być skalowane szybko, a aplikacja może mieć problemy z wydajnością.
Decydujesz się utworzyć regułę limitu szybkości, która ogranicza każdy źródłowy adres IP do maksymalnie 1000 żądań na minutę. Ta reguła jest stosowana tylko do żądań, które znajdują się */promo*
w adresie URL żądania.
Napiwek
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Tworzenie profilu usługi Azure Front Door i zasad zapory aplikacji internetowej
W witrynie Azure Portal wybierz polecenie Utwórz zasób.
Wyszukaj usługę Front Door i wybierz pozycję Profile usługi Front Door i CDN.
Wybierz pozycję Utwórz.
Wybierz pozycję Kontynuuj, aby utworzyć usługę Front Door , aby użyć procesu szybkiego tworzenia portalu.
Wprowadź wymagane informacje na stronie Podstawy :
- Grupa zasobów: wybierz istniejącą grupę zasobów lub utwórz nową grupę zasobów dla zasobów usługi Azure Front Door i zapory aplikacji internetowej.
- Nazwa: wprowadź nazwę profilu usługi Azure Front Door.
- Warstwa: wybierz pozycję Standardowa lub Premium. W tym scenariuszu obie warstwy obsługują ograniczanie szybkości.
- Nazwa punktu końcowego: podaj unikatową nazwę punktu końcowego, ponieważ punkty końcowe usługi Azure Front Door muszą mieć unikatowe nazwy globalne.
- Typ źródła i nazwa hosta źródła: wybierz aplikację pochodzenia, którą chcesz chronić za pomocą reguły limitu szybkości.
Obok pozycji Zasady zapory aplikacji internetowej wybierz pozycję Utwórz nową.
Wprowadź nazwę zasad zapory aplikacji internetowej i wybierz pozycję Utwórz.
Wybierz pozycję Przeglądanie + tworzenie>Utwórz.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
Tworzenie reguły limitu szybkości
Wybierz pozycję Reguły>niestandardowe Dodaj regułę niestandardową.
Wprowadź informacje wymagane do utworzenia reguły limitu szybkości:
- Nazwa reguły niestandardowej: wprowadź nazwę reguły niestandardowej, na przykład rateLimitRule.
- Typ reguły: wybierz pozycję Limit szybkości.
- Priorytet: wprowadź priorytet reguły, na przykład 1.
- Czas trwania limitu szybkości: wybierz 1 minutę.
- Próg limitu szybkości (żądania): wprowadź wartość 1000.
W obszarze Warunki wprowadź informacje wymagane do określenia warunku dopasowania w celu zidentyfikowania żądań, w których adres URL zawiera ciąg
*/promo*
:- Typ dopasowania: wybierz pozycję Ciąg.
- Dopasuj zmienną: wprowadź wartość RequestUri.
- Operacja: Wybierz wartość is.
- Operator: Wybierz pozycję Zawiera.
- Wartości dopasowania: wprowadź /promo.
W polu Akcja wybierz pozycję Dziennik lub Blokuj.
Reguły limitu szybkości obsługują tylko akcje
Log
iBlock
akcje.Allow
nie jest obsługiwany.Wybierz opcję Dodaj.
Wybierz pozycję Zapisz.
Korzystanie z trybu zapobiegania w zaporze aplikacji internetowej
Domyślnie witryna Azure Portal tworzy zasady zapory aplikacji internetowej w trybie wykrywania. To ustawienie oznacza, że zapora aplikacji internetowej nie blokuje żądań. Aby uzyskać więcej informacji, zobacz Tryby zapory aplikacji internetowej.
Dostosuj zaporę aplikacji internetowej przed użyciem trybu zapobiegania. Dostrajanie pomaga uniknąć wykrywania wyników fałszywie dodatnich. Pomaga to również uniemożliwić zaporze aplikacji internetowej blokowanie uzasadnionych żądań.
W tym miejscu skonfigurujesz ponownie zaporę aplikacji internetowej do korzystania z trybu zapobiegania.
Otwórz zasady zapory aplikacji internetowej.
Zwróć uwagę, że tryb zasad jest ustawiony na stronie Wykrywanie.
Wybierz pozycję Przełącz do trybu zapobiegania.
Wymagania wstępne
Przed rozpoczęciem konfigurowania zasad limitu szybkości skonfiguruj środowisko programu PowerShell i utwórz profil usługi Azure Front Door.
Konfigurowanie środowiska programu PowerShell
Program Azure PowerShell udostępnia zestaw poleceń cmdlet, które pozwalają zarządzać zasobami platformy Azure przy użyciu modelu usługi Azure Resource Manager.
Możesz zainstalować program Azure PowerShell w maszynie lokalnej i używać go w dowolnej sesji programu PowerShell. W tym miejscu zalogujesz się przy użyciu poświadczeń platformy Azure i zainstalujesz moduł Azure PowerShell dla usługi Azure Front Door Standard lub Premium.
Nawiązywanie połączenia z platformą Azure za pomocą interaktywnego okna dialogowego logowania
Uruchom następujące polecenia, aby zalogować się na platformie Azure:
Connect-AzAccount
Zainstaluj moduł PowerShellGet
Upewnij się, że zainstalowano bieżącą wersję modułu PowerShellGet . Uruchom następujące polecenie:
Install-Module PowerShellGet -Force -AllowClobber
Następnie uruchom ponownie program PowerShell, aby upewnić się, że używasz najnowszej wersji.
Instalowanie modułów programu PowerShell usługi Azure Front Door
Az.FrontDoor
Zainstaluj moduły i Az.Cdn
PowerShell, aby pracować z usługą Azure Front Door Standard lub Premium z poziomu programu PowerShell.
Install-Module -Name Az.FrontDoor
Install-Module -Name Az.Cdn
Moduł służy Az.Cdn
do pracy z zasobami usługi Azure Front Door Standard lub Premium. Użyj modułu Az.FrontDoor
do pracy z zasobami zapory aplikacji internetowej.
Tworzenie grupy zasobów
Użyj polecenia cmdlet New-AzResourceGroup, aby utworzyć nową grupę zasobów dla profilu usługi Azure Front Door i zasad zapory aplikacji internetowej. Zaktualizuj nazwę i lokalizację grupy zasobów pod kątem własnych wymagań:
$resourceGroupName = 'FrontDoorRateLimit'
New-AzResourceGroup -Name $resourceGroupName -Location 'westus'
Tworzenie profilu usługi Azure Front Door
Użyj polecenia cmdlet New-AzFrontDoorCdnProfile, aby utworzyć nowy profil usługi Azure Front Door.
W tym przykładzie utworzysz standardowy profil usługi Azure Front Door o nazwie MyFrontDoorProfile
:
$frontDoorProfile = New-AzFrontDoorCdnProfile `
-Name 'MyFrontDoorProfile' `
-ResourceGroupName $resourceGroupName `
-Location global `
-SkuName Standard_AzureFrontDoor
Tworzenie punktu końcowego usługi Azure Front Door
Użyj polecenia cmdlet New-AzFrontDoorCdnEndpoint, aby dodać punkt końcowy do profilu usługi Azure Front Door.
Punkty końcowe usługi Azure Front Door muszą mieć globalnie unikatowe nazwy, więc zaktualizuj wartość zmiennej $frontDoorEndpointName
na coś unikatowego.
$frontDoorEndpointName = '<unique-front-door-endpoint-name>'
$frontDoorEndpoint = New-AzFrontDoorCdnEndpoint `
-EndpointName $frontDoorEndpointName `
-ProfileName $frontDoorProfile.Name `
-ResourceGroupName $frontDoorProfile.ResourceGroupName `
-Location $frontDoorProfile.Location
Definiowanie warunku dopasowania adresu URL
Użyj polecenia cmdlet New-AzFrontDoorWafMatchConditionObject, aby utworzyć warunek dopasowania w celu zidentyfikowania żądań, które powinny mieć zastosowany limit szybkości.
Poniższy przykład jest zgodny z żądaniami, w których zmienna RequestUri
zawiera ciąg /promo:
$promoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable RequestUri `
-OperatorProperty Contains `
-MatchValue '/promo'
Tworzenie niestandardowej reguły limitu szybkości
Użyj polecenia cmdlet New-AzFrontDoorWafCustomRuleObject, aby utworzyć regułę limitu szybkości, która zawiera warunek dopasowania zdefiniowany w poprzednim kroku i próg żądania.
W poniższym przykładzie ustawiono limit na wartość 1000
:
$promoRateLimitRule = New-AzFrontDoorWafCustomRuleObject `
-Name 'rateLimitRule' `
-RuleType RateLimitRule `
-MatchCondition $promoMatchCondition `
-RateLimitThreshold 1000 `
-Action Block `
-Priority 1
Gdy dowolny źródłowy adres IP wysyła ponad 1000 żądań w ciągu jednej minuty, zapora aplikacji internetowej blokuje kolejne żądania do następnego uruchomienia minuty.
Tworzenie zasad zapory aplikacji internetowej
Użyj polecenia cmdlet New-AzFrontDoorWafPolicy, aby utworzyć zasady zapory aplikacji internetowej, które obejmują utworzoną regułę niestandardową.
$wafPolicy = New-AzFrontDoorWafPolicy `
-Name 'MyWafPolicy' `
-ResourceGroupName $frontDoorProfile.ResourceGroupName `
-Sku Standard_AzureFrontDoor `
-CustomRule $promoRateLimitRule
Konfigurowanie zasad zabezpieczeń w celu skojarzenia profilu usługi Azure Front Door z zasadami zapory aplikacji internetowej
Użyj polecenia cmdlet New-AzFrontDoorCdnSecurityPolicy, aby utworzyć zasady zabezpieczeń dla profilu usługi Azure Front Door. Zasady zabezpieczeń kojarzą zasady zapory aplikacji internetowej z domenami, które mają być chronione przez regułę zapory aplikacji internetowej.
W tym przykładzie skojarzysz domyślną nazwę hosta punktu końcowego z zasadami zapory aplikacji internetowej:
$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
Wymagania wstępne
Przed rozpoczęciem konfigurowania zasad limitu szybkości skonfiguruj środowisko interfejsu wiersza polecenia platformy Azure i utwórz profil usługi Azure Front Door.
Konfigurowanie środowiska interfejsu wiersza polecenia platformy Azure
Interfejs wiersza polecenia platformy Azure udostępnia zestaw poleceń, które używają modelu usługi Azure Resource Manager do zarządzania zasobami platformy Azure.
Interfejs wiersza polecenia platformy Azure można zainstalować na komputerze lokalnym i używać go w dowolnej sesji powłoki. W tym miejscu zalogujesz się przy użyciu poświadczeń platformy Azure i zainstalujesz rozszerzenie interfejsu wiersza polecenia platformy Azure dla usługi Azure Front Door Standard lub Premium.
Nawiązywanie połączenia z platformą Azure za pomocą interaktywnego okna dialogowego logowania
Uruchom następujące polecenia, aby zalogować się na platformie Azure:
az login
Instalowanie rozszerzenia usługi Azure Front Door dla interfejsu wiersza polecenia platformy Azure
front-door
Zainstaluj rozszerzenie do pracy z zaporą aplikacji internetowej usługi Azure Front Door z poziomu interfejsu wiersza polecenia platformy Azure:
az extension add --name front-door
Polecenia służą az afd
do pracy z zasobami usługi Azure Front Door Standard lub Premium. az network front-door waf-policy
Użyj poleceń, aby pracować z zasobami zapory aplikacji internetowej.
Tworzenie grupy zasobów
Użyj polecenia az group create, aby utworzyć nową grupę zasobów dla profilu usługi Azure Front Door i zasad zapory aplikacji internetowej. Zaktualizuj nazwę i lokalizację grupy zasobów pod kątem własnych wymagań:
resourceGroupName='FrontDoorRateLimit'
az group create \
--name $resourceGroupName \
--location westus
Tworzenie profilu usługi Azure Front Door
Użyj polecenia az afd profile create, aby utworzyć nowy profil usługi Azure Front Door.
W tym przykładzie utworzysz standardowy profil usługi Azure Front Door o nazwie MyFrontDoorProfile
:
frontDoorProfileName='MyFrontDoorProfile'
az afd profile create \
--profile-name $frontDoorProfileName \
--resource-group $resourceGroupName \
--sku Standard_AzureFrontDoor
Tworzenie punktu końcowego usługi Azure Front Door
Użyj polecenia az afd endpoint create, aby dodać punkt końcowy do profilu usługi Azure Front Door.
Punkty końcowe usługi Azure Front Door muszą mieć globalnie unikatowe nazwy, więc zaktualizuj wartość zmiennej frontDoorEndpointName
na coś unikatowego.
frontDoorEndpointName='<unique-front-door-endpoint-name>'
az afd endpoint create \
--endpoint-name $frontDoorEndpointName \
--profile-name $frontDoorProfileName \
--resource-group $resourceGroupName \
Tworzenie zasad zapory aplikacji internetowej
Użyj polecenia az network front-door waf-policy create, aby utworzyć zasady zapory aplikacji internetowej:
wafPolicyName='MyWafPolicy'
az network front-door waf-policy create \
--name $wafPolicyName \
--resource-group $resourceGroupName \
--sku Standard_AzureFrontDoor
Przygotowanie do dodania niestandardowej reguły limitu szybkości
Użyj polecenia az network front-door waf-policy rule create, aby utworzyć niestandardową regułę limitu szybkości. W poniższym przykładzie ustawiono limit na 1000 żądań na minutę.
Reguły limitu szybkości muszą zawierać warunek dopasowania, który zostanie utworzony w następnym kroku. W tym poleceniu dołączysz --defer
argument, który informuje interfejs wiersza polecenia platformy Azure, aby nie przesyłał jeszcze reguły na platformę 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
Gdy dowolny źródłowy adres IP wysyła ponad 1000 żądań w ciągu jednej minuty, zapora aplikacji internetowej blokuje kolejne żądania do następnego uruchomienia minuty.
Dodawanie warunku dopasowania
Użyj polecenia az network front-door waf-policy rule match-condition add, aby dodać warunek dopasowania do reguły niestandardowej. Warunek dopasowania identyfikuje żądania, które powinny mieć zastosowany limit szybkości.
Poniższy przykład jest zgodny z żądaniami, w których zmienna RequestUri
zawiera ciąg /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
Po przesłaniu tego polecenia interfejs wiersza polecenia platformy Azure tworzy regułę limitu szybkości i razem dopasuj warunek.
Konfigurowanie zasad zabezpieczeń w celu skojarzenia profilu usługi Azure Front Door z zasadami zapory aplikacji internetowej
Użyj polecenia az afd security-policy create, aby utworzyć zasady zabezpieczeń dla profilu usługi Azure Front Door. Zasady zabezpieczeń kojarzą zasady zapory aplikacji internetowej z domenami, które mają być chronione przez regułę zapory aplikacji internetowej.
W tym przykładzie skojarzysz domyślną nazwę hosta punktu końcowego z zasadami zapory aplikacji internetowej:
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
Powyższy kod wyszukuje identyfikatory zasobów platformy Azure dla zasad zapory aplikacji internetowej i punktu końcowego usługi Azure Front Door, aby umożliwić skojarzenie ich z zasadami zabezpieczeń.
Uwaga
Za każdym razem, gdy wprowadzisz zmiany w zasadach zapory aplikacji internetowej, nie musisz ponownie tworzyć zasad zabezpieczeń usługi Azure Front Door. Aktualizacje zasad zapory aplikacji internetowej są automatycznie stosowane do domen usługi Azure Front Door.
Szybki start
Aby utworzyć profil usługi Azure Front Door z regułą limitu szybkości przy użyciu aplikacji Bicep, zobacz przewodnik Szybki start dotyczący usługi Azure Front Door Standard lub Premium z limitem szybkości Bicep.
Następne kroki
Dowiedz się więcej o usłudze Azure Front Door.