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


Развертывание частного шлюза приложений

Introduction

Исторически SKU шлюзов приложений версии 2, и в определенной степени версии 1, требуют общедоступного IP-адреса для предоставления управления службой. Это требование наложило несколько ограничений на использование мелкоуровневого управления в таблицах маршрутов и группах безопасности сети. В частности, наблюдались следующие проблемы:

  • Все развертывания шлюзов приложений версии 2 должны содержать публичную конфигурацию IP-адреса, доступного снаружи, для обеспечения связи с тегом службы Gateway Manager.
  • Связи группы сетевой безопасности требуют правил, разрешающих входящий доступ от GatewayManager и исходящий доступ в Интернет.
  • При вводе маршрута по умолчанию (0.0.0.0/0) для перенаправления трафика на любые сети, кроме Интернета, метрики, мониторинг и обновления шлюза приводят к состоянию сбоя.

Шлюз приложений версии 2 теперь может обращаться к каждому из этих элементов, чтобы устранить риск кражи данных и контролировать конфиденциальность обмена данными из виртуальной сети. Эти изменения включают следующие возможности:

  • Конфигурация интерфейса IP только для частного IP-адреса
    • Ресурс общедоступного IP-адреса не требуется
  • Устранение входящего трафика из тега службы GatewayManager через группу безопасности сети
  • Возможность определения правила исходящей группы безопасности сети (NSG) Deny All для ограничения исходящего трафика в Интернет
  • Возможность переопределить маршрут по умолчанию в Интернет (0.0.0.0/0)
  • Разрешение DNS с помощью определенных резолверов в виртуальной сети Подробнее, включая приватные зоны DNS Private Link.

Каждая из этих функций может быть настроена независимо. Например, общедоступный IP-адрес можно использовать для разрешения входящего трафика из Интернета, и можно определить правило "Запретить все исходящие" в конфигурации группы безопасности сети, чтобы предотвратить утечку данных.

Подключение к функции

Функциональные возможности новых элементов управления конфигурацией внешнего интерфейса частных IP-адресов, управление правилами NSG и управление таблицами маршрутов обычно доступны и поддерживаются в рабочей среде. Чтобы присоединиться к функции, необходимо выбрать интерфейс с помощью портала Azure, PowerShell, CLI или REST API.

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

Зарегистрируйте функцию

Выполните следующие действия, чтобы зарегистрировать функцию для расширенных сетевых элементов управления Шлюза приложений с помощью портала Azure:

  1. Войдите на портал Azure.

  2. В поле поиска введите подписки и выберите Подписки.

    Снимок экрана поиска в портале Azure.

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

    Снимок экрана: выбор подписки Azure.

  4. В меню слева выберите Предварительные версии функций в разделе Параметры.

    Снимок экрана: меню функций Azure.

  5. Вы увидите список доступных функций и текущего состояния регистрации.

    Снимок экрана: список предварительных версий функций портала Azure.

  6. В поле фильтра введите "EnableApplicationGatewayNetworkIsolation", проверьте эту функцию и нажмите "Зарегистрировать" на "Предварительные функции".

    Снимок экрана: предварительный просмотр функций фильтра портала Azure.

Note

Регистрация компонентов может занять до 30 минут, чтобы перейти с регистрации на зарегистрированный статус.

Отмена регистрации функции

Чтобы отказаться от функции расширенных сетевых элементов управления Шлюзом приложений с помощью портала, выполните следующие действия.

  1. Войдите на портал Azure.

  2. В поле поиска введите подписки и выберите Подписки.

    Снимок экрана поиска в портале Azure.

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

    Снимок экрана: выбор подписки Azure.

  4. В меню слева выберите Предварительные версии функций в разделе Параметры.

    Снимок экрана: меню функций Azure.

  5. Вы увидите список доступных функций и текущего состояния регистрации.

    Снимок экрана: список функций портала Azure.

  6. В разделе Предварительные функции введите в поле фильтра EnableApplicationGatewayNetworkIsolation, отметьте функцию и нажмите Отменить регистрацию.

    Снимок экрана: функции фильтра портала Azure.

