Управление исходящим трафиком в приложениях контейнеров Azure с помощью определяемых пользователем маршрутов
Примечание.
Эта функция поддерживается только для типа среды профилей рабочей нагрузки.
В этой статье показано, как использовать определяемые пользователем маршруты (UDR) с Брандмауэр Azure для блокировки исходящего трафика из приложений-контейнеров в внутренние ресурсы Azure или другие сетевые ресурсы.
Azure создает таблицу маршрутов по умолчанию для виртуальных сетей при создании. Реализуя определяемую пользователем таблицу маршрутов, вы можете управлять маршрутизацией трафика в виртуальной сети. В этом руководстве настройка UDR в виртуальной сети "Приложения контейнеров" позволяет ограничить исходящий трафик Брандмауэр Azure.
Вы также можете использовать шлюз NAT или любые другие сторонние устройства вместо Брандмауэр Azure.
Дополнительные сведения см. в настройке UDR с Брандмауэр Azure в сети в приложениях контейнеров Azure.
Необходимые компоненты
Среда профилей рабочих нагрузок: среда профилей рабочих нагрузок, интегрированная с пользовательской виртуальной сетью. Дополнительные сведения см. в руководстве по созданию среды приложения-контейнера в среде профилей рабочих нагрузок.
curl
поддержка. Приложение-контейнер должен иметь контейнер, поддерживающийcurl
команды. В этом руководстве вы используетеcurl
для проверки правильности развертывания приложения-контейнера. Если у вас нет развернутого приложенияcurl
контейнера, можно развернуть следующий контейнер, который поддерживаетcurl
.mcr.microsoft.com/k8se/quickstart:latest
Создание подсети брандмауэра
Для развертывания брандмауэра в интегрированной виртуальной сети требуется подсеть с именем AzureFirewallSubnet .
Откройте виртуальную сеть, интегрированную с приложением в портал Azure.
В меню слева выберите подсети, а затем выберите +Подсеть.
Введите следующие значения:
Параметр Действие Имя Введите AzureFirewallSubnet. Диапазон адресов подсети Используйте значение по умолчанию или укажите диапазон подсети /26 или больше. Выберите Сохранить
Развертывание брандмауэра
В меню портала Azure или на домашней странице нажмите кнопку Создать ресурс.
Найдите брандмауэр.
Выберите Брандмауэр.
Нажмите кнопку создания.
На странице "Создание брандмауэра" настройте брандмауэр со следующими параметрами.
Параметр Действие Группа ресурсов Введите ту же группу ресурсов, что и интегрированная виртуальная сеть. Имя Введите имя выбранного варианта Регион Выберите тот же регион, что и интегрированная виртуальная сеть. Политика брандмауэра Создайте ее, выбрав Добавить новый. Виртуальная сеть Выберите интегрированную виртуальную сеть. Общедоступный IP-адрес Выберите существующий адрес или создайте его, выбрав Добавить новый. Выберите Review + create (Просмотреть и создать). После завершения проверки нажмите кнопку Создать. Выполнение шага проверки может занять несколько минут.
После завершения развертывания выберите "Перейти к ресурсу".
На странице обзора брандмауэра скопируйте частный IP-адрес брандмауэра. Этот IP-адрес используется в качестве адреса следующего прыжка при создании правила маршрутизации для виртуальной сети.
Маршрутизация всего трафика в брандмауэр
Виртуальные сети в Azure имеют таблицы маршрутов по умолчанию при создании сети. Реализуя определяемую пользователем таблицу маршрутов, вы можете управлять маршрутизацией трафика в виртуальной сети. В следующих шагах вы создадите UDR для маршрутизации всего трафика в Брандмауэр Azure.
В меню портала Azure или на домашней странице нажмите кнопку Создать ресурс.
Найдите таблицы route.
Выберите "Таблицы маршрутов".
Нажмите кнопку создания.
Введите следующие значения:
Параметр Действие Регион Выберите регион в качестве виртуальной сети. Имя Введите имя. Распространение маршрутов шлюза Выберите Нет. Выберите Review + create (Просмотреть и создать). После завершения проверки нажмите кнопку Создать.
После завершения развертывания выберите "Перейти к ресурсу".
В меню слева выберите "Маршруты", а затем нажмите кнопку "Добавить ", чтобы создать новую таблицу маршрутов.
Настройте таблицу маршрутов со следующими параметрами:
Параметр Действие Префикс адреса Введите 0.0.0.0/0 Тип следующего прыжка Выберите Виртуальный модуль. Адрес следующего прыжка Введите частный IP-адрес брандмауэра, сохраненный в развертывании брандмауэра. Нажмите кнопку "Добавить ", чтобы создать маршрут.
В меню слева выберите подсети, а затем выберите "Связать таблицу маршрутов" с подсетью приложения контейнера.
Настройте подсеть "Связать" со следующими значениями:
Параметр Действие Виртуальная сеть Выберите виртуальную сеть для приложения-контейнера. Подсеть Выберите подсеть для приложения-контейнера. Нажмите ОК.
Настройка политик брандмауэра
Примечание.
При использовании UDR с Брандмауэр Azure в приложениях контейнеров Azure необходимо добавить определенные теги FQDN и службы в список разрешений брандмауэра. Чтобы определить нужные теги службы, обратитесь к настройке UDR с помощью Брандмауэр Azure.
Теперь весь исходящий трафик из приложения-контейнера направляется в брандмауэр. В настоящее время брандмауэр по-прежнему разрешает весь исходящий трафик. Чтобы управлять разрешенным или запрещенным исходящим трафиком, необходимо настроить политики брандмауэра.
На странице обзора ресурса Брандмауэр Azure выберите политику брандмауэра
В меню слева от страницы политики брандмауэра выберите "Правила приложения".
Щелкните Добавить коллекцию правил.
Введите следующие значения для коллекции правил:
Параметр Действие Имя Введите имя коллекции Тип коллекции правил Выбор приложения Приоритет Введите приоритет, например 110 Действие сбора правил Выберите Разрешить. Группа сбора правил Выбор DefaultApplicationRuleCollectionGroup В разделе "Правила" введите следующие значения
Параметр Действие Имя Введите имя правила Тип источника Выбор IP-адреса Источник Введите * Протокол Введите http:80,https:443 Тип назначения Выберите полное доменное имя. Назначение Введите mcr.microsoft.com
,*.data.mcr.microsoft.com
. Если вы используете ACR, добавьте адрес ACR и*.blob.core.windows.net
.Действие Выберите Разрешить. Примечание.
Если вы используете реестр Docker Hub и хотите получить доступ к нему через брандмауэр, необходимо добавить следующие полные доменные имена в список назначений правил: hub.docker.com, registry-1.docker.io и production.cloudflare.docker.com.
Выберите Добавить.
Убедитесь, что брандмауэр блокирует исходящий трафик
Чтобы убедиться, что конфигурация брандмауэра настроена правильно, можно использовать curl
команду из консоли отладки приложения.
Перейдите к приложению-контейнеру, настроенное с помощью Брандмауэр Azure.
В меню слева выберите консоль, а затем выберите контейнер, поддерживающий
curl
команду.В меню "Выбрать запуск" выберите /bin/sh и нажмите кнопку "Подключить".
В консоли запустите
curl -s https://mcr.microsoft.com
. Вы должны увидеть успешный ответ при добавленииmcr.microsoft.com
в список разрешений для политик брандмауэра.Запустите
curl -s https://<FQDN_ADDRESS>
url-адрес, который не соответствует каким-либо правилам назначения, напримерexample.com
. Пример команды будетcurl -s https://example.com
. Вы не должны получить ответ, указывающий, что брандмауэр заблокировал запрос.