Статический исходящий IP-адрес Azure WebApp

Я пытаюсь решить проблему. Мне нужно получить доступ к API, размещенным на моем локальном сервере (локально), из веб-API, размещенного в Azure.

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

Другое решение — создать виртуальную сеть и добавить это веб-приложение в эту виртуальную сеть. Но я хотел бы, чтобы кто-то предложил лучшие решения.


person Shabir jan    schedule 04.09.2019    source источник
comment
Обратите внимание, что размещение виртуальной сети является частью ASE (среда службы приложений), а не ASP (план службы приложений). Какая у вас архитектура?   -  person Raunak Jhawar    schedule 04.09.2019
comment
@RaunakJhawar да, я согласен, архитектура очень проста, у меня есть локальный сервер, который содержит некоторые API, и у меня есть веб-приложение (.Net Core, веб-API), из которого я хочу получить доступ к локальным API. И мне нужно внести свой IP-адрес (размещенное в Azure веб-приложение) в белый список на локальном сервере.   -  person Shabir jan    schedule 04.09.2019
comment
Для этого вам потребуется внести в белый список все доступные (дополнительные исходящие) IP-адреса, связанные с приложением, и добавить исключение в локальные брандмауэры, чтобы разрешить пакеты портов 80/443.   -  person Raunak Jhawar    schedule 04.09.2019


Ответы (3)


У вас есть несколько вариантов.

Во-первых, вы можете просмотреть possibleOutboundIpAddress службы приложений и внести эти IP-адреса в белый список. Однако это также открывает двери для IP-адресов, которые на самом деле не используются вашей службой приложений.

az webapp show --resource-group <group_name> --name <app_name> --query possibleOutboundIpAddresses --output tsv

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

  1. Настройте интеграцию региональной виртуальной сети из службы приложений.
  2. Направляйте весь исходящий трафик из этого приложения через виртуальную сеть. Это делается путем установки свойства WEBSITE_VNET_ROUTE_ALL=1 в конфигурации вашего веб-приложения.
  3. Создайте общедоступный IP-адрес.
  4. Добавьте шлюз NAT, подключите его к подсети, содержащей службу приложений, и используйте общедоступный IP-адрес, созданный на шаге 3.

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

person Matthias Güntert    schedule 08.12.2020

Исходящие IP-адреса для службы приложений Azure обычно являются статическими и не изменятся при масштабировании. Обычно существует 4 исходящих IP-адреса, и они меняются только в том случае, если вы меняете SKU или на стороне MS возникает необходимость увеличить емкость своего центра обработки данных (редко или может никогда не произойти в ближайшем будущем).

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

person R Jain    schedule 04.09.2019

К сожалению, нет прямого способа сделать это в Azure для служб приложений, у меня также недавно была эта проблема. Единственное решение (во всяком случае, на данный момент) — добавить список исходящих IP-адресов службы приложений в правила разрешения.

Просто будьте осторожны с масштабированием между уровнями, потому что это изменит исходящие IP-адреса. (https://docs.microsoft.com/en-us/azure/app-service/overview-inbound-outbound-ips#when-outbound-ips-change)

Самый простой способ — использовать виртуальную машину Azure со статическим общедоступным IP-адресом, который используется как для входящего, так и для исходящего трафика. У Сэма Когана есть хороший пост в блоге, где он рассматривает пару вариантов. (https://samcogan.com/obtaining-a-static-outbound-ip-from-an-azure-virtual-network/)

person JPRG    schedule 17.06.2020