Связь между службой приложений Azure и службой приложений через частную ссылку

У меня есть приложение Azure с двумя службами приложений. Служба приложений A вызывает API в службе приложений B.

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

  1. Создана новая виртуальная сеть

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

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

  4. Убедился, что обе службы не доступны публично (я получаю 403)

  5. Для тестирования: создал новую виртуальную машину в виртуальной сети и убедился, что могу переходить от виртуальной машины к службам. Работает отлично. Я просматривал службы, используя их исходный URL: serviceX.azurewebsites.net.

Однако, когда я пытаюсь вызвать службу B из службы A (используя тот же URL-адрес - serviceb.azurewebsites.net), я получаю 403 (Запрещено).

Что мне не хватает?

Как сделать так, чтобы две службы приложений, подключенные с помощью Private Link к одной виртуальной сети, соединялись друг с другом?


person ml123    schedule 30.11.2020    source источник


Ответы (1)


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

Из Использование частных конечных точек для веб-приложения Azure ,

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

Также обратите внимание, что

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

Кроме того, если вы установите WEBSITE_VNET_ROUTE_ALL в настройках приложения на 1, это затронет все ваши исходящие вызовы, и если вы хотите, чтобы ваше приложение использовало частные зоны Azure DNS, вы должны установить WEBSITE_DNS_SERVER со значением 168.63.129.16.

person Nancy Xiong    schedule 30.11.2020
comment
Забыл упомянуть в моем вопросе - я уже установил WEBSITE_VNET_ROUTE_ALL и WEBSITE_DNS_SERVER. Должен ли я добавить к нему интеграцию с виртуальной сетью? - person ml123; 30.11.2020
comment
да. Вам необходимо включить интеграцию виртуальной сети в отдельной подсети в той же виртуальной сети. - person Nancy Xiong; 01.12.2020
comment
Спасибо! Это сработало. - person ml123; 01.12.2020