Интеграция среды службы приложений с внутренней системой балансировки нагрузки (ILB) со шлюзом приложений Azure

Среда службы приложений — это развернутая служба приложений Azure в подсети виртуальной сети Azure клиента. Ее можно развернуть с использованием внешней или внутренней конечной точки для доступа к приложениям. Развертывание среды службы приложений с внутренней конечной точкой называется внутренней подсистемой балансировки нагрузки (ILB) среды службы приложений (ASE).

Брандмауэры веб-приложения защищают веб-приложения, проверяя входящий трафик Интернета и блокируя атаки с использованием кода SQL и межсайтовых скриптов, передачи вредоносных программ, атаки DDoS на приложения и другие атаки. Вы можете получить устройство WAF в Azure Marketplace. Также можно использовать шлюз приложений Azure.

Шлюз приложений Azure — это виртуальный модуль, обеспечивающий балансировку нагрузки уровня 7, разгрузку TLS/SSL и защиту брандмауэра веб-приложения (WAF). Он может ожидать передачи данных через общедоступный IP-адрес и направлять трафик к конечной точке приложения. Ниже описано, как интегрировать шлюз приложений с настроенным WAF с приложением в среде службы приложений ILB.

Интеграция шлюза приложений и среды службы приложений с ILB осуществляется на уровне приложения. Настройка шлюза приложений для работы со средой службы приложений с внутренней подсистемой балансировки нагрузки выполняется для конкретных приложений в среде службы приложений с ILB. Этот способ позволяет разместить защищенные многопользовательские приложения в одной среде службы приложений с ILB.

Screenshot of High level integration diagram

В этом пошаговом руководстве описаны следующие операции.

  • Создание шлюза приложений Azure.
  • Связывание шлюза приложения с приложением в среде службы приложений с внутренней подсистемой балансировки нагрузки.
  • Изменение общедоступного имени узла DNS, указывающего на шлюз приложений.

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

Чтобы интегрировать шлюз приложений в среду службы приложений с внутренней подсистемой балансировки нагрузки, требуется:

  • Среда службы приложений с подсистемой балансировки нагрузки.
  • Частная зона DNS для среды службы приложений ILB.
  • Приложение, выполняющееся в среде службы приложений с внутренней подсистемой балансировки нагрузки.
  • Общедоступное DNS-имя, которое будет использоваться позднее для указания на шлюз приложений.
  • Если необходимо использовать шифрование TLS / SSL для шлюза приложений, требуется действительный открытый сертификат, используемый для привязки к шлюзу приложений.

Среда службы приложений с подсистемой балансировки нагрузки.

Дополнительные сведения о создании среды Служба приложений подсистемы балансировки нагрузки см. в статье "Создание СРЕДЫ ASE" в портал Azure и создание СРЕДЫ ASE с помощью шаблона ARM.

  • После создания ILB ASE домен по умолчанию имеет значение <YourAseName>.appserviceenvironment.net.

    Screenshot of ILB ASE Overview

  • Внутренний балансировщик нагрузки подготавливается для входящего доступа. Вы можете проверить входящий адрес в IP-адресах в разделе параметров ASE. Вы можете создать частную зону DNS, сопоставленную с этим IP-адресом позже.

    Screenshot of getting the inbound address from ILB ASE IP addresses settings.

Частная зона DNS

Для внутреннего разрешения имен требуется Частная зона DNS. Создайте ее с помощью имени ASE, используя наборы записей, приведенные в следующей таблице (инструкции см. в разделе Краткое руководство. Создание частной зоны DNS Azure с помощью портала Azure).

Имя. Тип значение
* а Входящий адрес ASE
@ а Входящий адрес ASE
@ SOA Имя DNS ASE
*.scm а Входящий адрес ASE

Служба приложений на ILB ASE

Необходимо создать план службы приложений и приложение в ILB ASE. При создании приложения на портале выберите свой ILB ASE в качестве региона.

Общедоступное DNS-имя для шлюза приложений

Для подключения к шлюзу приложений из Интернета требуется имя домена с маршрутизацией. В этом случае я использовал маршрутизируемое доменное имя asabuludemo.com и планирую подключиться к службе приложений с этим доменным именем app.asabuludemo.com. IP-адрес, сопоставленный с этим доменом приложения, необходимо задать для Шлюз приложений общедоступный IP-адрес после создания шлюза приложений. Если общедоступный домен сопоставлен со шлюзом приложений, настраивать личный домен в службе приложений не требуется. Вы можете приобрести пользовательское доменное имя в доменах службы приложений.