Настройка сетевых элементов управления

После регистрации функции можно выполнить настройку NSG, таблицы маршрутов и интерфейсной конфигурации частных IP-адресов с помощью любых методов. Например, REST API, шаблон ARM, развертывание Bicep, Terraform, PowerShell, CLI или портал.

Изменения ресурсов

После подготовки шлюза тег ресурса автоматически назначается с именем EnhancedNetworkControl и значением True. См. следующий пример.

Снимок экрана: тег EnhancedNetworkControl.

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

Tip

Тег EnhancedNetworkControl может быть полезным, если существующие шлюзы приложений были развернуты в подписке до включения функций, и вы хотите отличить, какой шлюз может использовать новые функции.

Подсеть Шлюза приложений (Application Gateway)

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

Note

По состоянию на 5 мая 2025 года, для новых и существующих развертываний Частного Шлюза Приложений требуется делегирование подсети на Microsoft.Network/applicationGateways. Выполните следующие действия по настройке делегирования подсети.

Исходящее подключение к Интернету

Развертывания Шлюза приложений, содержащие только частную конфигурацию фронтенд IP-адреса (не имеющие общедоступной конфигурации фронтенд IP-адреса, связанной с правилом маршрутизации запросов), не могут передавать исходящий трафик, предназначенный для выхода в Интернет. Эта конфигурация влияет на обмен данными с целевыми объектами серверной части, которые общедоступны через Интернет.

Чтобы включить исходящее подключение из шлюза приложений к целевому объекту серверной части Интернета, вы можете использовать NAT виртуальной сети или перенаправлять трафик на виртуальное устройство с доступом к Интернету.

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

Если виртуальное устройство требуется для исходящего трафика Через Интернет, см. раздел управления таблицами маршрутов в этом документе.

Распространенные сценарии, в которых требуется использование общедоступных IP-адресов:

  • Связь с хранилищем ключей без использования частных конечных точек или конечных точек службы
    • Исходящее подключение не требуется для pfx-файлов, отправленных непосредственно в шлюз приложений
  • Обмен данными с целевыми системами серверной части через Интернет
  • ** Обмен данными с конечными точками CRL или OCSP, находящимися в сети Интернет

Управление группами безопасности сети

Группы безопасности сети, связанные с подсетью Шлюза приложений, больше не требуют правил для входящего трафика для GatewayManager, и они не требуют исходящего доступа к Интернету. Единственное обязательное правило — разрешить входящий трафик от AzureLoadBalancer, чтобы гарантировать, что пробы работоспособности могут достигать шлюза.

Следующая конфигурация является примером наиболее строгого набора правил входящего трафика, запрещая весь трафик, кроме запросов состояния здоровья Azure. Помимо определенных правил, явные правила создаются, чтобы позволить клиентскому трафику достичь прослушивателя шлюза.

Снимок экрана: правила группы безопасности для входящего трафика.

Note

Шлюз приложений отобразит оповещение с просьбой убедиться, что параметр Allow LoadBalanceRule указан, если правило DenyAll непреднамеренно ограничивает доступ к пробам работоспособности.

Пример сценария

В этом примере описывается создание группы безопасности сети с помощью портала Azure со следующими правилами:

  • Разрешить входящий трафик через порт 80 и 8080 в шлюз приложений из клиентских запросов, исходящих из Интернета
  • Запретить весь другой входящий трафик
  • Разрешить исходящий трафик на целевой объект бэкенда в другой виртуальной сети
  • Разрешить исходящий трафик к целевому сетевому месту назначения, имеющему доступ в Интернет
  • Запретить весь другой исходящий трафик

Сначала создайте группу безопасности сети. Эта группа безопасности содержит правила для входящего и исходящего трафика.

Правила для входящего трафика

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

Снимок экрана: правила группы безопасности по умолчанию.

