Поделиться через


Руководство. Быстрое масштабирование и защита веб-приложения с помощью Azure Front Door и Azure Брандмауэр веб-приложений (WAF)

Внимание

Azure Front Door (классическая версия) будет прекращена 31 марта 2027 г. Чтобы избежать нарушений работы служб, важно перенести профили Azure Front Door (классический) на уровень Azure Front Door standard или Premium к марту 2027 года. Дополнительные сведения см. в статье azure Front Door (классическая версия) для выхода на пенсию.

Многие веб-приложения испытывают быстрое увеличение трафика с течением времени. Кроме того, увеличился объем вредоносного трафика, в том числе связанного с атаками типа "отказ в обслуживании". Но существует эффективный способ одновременно горизонтально увеличить масштаб приложения в соответствии с возросшим объемом трафика и обеспечить защиту от атак. Вам нужно просто настроить Azure Front Door с Azure WAF, чтобы ускорить работу, включить кэширование и создать дополнительный уровень защиты перед вашим приложением. В этой статье описывается, как быстро настроить Azure Front Door с Azure WAF для любых веб-приложений, которые работают в среде Azure и за ее пределами.

Мы используем Azure CLI для настройки WAF в этом руководстве. То же самое можно выполнить на портале Azure, с помощью Azure PowerShell, Azure Resource Manager или Azure REST API.

В этом руководстве описано следующее:

  • создать профиль Front Door;
  • создать политику Azure WAF;
  • настроить набор правил для политики WAF;
  • связать политику WAF с Front Door;
  • настроить личный домен.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

  • Описанные в этом руководстве действия выполняются через Azure CLI. Просмотрите это руководство по началу работы с Azure CLI.

    Совет

    Чтобы быстро начать работу с Azure CLI, можно использовать Bash в Azure Cloud Shell.

  • Убедитесь, что в Azure CLI добавлено расширение front-door.

    az extension add --name front-door
    

Примечание.

Дополнительные сведения о командах, используемых в этом руководстве, см. в справочных материалах по Azure CLI для Front Door.

Создание ресурса Azure Front Door

az network front-door create --backend-address <>  --accepted-protocols <> --name <> --resource-group <>

--backend-address: полное доменное имя приложения, которое требуется защитить. Например, myapplication.contoso.com.

--accepted-protocols: указывает протоколы, которые требуется использовать Azure Front Door для поддержки веб-приложения. Например, --accepted-protocols Http Https.

--name: имя ресурса Azure Front Door.

--resource-group: группа ресурсов, в которую вы хотите поместить этот ресурс Azure Front Door. Дополнительные сведения о группах ресурсов см. в статье Управление группами ресурсов в Azure.

В ответе от этой команды найдите ключ hostName. Это значение потребуется на следующем шаге. hostName — это DNS-имя созданного ресурса Azure Front Door.

Создание профиля Azure WAF, который будет использоваться с ресурсами Azure Front Door

az network front-door waf-policy create --name <>  --resource-group <>  --disabled false --mode Prevention

--name: имя новой политики Azure WAF.

--resource-group: группа ресурсов, в которую вы хотите поместить этот ресурс WAF.

Предыдущий код CLI создает политику WAF в режиме предотвращения.

Примечание.

Возможно, вы предпочтете создать политику WAF в режиме обнаружения, чтобы сначала проверить, как она обнаруживает и регистрирует вредоносные запросы (не блокируя их), прежде чем переходить в режим защиты.

В ответе от этой команды найдите ключ ID. Это значение потребуется на следующем шаге.

В поле ID должно быть значение в следующем формате:

/subscriptions/subscription id/resourcegroups/resource group name/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/WAF policy name

Добавление управляемых наборов правил в политику WAF

В политику WAF вы можете добавить управляемые наборы правил. Управляемый набор создается и управляется корпорацией Майкрософт для защиты от определенного класса угроз. В нашем примере добавляются следующие два набора правил:

  • Набор правил по умолчанию защищает от многих распространенных веб-угроз.
  • Набор правил защиты от ботов предотвращает деятельность вредоносных ботов.

Добавьте набор правил по умолчанию:

az network front-door waf-policy managed-rules add --policy-name <> --resource-group <> --type DefaultRuleSet --version 1.0

Добавьте набор правил защиты от ботов:

az network front-door waf-policy managed-rules add --policy-name <> --resource-group <> --type Microsoft_BotManagerRuleSet --version 1.0

--policy-name: имя, указанное для ресурса Azure WAF.

--resource-group: группа ресурсов, вложенная в ресурс WAF.

Привязка политики WAF к ресурсу Azure Front Door

На этом шаге мы свяжите политику WAF, созданную с ресурсом Azure Front Door, который находится перед веб-приложением:

az network front-door update --name <> --resource-group <> --set frontendEndpoints[0].webApplicationFirewallPolicyLink='{"id":"<>"}'

--name: имя, указанное для ресурса Azure Front Door.

--resource-group: группа ресурсов, вложенная в ресурс Azure Front Door.

--set: где вы обновляете WebApplicationFirewallPolicyLink атрибут для связанного frontendEndpoint ресурса Azure Front Door с новой политикой WAF. Идентификатор политики WAF вы получили из ответа, когда создавался профиль WAF.

Примечание.

Приведенный выше пример относится к сценарию без использования личного домена. Если вы не используете личные домены для доступа к веб-приложениям, следующий раздел можно пропустить. В этом случае передайте клиентам значение hostName, полученное при создании ресурса Azure Front Door. Они будут использовать это значение hostName для входа в веб-приложение.

Настройка личного домена для веб-приложения

Имя личного домена для веб-приложения выполняет роль адреса приложения, по которому его находят клиенты. Например, www.contoso.com. Изначально это имя личного домена указывало на расположение, настроенное до включения Azure Front Door. После добавления Azure Front Door и WAF перед этим приложением запись DNS для личного домена должна указывать на новый ресурс Azure Front Door. Для этого измените привязку записи на DNS-сервере на имя hostName ресурса Azure Front Door, который вы получили ранее при создании этого ресурса.

Конкретные шаги по обновлению записей DNS зависят от поставщика услуг DNS. Если для размещения доменного имени вы используете службу Azure DNS, см. документацию по изменению записей DNS и укажите имя узла hostName ресурса Azure Front Door.

Если вам нужно, чтобы ваши клиенты могли переходить на веб-сайт с помощью вершины зоны (например, contoso.com), необходимо обратить внимание на одну важную вещь. В этом сценарии необходимо использовать для размещения имени DNS службу Azure DNS и тип записи "псевдоним" (alias).

Также в конфигурацию Azure Front Door нужно добавить личный домен, чтобы служба знала об этом сопоставлении.

Наконец, если вы используете для доступа к веб-приложению личный домен и хотите включить поддержку протокола HTTPS, вам нужно настроить сертификаты для личного домена в Azure Front Door.

Блокировка веб-приложения

Мы рекомендуем сделать так, чтобы только граничные узлы Azure Front Door могли обращаться к вашему веб-приложению. Это гарантирует, что никто не сможет обойти защиту Azure Front Door и напрямую получить доступ к приложению. Для настройки блокировки воспользуйтесь разделом Как сделать, чтобы к моему серверу имела доступ только служба Azure Front Door?

Очистка ресурсов

Если ресурсы, созданные при работе с этим руководством, больше не нужны, выполните команду az group delete, чтобы удалить группу ресурсов, Front Door и политику WAF.

  az group delete \
    --name <>

--name: имя группы ресурсов для всех ресурсов, используемых в этом руководстве.

Следующие шаги

Изучите следующие руководства по устранению неполадок с Front Door: