Защита трафика между приложениями логики уровня "Стандартный" и виртуальными сетями Azure с помощью частных конечных точек
Область применения: Azure Logic Apps (стандартная версия)
Для безопасного и частного взаимодействия рабочего процесса стандартной версии приложения логики с виртуальной сетью Azure настройте частные конечные точки для входящего трафика и использовать интеграцию виртуальной сети для исходящего трафика.
Частная конечная точка — это сетевой интерфейс, который в конфиденциальном режиме безопасно подключается к службе через Приватный канал Azure. Эта служба может быть службой Azure (например, Azure Logic Apps, службой хранилища Azure, Azure Cosmos DB, SQL) или службой Приватного канала пользователя. Частная конечная точка использует частный IP-адрес из виртуальной сети, по сути перемещая службу в виртуальную сеть.
В этой статье рассматривается настройка доступа посредством частных конечных точек для входящего трафика и интеграции виртуальной сети для исходящего трафика.
Дополнительные сведения см. в следующей документации:
- Что такое частная конечная точка Azure
- Частные конечные точки. Интеграция приложения с виртуальной сетью Azure
- Что собой представляет Приватный канал Azure?
- Интеграция региональной виртуальной сети
Необходимые компоненты
Новая или существующая виртуальная сеть Azure, которая включает подсеть без каких-либо делегирований. Подсеть используется для развертывания и выделения частных IP-адресов из виртуальной сети.
Дополнительные сведения см. в следующей документации:
Установите или используйте средство, которое может отправлять HTTP-запросы для тестирования решения, например:
- Visual Studio Code с расширением из Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge — средство сетевой консоли
- Бруно
- curl
Внимание
В сценариях, в которых есть конфиденциальные данные, такие как учетные данные, секреты, маркеры доступа, ключи API и другие аналогичные сведения, обязательно используйте средство, которое защищает данные с помощью необходимых функций безопасности, работает в автономном режиме или локально, не синхронизирует данные с облаком и не требует входа в учетную запись в Сети. Таким образом, вы снижаете риск предоставления конфиденциальных данных общественности.
Настройка входящего трафика, проходящего через частные конечные точки
Чтобы защитить входящий трафик в своем рабочем процессе, выполните следующие важные действия.
Запустите рабочий процесс со встроенным триггером, который может получать и обрабатывать входящие запросы, например триггер запроса или триггер HTTP+ Webhook . Этот триггер осуществляет настройку рабочего процесса с помощью вызываемой конечной точки.
Добавьте частную конечную точку для ресурса приложения логики в виртуальную сеть.
Выполните тестовые вызовы, чтобы проверить доступ к конечной точке. Чтобы вызвать рабочий процесс приложения логики после настройки этой конечной точки, подключитесь к виртуальной сети.
Рекомендации по входящему трафику, проходящему через частные конечные точки
При попытке получения доступа за пределами виртуальной сети представление мониторинга не может получить доступ к входным и выходным данным от триггеров и действий.
Управляемые триггеры веб-перехватчика API (извещающие триггеры) и действия не будут работать, так как они работают в общедоступном облаке и не могут обращаться к частной сети. Для получения вызовов им требуется общедоступная конечная точка. Например, такие триггеры включают триггеры Dataverse и "сетка событий".
При использовании триггера Outlook Office 365 рабочий процесс активируется только каждый час.
Развертывание из Visual Studio Code или Azure CLI работает только в пределах виртуальной сети. Используйте центр развертывания для связи приложения логики с репозиторием GitHub. После этого можно применить инфраструктуру Azure для создания и развертывания кода.
Для выполнения интеграции GitHub удалите параметр
WEBSITE_RUN_FROM_PACKAGE
из приложения логики или задайте для него значение0
.Включение приватного канала не влияет на исходящий трафик, который по-прежнему проходит через инфраструктуру службы приложений.
Обязательные требования для входящего трафика, проходящего через частные конечные точки
Помимо настройки виртуальной сети в обязательных требованиях верхнего уровня, необходимо создать новый или существующий рабочий процесс приложения логики уровня "Стандартный", который запускается с помощью встроенного триггера, способного принимать запросы.
Например, триггер запроса создает конечную точку в рабочем процессе, которая может получать и обрабатывать входящие запросы от других вызывающих объектов, включая рабочие процессы. Такая конечная точка предоставляет URL-адрес, который можно использовать для вызова и запуска рабочего процесса. В этом примере шаги продолжаются с триггером запроса .
Дополнительные сведения см. в статье Получение входящих HTTP-запросов и ответ на них с помощью службы Azure Logic Apps.
Создание рабочего процесса
Создайте приложение логики на основе одного клиента (если оно еще не создано) и пустой рабочий процесс.
После открытия конструктора добавьте триггер запроса в качестве первого шага в рабочем процессе.
На основании требований к сценарию добавьте другие действия, которые необходимо выполнить в рабочем процессе.
Закончив работу, сохраните свой рабочий процесс.
Дополнительные сведения см. в разделе Создание рабочих процессов приложения логики с одним клиентом в службе Azure Logic Apps.
Копирование URL-адреса конечной точки
В меню "Рабочий процесс" выберите пункт Обзор.
На странице Обзор скопируйте и сохраните URL-адрес рабочего процесса для последующего использования.
Чтобы проверить URL-адрес и активировать рабочий процесс, отправьте HTTP-запрос в URL-адрес с помощью средства HTTP-запроса и его инструкций.
Настройка подключения к частной конечной точке
В меню ресурса приложения логики выберите в разделе Параметры пункт Сеть.
На странице "Сеть" в разделе конфигурации входящего трафика выберите ссылку рядом с частными конечными точками.
На странице "Подключения к частной конечной точке" выберите "Добавить>express" или "Дополнительно".
Дополнительные сведения о параметре "Дополнительно " см. в статье "Создание частной конечной точки".
На панели "Добавить частную конечную точку" укажите запрошенные сведения о конечной точке.
Для получения дополнительных сведений см. раздел Свойства частной конечной точки.
После того, как Azure успешно подготовит к работе частную конечную точку, повторите попытку вызова URL-адреса рабочего процесса.
На этот раз выводится ожидаемая ошибка
403 Forbidden
, которая означает, что частная конечная точка настроена и работает правильно.Чтобы убедиться, что подключение работает правильно, создайте виртуальную машину в той же виртуальной сети, что и частная конечная точка, и попробуйте вызвать рабочий процесс приложения логики.
Настройка исходящего трафика с помощью интеграции виртуальной сети
Чтобы защитить исходящий трафик приложения логики, интегрируйте приложение логики с виртуальной сетью. Сначала создайте и протестируйте пример рабочего процесса. После этого можно настроить интеграцию виртуальной сети.
Рекомендации по исходящему трафику, проходящему через интеграцию с виртуальной сетью
Настройка интеграции с виртуальной сетью влияет только на исходящий трафик. Чтобы защитить входящий трафик, который продолжает использовать общую конечную точку службы приложений, ознакомьтесь с разделом Настройка входящего трафика, проходящего через частные конечные точки.
Размер подсети нельзя изменить после назначения, поэтому используйте подсеть, которая достаточно велика для размещения любого масштаба, которого может достигнуть ваше приложение. Чтобы избежать проблем с емкостью подсети, используйте подсеть
/26
с 64 адресами. При создании подсети для интеграции виртуальной сети с порталом Azure необходимо использовать/27
в качестве минимального размера подсети.Для работы среды выполнения Azure Logic Apps необходимо непрерывное подключение к серверному хранилищу. Если доступ к внутреннему хранилищу предоставляется виртуальной сети через частную конечную точку, убедитесь в том, что открыты следующие порты:
Исходный порт Порт назначения Источник Назначение Протокол Характер использования * 443 Подсеть, интегрированная с приложением логики "Стандартный" Storage account TCP Storage account * 445 Подсеть, интегрированная с приложением логики "Стандартный" Storage account TCP Общая папка SMB (блок сообщений сервера) Для работы управляемых соединителей, размещенных в Azure, требуется непрерывное подключение к управляемой службе API. При интеграции с виртуальной сетью убедитесь в том, что брандмауэр или политика безопасности сети не блокируют эти подключения. Если виртуальная сеть использует группу безопасности сети (NSG), определяемую пользователем таблицу маршрутов (UDR) или брандмауэр, убедитесь, что виртуальная сеть разрешает исходящие подключения ко всем IP-адресам управляемых соединителей в соответствующем регионе. В противном случае управляемые Azure соединители не будут работать.
Дополнительные сведения см. в следующей документации:
- Интеграция приложения с виртуальной сетью Azure
- Группы безопасности сети
- Маршрутизация трафика в виртуальной сети
Создание и тестирование рабочего процесса
Создайте в портале Azureприложение логики на основе одного клиента (если оно еще не создано) и пустой рабочий процесс.
После открытия конструктора добавьте триггер запроса в качестве первого шага в рабочем процессе.
Добавьте действие HTTP для вызова внутренней службы, которая недоступна через Интернет и выполняется с частным IP-адресом, например
10.0.1.3
.Закончив работу, сохраните свой рабочий процесс.
В конструкторе запустите рабочий процесс вручную.
Действие HTTP завершается ошибкой, что обусловлено проектированием и ожидаемо, так как рабочий процесс выполняется в облаке и не может получить доступ к внутренней службе.
Настройка интеграции с виртуальной сетью
В портал Azure в меню ресурсов приложения логики в разделе "Параметры" выберите "Сеть".
На странице "Сеть" в разделе конфигурации исходящего трафика выберите ссылку рядом с интеграцией виртуальной сети.
На странице интеграции с виртуальной сетью выберите "Добавить интеграцию виртуальной сети".
На панели "Добавление интеграции с виртуальной сетью" выберите подписку, виртуальную сеть, которая подключается к внутренней службе, и подсеть, куда добавить приложение логики. По завершении нажмите кнопку "Подключить".
На странице интеграции виртуальная сеть по умолчанию выбран параметр исходящего интернет-трафика, который направляет весь исходящий трафик через виртуальную сеть. В этом сценарии параметр приложения с именем WEBSITE_VNET_ROUTE_ALL игнорируется.
Чтобы найти этот параметр приложения, в меню ресурсов приложения логики в разделе "Параметры" выберите переменные среды.
Если вы используете собственный сервер доменных имен (DNS) с виртуальной сетью, добавьте параметр приложения WEBSITE_DNS_SERVER , если он отсутствует, и задайте значение IP-адреса для DNS. Если у вас есть дополнительный DNS, добавьте другой параметр приложения с именем WEBSITE_DNS_ALT_SERVER и задайте значение IP-адреса для дополнительного DNS.
Когда Azure успешно подготовит интеграцию с виртуальной сетью, попробуйте запустить рабочий процесс еще раз.
Теперь действие HTTP успешно выполняется.