Затем создайте следующие четыре новых правила безопасности для входящего трафика:

  • Разрешить доступ на входящий порт 80, TCP, из Интернета (любой источник)
  • Разрешить входящий порт 8080, tcp, из Интернета (любой)
  • Разрешить входящий трафик из AzureLoadBalancer
  • Запретить любой входящий трафик

Чтобы создать эти правила, выполните следующие действия.

  • Выбор правил безопасности для входящего трафика
  • Выберите Добавить
  • Введите следующие сведения для каждого правила в области "Добавление правила безопасности для входящего трафика ".
  • Когда вы ввели сведения, нажмите кнопку "Добавить ", чтобы создать правило.
  • Создание каждого правила занимает некоторое время.
Правило # Source Тег службы источника Диапазоны исходных портов Destination Service Диапазоны портов Dest Protocol Action Priority Name
1 Any * Any HTTP 80 TCP Allow 1028 AllowWeb
2 Any * Any Custom 8080 TCP Allow 1029 AllowWeb8080
3 Сервисный тег AzureLoadBalancer * Any Custom * Any Allow 1045 AllowLB
4 Any * Any Custom * Any Deny 4095 DenyAllInbound

Выберите "Обновить", чтобы просмотреть все правила при завершении процесса предоставления.

Снимок экрана: пример правил группы безопасности для входящего трафика.

Правила исходящего трафика

Три правила исходящего трафика по умолчанию с приоритетом 65000, 65001 и 65500 уже подготовлены.

Создайте следующие три новых правила безопасности для исходящего трафика:

  • Разрешить TCP 443 от 10.10.4.0/24 до серверного целевого объекта 203.0.113.1
  • Разрешить порт TCP 80 из источника 10.10.4.0/24 к адресу назначения 10.13.0.4
  • Правило трафика DenyAll

Эти правила имеют приоритет 400, 401 и 4096 соответственно.

Note

  • 10.10.4.0/24 — это адресное пространство подсети шлюза приложений.
  • 10.13.0.4 — это виртуальная машина в одноранговой виртуальной сети.
  • 203.0.113.1 — это серверная целевая виртуальная машина.

Чтобы создать эти правила, выполните следующие действия.

  • Выбор правил безопасности для исходящего трафика
  • Выберите Добавить
  • Введите следующие сведения для каждого правила в области "Добавление правила безопасности для исходящего трафика ".
  • Когда вы ввели сведения, нажмите кнопку "Добавить ", чтобы создать правило.
  • Создание каждого правила занимает некоторое время.
Правило # Source Диапазоны исходных IP-адресов/CIDR Диапазоны исходных портов Destination Диапазоны IP-адресов назначения и CIDR Service Диапазоны портов Dest Protocol Action Priority Name
1 IP-адреса 10.10.4.0/24 * IP-адреса 203.0.113.1 HTTPS 443 TCP Allow 400 AllowToBackendTarget
2 IP-адреса 10.10.4.0/24 * IP-адреса 10.13.0.4 HTTP 80 TCP Allow 401 AllowToPeeredVnetVM
3 Any * Any Custom * Any Deny 4096 DenyAll

Выберите "Обновить", чтобы просмотреть все правила при завершении процесса предоставления.

Снимок экрана: правила безопасности исходящего трафика для шлюза приложений.

Назначить группу безопасности сети для подсети

Последний шаг — связать группу безопасности сети с подсетью , содержащей шлюз приложений.

Снимок экрана связывания NSG с подсетью.

Result:

Снимок экрана обзора NSG.

Important

Будьте осторожны при определении правил DenyAll , так как вы можете случайно запретить входящий трафик от клиентов, к которым планируется разрешить доступ. Вы также можете непреднамеренно запретить исходящий трафик к целевой серверной системе, что может привести к сбоям в работоспособности серверной части и, как следствие, к ответам с кодами 5XX.

Элемент управления "Таблица маршрутов"

В текущем варианте шлюза приложений сопоставление таблицы маршрутов с правилом (или создание правила), определенное как 0.0.0.0/0, со следующим прыжком в виде виртуального устройства не поддерживается, чтобы обеспечить надлежащее управление шлюзом приложений.

