Настройка правила ограничения скорости Брандмауэр веб-приложений
Правило ограничения скорости azure Брандмауэр веб-приложений для Azure Front Door определяет количество запросов, разрешенных из определенного исходного IP-адреса в приложение в течение длительности ограничения скорости. Дополнительные сведения об ограничении скорости см. в статье "Что такое ограничение скорости для Azure Front Door?".
В этой статье показано, как настроить правило ограничения скорости брандмауэра веб-приложения (WAF) на уровнях Azure Front Door Standard и Premium.
Сценарий
Предположим, вы обслуживаете общедоступный веб-сайт. Вы только что добавили страницу со сведениями о рекламной акции, которую проводит ваша организация. Вы обеспокоены тем, что если клиенты посещают эту страницу слишком часто, некоторые из внутренних служб могут не масштабироваться быстро, и приложение может иметь проблемы с производительностью.
Вы решили создать правило ограничения скорости, которое ограничивает каждый исходный IP-адрес не более 1000 запросов в минуту. Это правило применяется только к запросам, содержащимся */promo*
в URL-адресе запроса.
Совет
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Создание профиля Azure Front Door и политики WAF
На портале Azure выберите Создать ресурс.
Выполните поиск по запросу Front Door и выберите Профили Front Door и CDN.
Нажмите кнопку создания.
Нажмите Продолжить создание Front Door, чтобы использовать процесс быстрого создания, доступный на портале.
Введите необходимые сведения на странице Основные сведения:
- Группа ресурсов: выберите существующую группу ресурсов или создайте новую группу ресурсов для ресурсов Azure Front Door и WAF.
- Имя. Введите имя профиля Azure Front Door.
- Уровень. Выберите Стандартный или Премиум. В этом сценарии оба уровня поддерживают ограничение скорости.
- Имя конечной точки. Укажите уникальное имя конечной точки, так как конечные точки Azure Front Door должны иметь глобально уникальные имена.
- Тип источника и имя узла источника: выберите исходное приложение, которое требуется защитить с помощью правила ограничения скорости.
Рядом с пунктом Политика WAF выберите Создать.
Введите имя политики WAF и нажмите кнопку Создать.
Выберите Просмотреть и создать>Создать.
Когда развертывание будет завершено, выберите Перейти ресурсу.
Создание правила ограничения скорости
Выберите Настраиваемые правила>Добавить настраиваемое правило.
Введите сведения, необходимые для создания правила ограничения скорости:
- Имя настраиваемого правила: введите имя настраиваемого правила, например rateLimitRule.
- Тип правила: выбор ограничения скорости.
- Приоритет: введите приоритет правила, например 1.
- Длительность ограничения скорости: выберите 1 минуту.
- Пороговое значение ограничения скорости (запросы): введите 1000.
В условиях введите сведения, необходимые для указания условия соответствия, чтобы определить запросы, в которых URL-адрес содержит строку
*/promo*
:- Тип совпадения: выбор строки.
- Переменная сопоставления: ВВОД RequestUri.
- Операция. Выберите.
- Оператор: Select Contains.
- Значения совпадений: ввод /промо.
Для действия выберите "Журнал " или "Блокировать".
Правила ограничения скорости поддерживаются
Log
только иBlock
действия.Allow
не поддерживается.Выберите Добавить.
Выберите Сохранить.
Использование режима предотвращения в WAF
По умолчанию портал Azure создает политики WAF в режиме обнаружения. Этот параметр означает, что WAF не блокирует запросы. Дополнительные сведения см. в статье Режимы WAF.
Настройте WAF перед использованием режима предотвращения. Настройка помогает избежать обнаружения ложных срабатываний. Это также помогает предотвратить блокировку законных запросов WAF.
Здесь вы перенастроите WAF для использования режима предотвращения.
Откройте политику WAF.
Обратите внимание, что режим политики установлен при обнаружении.
Выберите Переключиться в режим предотвращения.
Необходимые компоненты
Прежде чем приступить к настройке политики ограничения скорости, настройте среду PowerShell и создайте профиль Azure Front Door.
Настройка среды PowerShell
В Azure PowerShell доступен набор командлетов, которые используют модель Azure Resource Manager для управления ресурсами Azure.
Вы можете установить Azure PowerShell на локальном компьютере и использовать его в любом сеансе PowerShell. Здесь вы войдите с помощью учетных данных Azure и установите модуль Azure PowerShell для Azure Front Door уровня "Стандартный" или "Премиум".
Подключение к Azure с помощью интерактивного диалогового окна для входа
Войдите в Azure, выполнив следующую команду.
Connect-AzAccount
Установка PowerShellGet
Убедитесь, что установлена текущая версия PowerShellGet . Выполните следующую команду:
Install-Module PowerShellGet -Force -AllowClobber
Затем перезапустите PowerShell, чтобы убедиться, что используется последняя версия.
Установка модулей Azure Front Door PowerShell
Az.FrontDoor
Установите модули PowerShell для Az.Cdn
работы с Azure Front Door уровня "Стандартный" или "Премиум" из PowerShell.
Install-Module -Name Az.FrontDoor
Install-Module -Name Az.Cdn
Модуль используется для работы с ресурсами Azure Front Door уровня "Стандартный Az.Cdn
" или "Премиум". Az.FrontDoor
Используйте модуль для работы с ресурсами WAF.
Создание или изменение группы ресурсов
Используйте командлет New-AzResourceGroup, чтобы создать новую группу ресурсов для профиля Azure Front Door и политики WAF. Обновите имя и расположение группы ресурсов в соответствии с вашими требованиями:
$resourceGroupName = 'FrontDoorRateLimit'
New-AzResourceGroup -Name $resourceGroupName -Location 'westus'
Создание профиля Azure Front Door
Используйте командлет New-AzFrontDoorCdnProfile для создания нового профиля Azure Front Door.
В этом примере вы создадите стандартный профиль Azure Front Door с именем MyFrontDoorProfile
:
$frontDoorProfile = New-AzFrontDoorCdnProfile `
-Name 'MyFrontDoorProfile' `
-ResourceGroupName $resourceGroupName `
-Location global `
-SkuName Standard_AzureFrontDoor
Создание конечной точки Azure Front Door
Используйте командлет New-AzFrontDoorCdnEndpoint, чтобы добавить конечную точку в профиль Azure Front Door.
Конечные точки Azure Front Door должны иметь глобально уникальные имена, поэтому обновите значение переменной до уникального $frontDoorEndpointName
.
$frontDoorEndpointName = '<unique-front-door-endpoint-name>'
$frontDoorEndpoint = New-AzFrontDoorCdnEndpoint `
-EndpointName $frontDoorEndpointName `
-ProfileName $frontDoorProfile.Name `
-ResourceGroupName $frontDoorProfile.ResourceGroupName `
-Location $frontDoorProfile.Location
Определение условий соответствия URL-адреса
Используйте командлет New-AzFrontDoorWafMatchConditionObject, чтобы создать условие соответствия для определения запросов, которые должны применяться с ограничением скорости.
В следующем примере сопоставляется запросы, в которых RequestUri
переменная содержит строку /promo:
$promoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
-MatchVariable RequestUri `
-OperatorProperty Contains `
-MatchValue '/promo'
Создание настраиваемого правила ограничения скорости
Используйте командлет New-AzFrontDoorWafCustomRuleObject, чтобы создать правило ограничения скорости, которое включает условие соответствия, определенное на предыдущем шаге, и пороговое значение запроса.
В следующем примере устанавливается ограничение 1000
:
$promoRateLimitRule = New-AzFrontDoorWafCustomRuleObject `
-Name 'rateLimitRule' `
-RuleType RateLimitRule `
-MatchCondition $promoMatchCondition `
-RateLimitThreshold 1000 `
-Action Block `
-Priority 1
Когда любой исходный IP-адрес отправляет более 1000 запросов в течение одной минуты, WAF блокирует последующие запросы до следующей минуты.
Создание политики WAF
Используйте командлет New-AzFrontDoorWafPolicy для создания политики WAF, которая включает созданное пользовательское правило.
$wafPolicy = New-AzFrontDoorWafPolicy `
-Name 'MyWafPolicy' `
-ResourceGroupName $frontDoorProfile.ResourceGroupName `
-Sku Standard_AzureFrontDoor `
-CustomRule $promoRateLimitRule
Настройка политики безопасности для связывания профиля Azure Front Door с политикой WAF
Используйте командлет New-AzFrontDoorCdnSecurityPolicy для создания политики безопасности для профиля Azure Front Door. Политика безопасности связывает политику WAF с доменами, которые необходимо защитить с помощью правила WAF.
В этом примере имя узла конечной точки по умолчанию связывается с политикой 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
Необходимые компоненты
Прежде чем приступить к настройке политики ограничения скорости, настройте среду Azure CLI и создайте профиль Azure Front Door.
Настройка среды Azure CLI
Azure CLI предоставляет набор команд, использующих модель Azure Resource Manager для управления ресурсами Azure.
Вы можете установить Azure CLI на локальном компьютере и использовать его в любом сеансе оболочки. Здесь вы войдите с помощью учетных данных Azure и установите расширение Azure CLI для Azure Front Door уровня "Стандартный" или "Премиум".
Подключение к Azure с помощью интерактивного диалогового окна для входа
Войдите в Azure, выполнив следующую команду.
az login
Установка расширения Azure Front Door для Azure CLI
front-door
Установите расширение для работы с WAF Azure Front Door из Azure CLI:
az extension add --name front-door
Вы используете az afd
команды для работы с ресурсами Azure Front Door уровня "Стандартный" или "Премиум". az network front-door waf-policy
Используйте команды для работы с ресурсами WAF.
Создание или изменение группы ресурсов
Используйте команду az group create, чтобы создать новую группу ресурсов для профиля Azure Front Door и политики WAF. Обновите имя и расположение группы ресурсов в соответствии с вашими требованиями:
resourceGroupName='FrontDoorRateLimit'
az group create \
--name $resourceGroupName \
--location westus
Создание профиля Azure Front Door
Используйте команду az afd profile create, чтобы создать новый профиль Azure Front Door.
В этом примере вы создадите стандартный профиль Azure Front Door с именем MyFrontDoorProfile
:
frontDoorProfileName='MyFrontDoorProfile'
az afd profile create \
--profile-name $frontDoorProfileName \
--resource-group $resourceGroupName \
--sku Standard_AzureFrontDoor
Создание конечной точки Azure Front Door
Используйте команду az afd endpoint create, чтобы добавить конечную точку в профиль Azure Front Door.
Конечные точки Azure Front Door должны иметь глобально уникальные имена, поэтому обновите значение переменной до уникального frontDoorEndpointName
.
frontDoorEndpointName='<unique-front-door-endpoint-name>'
az afd endpoint create \
--endpoint-name $frontDoorEndpointName \
--profile-name $frontDoorProfileName \
--resource-group $resourceGroupName \
Создание политики WAF
Используйте команду az network front-door waf-policy create для создания политики WAF:
wafPolicyName='MyWafPolicy'
az network front-door waf-policy create \
--name $wafPolicyName \
--resource-group $resourceGroupName \
--sku Standard_AzureFrontDoor
Подготовка к добавлению настраиваемого правила ограничения скорости
Используйте команду az network front-door waf-policy rule create для создания настраиваемого правила ограничения скорости. В следующем примере устанавливается ограничение на 1000 запросов в минуту.
Правила ограничения скорости должны содержать условие соответствия, которое создается на следующем шаге. В этой команде приведен --defer
аргумент, который сообщает Azure CLI, что пока не отправляет правило в 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
Когда любой исходный IP-адрес отправляет более 1000 запросов в течение одной минуты, WAF блокирует последующие запросы до следующей минуты.
Добавление условия соответствия
Используйте команду добавления правила сопоставления правил waf-policy az network front-door waf-policy, чтобы добавить условие соответствия в настраиваемое правило. Условие соответствия определяет запросы, которые должны применяться к ограничению скорости.
В следующем примере сопоставляется запросы, в которых RequestUri
переменная содержит строку /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
При отправке этой команды Azure CLI создает правило ограничения скорости и условие соответствия вместе.
Настройка политики безопасности для связывания профиля Azure Front Door с политикой WAF
Используйте команду az afd security-policy create, чтобы создать политику безопасности для профиля Azure Front Door. Политика безопасности связывает политику WAF с доменами, которые необходимо защитить с помощью правила WAF.
В этом примере имя узла конечной точки по умолчанию связывается с политикой 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
Приведенный выше код ищет идентификаторы ресурсов Azure для политики WAF и конечной точки Azure Front Door, чтобы связать их с политикой безопасности.
Примечание.
Всякий раз, когда вы вносите изменения в политику WAF, вам не нужно повторно создавать политику безопасности Azure Front Door. Обновления политики WAF автоматически применяются к доменам Azure Front Door.
Быстрое начало
Чтобы создать профиль Azure Front Door с правилом ограничения скорости с помощью Bicep, см. краткое руководство по использованию Azure Front Door Standard или Premium с ограничением скорости Bicep.
Следующие шаги
Узнайте больше о Azure Front Door.