Поделиться через


Входящие и исходящие IP-адреса в Службе приложений Azure

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

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

Как в службе приложений IP-адреса работают

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

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

Если изменяется входящий IP-адрес

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

  • Удалите приложение и повторно создайте его в другой группе ресурсов (может измениться единица развертывания).
  • удалите последнее приложение в группе ресурсов и комбинации регионов, затем создайте его заново (может измениться единица развертывания);
  • Удалите существующую привязку TLS на основе IP-адресов, например во время продления сертификата (см. раздел "Продление сертификата").

Поиск входящего IP-адреса

Просто выполните следующую команду в локальном терминале:

nslookup <app-name>.azurewebsites.net

Получение статического входящего IP-адреса

Для некоторых задач приложениям может потребоваться выделенный статический IP-адрес. Необходимо обеспечить индивидуальное DNS-имя с привязкой сертификата на основе IP, чтобы получить статический входящий IP-адрес. Если для защиты приложения не требуются функции TLS, то для этой привязки можно передать самозаверяющий сертификат. В привязке TLS на основе IP сертификат привязан к самому IP-адресу, поэтому Служба приложений создает статический IP-адрес для его выполнения.

Если изменяются исходящие IP-адреса

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

Набор исходящих IP-адресов вашего приложения изменится, когда вы выполните одно из следующих действий:

  • Удалите приложение и повторно создайте его в другой группе ресурсов (может измениться единица развертывания).
  • удалите последнее приложение в группе ресурсов и комбинации регионов, затем создайте его заново (может измениться единица развертывания);
  • Масштабируйте приложение между нижними уровнями (базовый, стандартный и премиум), уровнем PremiumV2, уровнем PremiumV3 и параметрами Pmv3 в уровне PremiumV3 (IP-адреса могут быть добавлены или вычитаются из набора).

Вы можете найти набор всех возможных исходящих IP-адресов, которые ваше приложение может использовать, независимо от ценовых категорий, посмотрев на свойство possibleOutboundIpAddresses или в поле Дополнительные исходящие IP-адреса на странице Свойств в портале Azure. См. также раздел Поиск исходящих IP-адресов.

Набор всех возможных исходящих IP-адресов может увеличиваться со временем, если App Service добавляет новые ценовые категории или параметры в существующие развертывания App Service. Например, если Служба приложений добавляет уровень PremiumV3 в существующее развертывание Службы приложений, то увеличивается набор всех возможных исходящих IP-адресов. Аналогичным образом, если Служба приложений добавляет новые параметры Pmv3 в развертывание, которое уже поддерживает уровень PremiumV3, то увеличивается набор всех возможных исходящих IP-адресов. Добавление IP-адресов в развертывании не оказывает непосредственного влияния, так как исходящие IP-адреса для работающих приложений не изменяются при добавлении новой ценовой категории или варианта в развертывание службы приложений App Service. Однако если приложения переключятся на новую ценовую категорию или вариант, который ранее недоступен, используются новые исходящие адреса, а клиенты должны обновить правила брандмауэра нижнего уровня и ограничения IP-адресов.

Поиск исходящих IP-адресов

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

Эти же сведения можно получить, выполнив следующую команду в Cloud Shell.

az webapp show --resource-group <group_name> --name <app_name> --query outboundIpAddresses --output tsv
(Get-AzWebApp -ResourceGroup <group_name> -name <app_name>).OutboundIpAddresses

Чтобы найти все возможные исходящие IP-адреса для приложения, независимо от ценовых категорий, выберите "Свойства " в области навигации слева. Они перечислены в поле "Дополнительные исходящие IP-адреса ".

Эти же сведения можно получить, выполнив следующую команду в Cloud Shell.

az webapp show --resource-group <group_name> --name <app_name> --query possibleOutboundIpAddresses --output tsv
(Get-AzWebApp -ResourceGroup <group_name> -name <app_name>).PossibleOutboundIpAddresses

Сведения о приложениях-функциях см. в разделе "Исходящие IP-адреса приложения-функции".

Получение статического исходящего IP-адреса

Вы можете управлять IP-адресом исходящего трафика из приложения с помощью интеграции виртуальной сети вместе со шлюзом NAT виртуальной сети, чтобы направлять трафик через статический общедоступный IP-адрес. Интеграция виртуальной сети доступна в планах "Базовый", "Стандартный", "Премиум", "ПремиумV2" и "ПремиумV3" службы приложений. Дополнительные сведения об этой настройке см. в разделе Интеграция шлюза NAT.

Свойства IP-адреса на портале Azure

IP-адреса отображаются в нескольких местах на портале Azure. На странице свойств отображаются необработанные выходные данные из inboundIpAddress, possibleInboundIpAddresses, outboundIpAddresses, и possibleOutboundIpAddresses. На странице обзора также отображаются те же значения, но не включает возможные входящие IP-адреса.

Обзор сети показывает сочетание входящих IP-адресов и любых IP-адресов частной конечной точки в поле "Входящие адреса ". Если доступ к общедоступной сети отключен, общедоступный IP-адрес не отображается. Поле "Исходящие адреса" содержит объединенный список (возможных) исходящих IP-адресов и, если приложение интегрировано с виртуальной сетью и выполняет маршрутизацию всего трафика, а подсеть подключена к NAT-шлюзу, поле также будет включать IP-адреса из этого шлюза.

Снимок экрана: отображение IP-адресов на странице обзора сети.

Тег службы

С помощью тега службы AppService можно определить сетевой доступ для службы Azure App Service без указания отдельных IP-адресов. Тег службы — это группа префиксов IP-адресов, используемых для минимизации сложности создания правил безопасности. При использовании тегов служб Azure автоматически обновляет IP-адреса по мере их изменения для службы. Однако тег службы не является механизмом управления безопасностью. Тег службы — это просто список IP-адресов.

Тег AppService службы содержит только входящий IP-адрес мультитенантных приложений. Входящие IP-адреса из приложений, развернутых в изолированных средах службы приложений, и приложений, использующих привязки TLS, основанные на IP, не включаются. Кроме того, все исходящие IP-адреса, используемые как в мультитенантных, так и в изолированных системах, не включаются в тег.

Тег можно использовать, чтобы разрешить исходящий трафик в группе безопасности сети (NSG) для приложений. Если приложение использует ПРОТОКОЛ TLS на основе IP-адресов или приложение развертывается в изолированном режиме, необходимо использовать выделенный IP-адрес. Так как тег содержит только входящий IP-адрес, тег нельзя использовать в ограничениях доступа, чтобы ограничить доступ к приложению из других приложений в Службе приложений.

Примечание.

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

Следующие шаги