После регистрации функции возможность перенаправления трафика на виртуальное устройство теперь возможна с помощью определения правила таблицы маршрутов, определяющего 0.0.0.0/0/0 с следующим прыжком на виртуальное устройство.

Принудительное туннелирование или обучение маршрута 0.0.0.0/0 через рекламу BGP не влияет на работоспособность шлюза приложений и учитывается для потока трафика. Этот сценарий может применяться при использовании VPN, ExpressRoute, сервера маршрутов или виртуальной глобальной сети.

Пример сценария

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

  • Шлюз приложений находится в спицевой виртуальной сети
  • В центральной сети существует сетевое виртуальное устройство (виртуальная машина)
  • Таблица маршрутов с маршрутом по умолчанию (0.0.0.0/0/0) виртуального устройства связана с подсетью шлюза приложений.

Схема, например таблица маршрутов.

Рис. 1. Исходящий трафик из Интернета через виртуальное устройство

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

  1. Создайте таблицу маршрутов:

Снимок экрана: только что созданная таблица маршрутов.

  1. Выберите маршруты и создайте правило маршрута следующего узла для 0.0.0.0/0 и настройте IP-адрес виртуальной машины в качестве назначения.

Снимок экрана: добавление маршрута по умолчанию в сетевое виртуальное устройство.

  1. Выберите подсети и свяжите таблицу маршрутов с подсетью шлюза приложений:

Снимок экрана: связывание маршрута с подсетью AppGW.

  1. Убедитесь, что трафик проходит через виртуальное устройство.

Ограничения / известные проблемы

Действительны следующие ограничения.

Поддержка конфигурации приватной ссылки для туннелирования трафика через частные конечные точки в шлюзе приложений не поддерживается с шлюзом, который является только частным.

Ограничение скорости WAF

Ограничение пропускной способности пользовательских правил для шлюза приложений WAF версии 2 все еще не поддерживается.

Конфигурация фронтенда частного IP только с AGIC

AGIC версии 1.7 необходимо использовать для внедрения поддержки только частных интерфейсных IP-адресов.

Подключение к частной конечной точке через глобальный пиринг виртуальной сети

Если Шлюз Приложений имеет серверную целевую точку или ссылку на хранилище ключей с частной конечной точкой, расположенной в виртуальной сети, доступной через глобальный пиринг виртуальных сетей, трафик отбрасывается, что приводит к неработоспособному состоянию.

Интеграция наблюдателя за сетями

Устранение неполадок подключения и диагностика NSG возвращают ошибку при выполнении проверок и диагностических тестов.

Совместное использование шлюзов приложений версии 2, созданных до включения расширенного сетевого управления

Если подсеть предоставляет общий доступ к развертываниям Шлюза приложений версии 2, созданным до и после включения расширенных функций управления сетью, функция группы безопасности сети (NSG) и таблицы маршрутов ограничена предыдущим развертыванием шлюза. Шлюзы приложений, подготовленные перед включением новых функциональных возможностей, должны быть повторно подготовлены или вновь созданные шлюзы должны использовать другую подсеть, чтобы включить расширенные функции группы безопасности сети и таблицы маршрутов.

  • Если в подсети существует шлюз, развернутый до включения новых функциональных возможностей, вы можете столкнуться с такими ошибками, как For routes associated to subnet containing Application Gateway V2, please ensure '0.0.0.0/0' uses Next Hop Type as 'Internet', при добавлении записей в таблицу маршрутов.
  • При добавлении правил группы безопасности сети в подсеть может появиться следующее: Failed to create security rule 'DenyAnyCustomAnyOutbound'. Error: Network security group \<NSG-name\> blocks outgoing Internet traffic on subnet \<AppGWSubnetId\>, associated with Application Gateway \<AppGWResourceId\>. This isn't permitted for Application Gateways that have fast update enabled or have V2 Sku.

Дальнейшие шаги