Действительный открытый сертификат

Для улучшения безопасности рекомендуется привязать сертификат TLS / SSL для шифрования сеанса. Чтобы привязать сертификат TLS / SSL к шлюзу приложений, требуется действительный открытый сертификат со следующей информацией. С помощью сертификатов Служба приложений вы можете приобрести TLS/SSL-сертификат и экспортировать его в PFX-формате.

Имя. Стоимость Описание
Общее имя <yourappname>.<yourdomainname>, например: app.asabuludemo.com
или *.<yourdomainname>, например: *.asabuludemo.com
Стандартный сертификат или групповой сертификат для шлюза приложений
Альтернативное имя субъекта <yourappname>.scm.<yourdomainname>, например: app.scm.asabuludemo.com
или *.scm.<yourdomainname>, например: *.scm.asabuludemo.com
Сеть SAN, которая позволяет подключаться к службе приложений KUDU. Это необязательный параметр, если вы не хотите публиковать службу службы приложений KUDU в Интернете.

Файл сертификата должен иметь закрытый ключ и сохраняться в формате .pfx; он будет импортирован в шлюз приложений позже.

Создание Шлюза приложений

Основные сведения о создании шлюза приложений см. в разделе Руководство. Создание шлюза приложений с брандмауэром веб-приложения с помощью портала Azure.

В этом руководстве мы будем использовать портал Azure для создания шлюза приложений со средой службы приложений ILB.

В портале Azure выберите Создать новый>Сеть>Шлюз приложений, чтобы создать шлюз приложений.

  1. Основные параметры

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

  2. Параметр внешних интерфейсов

    Выберите тип IP-адреса внешнего интерфейса — Общедоступный, Частный или Оба. Если задано значение Частный или Оба, необходимо назначить статический IP-адрес в диапазоне подсети шлюза приложений. В этом случае мы установили общедоступный IP-адрес только для общедоступной конечной точки.

    • Общедоступный IP-адрес. Необходимо связать общедоступный IP-адрес для общего доступа к шлюзу приложений. Запишите этот IP-адрес, т. к. вам потребуется добавить запись в службу DNS позже.

      Screenshot of getting a public IP address from the application gateway frontends setting.

  3. Параметр серверной части

    Введите имя пула серверной части и выберите Службы приложений или IP-адрес или полное доменное имя в поле Тип целевого объекта. В этом случае мы настроили Службы приложений и выбираем имя службы приложений из раскрывающегося списка целевых объектов.

    Screenshot of adding a backend pool name in backends setting.

  4. Параметр конфигурации

    В параметре конфигурации необходимо добавить правило маршрутизации, выбрав значок "Добавить правило маршрутизации".

    Screenshot of adding a routing rule in configuration setting.

    Необходимо настроить Прослушиватель и Цели серверной части в правиле маршрутизации. Вы можете добавить прослушиватель HTTP для подтверждения развертывания концепции или добавить прослушиватель HTTPS для улучшения безопасности.

    • Для подключения к шлюзу приложений с протоколом HTTP можно создать прослушиватель со следующими параметрами:

      Параметр Стоимость Описание
      Имя правила Например: http-routingrule Имя маршрутизации
      Имя прослушивателя Например: http-listener Имя прослушивателя
      Интерфейсный IP-адрес Общедоступный Для доступа к Интернету задайте значение "Общедоступный".
      Протокол HTTP Не использовать шифрование TLS / SSL
      Порт 80 HTTP-порт по умолчанию
      Тип прослушивателя Несколько сайтов Разрешить прослушивание нескольких сайтов в шлюзе приложений
      Host type Несколько элементов / подстановочный знак Если для типа прослушивателя задано значение "Несколько сайтов", задайте для параметра имени веб-сайта значение "Несколько элементов" или "Подстановочный знак".
      Host name Например: app.asabuludemo.com Задайте для службы приложений имя маршрутизируемого домена.

      Screenshot of HTTP Listener of the application gateway Routing Rule.

    • Для подключения к шлюзу приложений с протоколом TLS/SSL можно создать прослушиватель со следующими параметрами:

      Параметр Стоимость Описание
      Имя правила Например: https-routingrule Имя маршрутизации
      Имя прослушивателя Например: https-listener Имя прослушивателя
      Интерфейсный IP-адрес Общедоступный Для доступа к Интернету задайте значение "Общедоступный".
      Протокол HTTPS Использовать шифрование TLS / SSL
      Порт 443 HTTPS порт по умолчанию
      Параметры HTTPS Загрузить сертификат Загрузите сертификат, который содержит CN и закрытый ключ в формате .pfx.
      Тип прослушивателя Несколько сайтов Разрешить прослушивание нескольких сайтов в шлюзе приложений
      Host type Несколько элементов / подстановочный знак Если для типа прослушивателя задано значение "Несколько сайтов", задайте для параметра имени веб-сайта значение "Несколько элементов" или "Подстановочный знак".
      Host name Например: app.asabuludemo.com Задайте для службы приложений имя маршрутизируемого домена.

      HTTPS listener of the application gateway Routing Rule.

    • Необходимо настроить серверный пул и Параметр HTTP во Целях серверной части. Серверный пул был настроен на предыдущих шагах. Нажмите кнопку "Добавить новую ссылку", чтобы добавить параметр HTTP.

      Screenshot of adding new link to add an H T T P setting.

    • Параметры HTTP перечислены ниже:

      Параметр Стоимость Описание
      Имя параметра HTTP Например: https-setting Имя параметра HTTP
      Протокол серверной части HTTPS Использовать шифрование TLS / SSL
      Серверный порт 443 HTTPS порт по умолчанию
      Использовать сертификат хорошо известного центра сертификации Да Доменным именем по умолчанию для ILB ASE является .appserviceenvironment.net, сертификат этого домена выдан открытым доверенным центром сертификации. В параметре "Доверенный корневой сертификат" можно настроить использование доверенного корневого сертификата, выданного хорошо известным ЦС.
      Переопределить новым именем узла Да Заголовок имени узла будет перезаписан при подключении к приложению в ILB ASE
      Переопределение имени узла Выбор имени узла из целевого объекта серверной части При настройке внутреннего пула для службы приложений можно выбрать узел из целевого объекта серверной части.
      Создание настраиваемых проб No Использовать пробу по умолчанию

      Screenshot of **Add an H T T P setting** dialog.

