Защита трафика между приложениями логики уровня "Стандартный" и виртуальными сетями Azure с помощью частных конечных точек

Область применения: Azure Logic Apps (стандартная версия)

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

Частная конечная точка — это сетевой интерфейс, который в конфиденциальном режиме безопасно подключается к службе через Приватный канал Azure. Эта служба может быть службой Azure (например, Azure Logic Apps, службой хранилища Azure, Azure Cosmos DB, SQL) или службой Приватного канала пользователя. Частная конечная точка использует частный IP-адрес из виртуальной сети, по сути перемещая службу в виртуальную сеть.

В этой статье рассматривается настройка доступа посредством частных конечных точек для входящего трафика и интеграции виртуальной сети для исходящего трафика.

Дополнительные сведения см. в следующей документации.

Предварительные требования

Необходимо наличие новой или существующей виртуальной сети Azure, содержащей подсеть без делегирования. Подсеть используется для развертывания и выделения частных IP-адресов из виртуальной сети.

Дополнительные сведения см. в следующей документации:

Настройка входящего трафика, проходящего через частные конечные точки

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

  1. Запустите рабочий процесс с помощью встроенного триггера, способного принимать и обрабатывать входящие запросы (например, триггера запроса или триггера HTTP + веб-перехватчика). Этот триггер осуществляет настройку рабочего процесса с помощью вызываемой конечной точки.

  2. Добавьте частную конечную точку для ресурса приложения логики в виртуальную сеть.

  3. Выполните тестовые вызовы, чтобы проверить доступ к конечной точке. Чтобы вызвать рабочий процесс приложения логики после настройки этой конечной точки, подключитесь к виртуальной сети.

Рекомендации по входящему трафику, проходящему через частные конечные точки

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

  • Управляемые триггеры веб-перехватчика API (извещающие триггеры) и действия не будут работать, так как они работают в общедоступном облаке и не могут обращаться к частной сети. Для получения вызовов им требуется общедоступная конечная точка. Например, такие триггеры включают триггеры Dataverse и "сетка событий".

  • При использовании триггера Outlook Office 365 рабочий процесс активируется только каждый час.

  • Развертывание из Visual Studio Code или Azure CLI работает только в пределах виртуальной сети. Используйте центр развертывания для связи приложения логики с репозиторием GitHub. После этого можно применить инфраструктуру Azure для создания и развертывания кода.

    Для выполнения интеграции GitHub удалите параметр WEBSITE_RUN_FROM_PACKAGE из приложения логики или задайте для него значение 0.

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

Обязательные требования для входящего трафика, проходящего через частные конечные точки

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

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

Дополнительные сведения см. в статье Получение входящих HTTP-запросов и ответ на них с помощью службы Azure Logic Apps.

Создание рабочего процесса

  1. Создайте приложение логики на основе одного клиента (если оно еще не создано) и пустой рабочий процесс.

  2. Откройте конструктор и добавьте триггер запроса в качестве первого этапа рабочего процесса.

  3. На основании требований к сценарию добавьте другие действия, которые необходимо выполнить в рабочем процессе.

  4. Закончив работу, сохраните свой рабочий процесс.

Дополнительные сведения см. в разделе Создание рабочих процессов приложения логики с одним клиентом в службе Azure Logic Apps.

Копирование URL-адреса конечной точки

  1. В меню "Рабочий процесс" выберите пункт Обзор.

  2. На странице Обзор скопируйте и сохраните URL-адрес рабочего процесса для последующего использования.

    Чтобы запустить рабочий процесс, вызовите или отправьте запрос на этот URL-адрес.

  3. Убедитесь, что URL-адрес работает путем вызова или отправки на него запроса. Для отправки запроса можно использовать любой инструмент, например Postman.