Настройка интеграции шлюза приложений с помощью ILB ASE

Чтобы получить доступ к ILB ASE из шлюза приложений, необходимо проверить подключение виртуальной сети к частной зоне DNS. Если виртуальная сеть не связана с виртуальной сетью шлюза приложений, добавьте ссылку виртуальной сети, выполнив следующие действия.

  • Чтобы настроить подключение к виртуальной сети с помощью частной зоны DNS, перейдите в зону конфигурации частной зоны DNS. Выберите Соединения виртуальной сети>Добавить

Add a virtual network link to private DNS zone.

  • Введите Имя ссылки и выберите соответствующую подписку и виртуальную сеть, в которой находится шлюз приложений.

Screenshot of input link name details to virtual network links setting in private DNS zone.

  • Состояние работоспособности серверной части можно проверить в параметре Работоспособность серверной части на плоскости шлюза приложений.

Screenshot of confirm the backend health status from backend health.

Добавление общедоступной записи DNS

Необходимо настроить правильное сопоставление DNS при доступе к шлюзу приложений из Интернета.

  • Общедоступный IP-адрес шлюза приложений можно найти в Интерфейсных IP-конфигурациях на плоскости шлюза приложений.

Application gateway frontend IP address can be found in Frontend IP configuration.

  • Используя службу Azure DNS в качестве примера, можно добавить набор записей, чтобы связать имя домена приложения с общедоступным IP-адресом шлюза приложений.

Screenshot of adding a record set to map the app domain name to the public IP address of the application gateway.

Проверка подключения

  • На компьютере с доступом через Интернет можно проверить разрешение имен для имени домена приложения на общедоступный IP-адрес шлюза приложений.

validate the name resolution from a command prompt.

  • На компьютере с доступом через Интернет проверьте веб-доступ из браузера.

Screenshot of opening a browser, access to the web.