Настройка подключения к частной конечной точке

  1. В меню своего приложения логики в разделе Параметры выберите пункт Сеть.

  2. На странице Сеть на карте Входящий трафик выберите Частные конечные точки.

  3. На странице Подключения к частной конечной точке выберите Добавить.

  4. В открывшейся области Добавление частной конечной точки укажите запрашиваемые сведения о конечной точке.

    Для получения дополнительных сведений см. раздел Свойства частной конечной точки.

  5. После того, как Azure успешно подготовит к работе частную конечную точку, повторите попытку вызова URL-адреса рабочего процесса.

    На этот раз выводится ожидаемая ошибка 403 Forbidden, которая означает, что частная конечная точка настроена и работает правильно.

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

Настройка исходящего трафика с помощью интеграции виртуальной сети

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

Рекомендации по исходящему трафику, проходящему через интеграцию с виртуальной сетью

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

  • Размер подсети нельзя изменить после назначения, поэтому используйте подсеть, которая достаточно велика для размещения любого масштаба, которого может достигнуть ваше приложение. Чтобы избежать проблем с емкостью подсети, используйте подсеть /26 с 64 адресами. При создании подсети для интеграции виртуальной сети с порталом Azure необходимо использовать /27 в качестве минимального размера подсети.

  • Для работы среды выполнения Azure Logic Apps необходимо непрерывное подключение к серверному хранилищу. Если доступ к внутреннему хранилищу предоставляется виртуальной сети через частную конечную точку, убедитесь в том, что открыты следующие порты:

    Исходный порт Конечный порт Источник Назначение Протокол Назначение
    * 443 Подсеть, интегрированная со стандартным приложением логики Учетная запись хранения TCP Учетная запись хранения
    * 445 Подсеть, интегрированная со стандартным приложением логики Учетная запись хранения TCP Общая папка SMB (блок сообщений сервера)
  • Для работы управляемых соединителей, размещенных в Azure, требуется непрерывное подключение к управляемой службе API. При интеграции с виртуальной сетью убедитесь в том, что брандмауэр или политика безопасности сети не блокируют эти подключения. Если виртуальная сеть использует группу безопасности сети (NSG), определяемую пользователем таблицу маршрутов (UDR) или брандмауэр, убедитесь, что виртуальная сеть разрешает исходящие подключения ко всем IP-адресам управляемых соединителей в соответствующем регионе. В противном случае управляемые Azure соединители не будут работать.

Дополнительные сведения см. в следующей документации:

Создание и тестирование рабочего процесса

  1. Создайте в портале Azureприложение логики на основе одного клиента (если оно еще не создано) и пустой рабочий процесс.

  2. Откройте конструктор и добавьте триггер запроса в качестве первого этапа рабочего процесса.

  3. Добавьте действие HTTP для вызова внутренней службы, которая недоступна через Интернет и выполняется с частным IP-адресом, например 10.0.1.3.

  4. Закончив работу, сохраните свой рабочий процесс.

  5. В конструкторе запустите рабочий процесс вручную.

    Действие HTTP завершается ошибкой, что обусловлено проектированием и ожидаемо, так как рабочий процесс выполняется в облаке и не может получить доступ к внутренней службе.

Настройка интеграции с виртуальной сетью

  1. На портале Microsoft Azure в меню ресурса приложения логики выберите в разделе Параметры пункт Сеть.

  2. В области Сеть на карте Исходящий трафик выберите Интеграция с виртуальной сетью.

  3. В области Интеграция с виртуальной сетью выберите Добавить виртуальную сеть.

  4. На панели Добавить интеграцию с виртуальной сетью выберите подписку и виртуальную сеть, которая подключается к внутренней службе.

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

  5. Если вы используете собственный сервер доменных имен (DNS) с виртуальной сетью, задайте параметру приложения WEBSITE_DNS_SERVER ресурса приложения логики IP-адрес для DNS. Если у вас есть вторичный DNS-сервер, добавьте другой параметр приложения с именем WEBSITE_DNS_ALT_SERVER и задайте в качестве значения IP-адрес для DNS.

  6. Когда Azure успешно подготовит интеграцию с виртуальной сетью, попробуйте запустить рабочий процесс еще раз.

    Теперь действие HTTP успешно выполняется.

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