Как управлять входящим трафиком в среде службы приложений
Внимание
Эта статья посвящена Среде службы приложений версии 1. Среда службы приложений версии 1 и 2 отставаются от 31 августа 2024 года. Имеется новая версия среды службы приложений, которая проще в использовании и которая работает на более мощной инфраструктуре. Чтобы узнать больше о новой версии, начните с изучения статьи Введение в Среду службы приложений. Если вы используете Среду службы приложений версии 1, выполните действия, описанные в этой статье, чтобы перейти на новую версию.
По состоянию на 31 августа 2024 года соглашение об уровне обслуживания (SLA) и кредиты на обслуживание больше не применяются к рабочим нагрузкам Среда службы приложений версии 1 и 2, которые продолжают работать, так как они являются устаревшими продуктами. Началось списание оборудования Среда службы приложений версии 1 и 2, и это может повлиять на доступность и производительность приложений и данных.
Необходимо выполнить миграцию в Среда службы приложений версии 3 немедленно или удалить приложения и ресурсы. Мы попытаемся выполнить автоматическую миграцию всех оставшихся Среда службы приложений версии 1 и 2 на основе оптимальной работы с помощью функции миграции на месте, но корпорация Майкрософт не утверждает или не гарантирует доступность приложений после автоматической миграции. Вам может потребоваться выполнить настройку вручную, чтобы завершить миграцию и оптимизировать выбор номера SKU плана Служба приложений в соответствии с вашими потребностями. Если автоматическая миграция невозможна, ваши ресурсы и связанные данные приложения будут удалены. Мы настоятельно призываем вас действовать сейчас, чтобы избежать любого из этих экстремальных сценариев.
Если вам потребуется дополнительное время, мы можем предложить одноразовый 30-дневный льготный период для завершения миграции. Дополнительные сведения и запросы на этот льготный период см. в обзоре льготного периода, а затем перейдите к портал Azure и перейдите в колонку "Миграция" для каждого Среда службы приложений.
Последние сведения об обновлении Среда службы приложений версии 1/2 см. в Среда службы приложений обновлении для выхода на пенсию версии 1 и версии 2.
Обзор
Среду службы приложений можно создать либо в виртуальной сети Azure Resource Manager, либо в виртуальной сети, использующей классическую модель развертывания. Новые виртуальную сеть и подсеть можно определить во время создания среды службы приложений. Вместо этого можно создать Среда службы приложений в предварительной виртуальной сети и предварительной подсети. Начиная с июня 2016 года среды ASE можно также развертывать в виртуальных сетях, использующих либо диапазоны общедоступных адресов, либо адресные пространства RFC1918 (частные адреса). Дополнительные сведения см. в разделе Создание ASEv1 из шаблона.
Всегда создавайте среду службы приложений в подсети. Подсеть обеспечивает границу сети, которую можно использовать для блокировки входящего трафика за пределами вышестоящих устройств и служб. Эта установка позволяет принимать трафик HTTP и HTTPS только конкретным вышестоящим IP-адресам.
Входящий и исходящий сетевой трафик в подсети контролируется с помощью группы сетевой безопасности. Чтобы управлять входящим трафиком, создайте правила безопасности сети в группе безопасности сети. Затем назначьте группе безопасности сети подсеть, содержащую среду службы приложений.
После назначения для подсети группы безопасности сети входящий трафик к приложениям в среде службы приложений разрешается или блокируется в зависимости от правил, определенных в группе безопасности сети.
Примечание.
Хотя эта статья относится к веб-приложениям, она также применима к приложениям API и мобильным приложениям.
Входящие сетевые порты, используемые в среде службы приложений
Перед блокировкой входящего сетевого трафика с помощью группы сетевой безопасности изучите набор обязательных и необязательных сетевых портов, используемых средой службы приложений. Случайное закрытие трафика на некоторых портах может привести к потере функциональности в среде службы приложений.
Ниже приведен список портов, используемых средой службы приложений. Это все TCP-порты, если явно не указано иное.
- 454: обязательный порт, используемый инфраструктурой Azure для обслуживания сред службы приложений и управления ими с помощью TLS. Не блокируйте трафик в этом порту. Этот порт всегда привязан к общедоступному виртуальному IP-адресу ASE.
- 455: обязательный порт, используемый инфраструктурой Azure для обслуживания сред службы приложений и управления ими с помощью TLS. Не блокируйте трафик в этом порту. Этот порт всегда привязан к общедоступному виртуальному IP-адресу ASE.
- 80: порт по умолчанию для входящего HTTP-трафика для приложений, выполняемых в планах службы приложений в среде службы приложений. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
- 443: порт по умолчанию для входящего трафика TLS приложений, выполняемых в планах службы приложений в среде службы приложений. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
- 21: канал управления для FTP. Этот порт можно безопасно заблокировать, если FTP не используется. В ASE с внутренним балансировщиком нагрузки этот порт может быть привязан к адресу балансировщика нагрузки ASE.
- 990: канал управления для FTPS. Этот порт можно безопасно заблокировать, если FTPS не используется. В ASE с внутренним балансировщиком нагрузки этот порт может быть привязан к адресу балансировщика нагрузки ASE.
- 10001 10020: каналы данных для FTP. Как и при использовании канала управления, эти порты можно безопасно заблокировать, если FTP не используется. В ASE с внутренним балансировщиком нагрузки этот порт может быть привязан к адресу балансировщика нагрузки ASE.
- 4016: используется для удаленной отладки с помощью Visual Studio 2012. Этот порт можно безопасно заблокировать, если эта функция не используется. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
- 4018: используется для удаленной отладки с помощью Visual Studio 2013. Этот порт можно безопасно заблокировать, если эта функция не используется. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
- 4020: используется для удаленной отладки с помощью Visual Studio 2015. Этот порт можно безопасно заблокировать, если эта функция не используется. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
- 4022: используется для удаленной отладки с помощью Visual Studio 2017. Этот порт можно безопасно заблокировать, если эта функция не используется. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
- 4024: используется для удаленной отладки с помощью Visual Studio 2019. Этот порт можно безопасно заблокировать, если эта функция не используется. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
- 4026: используется для удаленной отладки с помощью Visual Studio 2022. Этот порт можно безопасно заблокировать, если эта функция не используется. В ASE с внутренним балансировщиком нагрузки этот порт привязан к адресу балансировщика нагрузки ASE.
Требования к DNS и исходящим подключениям
Для надлежащего функционирования среды службы приложений также требуется исходящий доступ к различным конечным точкам. Полный список внешних конечных точек, используемых в ASE, приведен в разделе "Необходимое сетевое подключение" статьи Сведения о конфигурации сети для сред службы приложений с ExpressRoute .
Для сред службы приложений требуется, чтобы для виртуальной сети была настроена допустимая инфраструктура DNS. Если после создания среды службы приложений меняется конфигурация DNS, разработчики могут принудительно задать выбор новой конфигурации DNS в среде службы приложений. Если вы запускаете последовательную перезагрузку среды с помощью значка Перезагрузка, среда выбирает новую конфигурацию DNS. (The Значок перезапуска находится в верхней части страницы управления Среда службы приложений в портал Azure.)
Кроме того, рекомендуется заранее настроить все пользовательские DNS-серверы в виртуальной сети перед созданием Среда службы приложений. Если конфигурация DNS виртуальной сети изменяется во время создания Среда службы приложений, процесс создания Среда службы приложений завершается сбоем. Аналогично, если на другой стороне VPN-шлюза есть пользовательский DNS-сервер, который недоступен, процесс создания среды службы приложений также завершится ошибкой.
Создание группы безопасности сети
Подробные сведения о принципах работы групп сетевой безопасности см. здесь. В приведенном ниже примере управления службами Azure рассматриваются особенности групп безопасности сети. В примере настраивается группа безопасности сети и применяется к подсети, содержащей среду службы приложений.
Примечание. Группы безопасности сети можно настроить с помощью графического пользовательского интерфейса на портале Azure или с помощью Azure PowerShell.
Сначала группы сетевой безопасности создаются как отдельные сущности, связанные с подпиской. Поскольку группы безопасности сети создаются в регионе Azure, создайте группу безопасности сети в том же регионе, что и среда службы приложений.
Ниже показана команда для создания группы безопасности сети.
New-AzureNetworkSecurityGroup -Name "testNSGexample" -Location "South Central US" -Label "Example network security group for an app service environment"
После создания группы сетевой безопасности к ней добавляются одно или несколько правил сетевой безопасности. Так как набор правил может измениться со временем, следует выделить схему нумерирования, используемую для приоритетов правил. Эта практика упрощает вставку других правил с течением времени.
В следующем примере правило явно предоставляет доступ к портам управления, необходимым инфраструктурой Azure для управления и поддержкой Среда службы приложений. Весь трафик управления проходит через TLS и защищен сертификатами клиентов. Хотя порты и открыты, они недоступны для любой сущности, кроме инфраструктуры управления Azure.
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "ALLOW AzureMngmt" -Type Inbound -Priority 100 -Action Allow -SourceAddressPrefix 'INTERNET' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '454-455' -Protocol TCP
При блокировании доступа к портам 80 и 443, чтобы "скрыть" среду службы приложений за вышестоящими устройствами или службами, вам нужен вышестоящий IP-адрес. Например, если вы используете брандмауэр веб-приложения (WAF), WAF имеет собственный IP-адрес или адреса. WAF использует их, направляя трафик через прокси-сервер к нижестоящей среде службы приложений. Этот IP-адрес необходимо использовать в параметре SourceAddressPrefix правила безопасности сети.
В следующем примере входящий трафик из определенного вышестоящего IP-адреса явно разрешен. Адрес 1.2.3.4 используется как заполнитель для IP-адреса вышестоящего WAF. Измените значение адреса на адрес, используемый вышестоящим устройством или службой.
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT HTTP" -Type Inbound -Priority 200 -Action Allow -SourceAddressPrefix '1.2.3.4/32' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT HTTPS" -Type Inbound -Priority 300 -Action Allow -SourceAddressPrefix '1.2.3.4/32' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP
Если требуется поддержка FTP, используйте следующие правила как шаблон для предоставления доступа к порту управления FTP и портам каналов данных. Так как FTP является протоколом с отслеживанием состояния, возможно, не удается маршрутизировать FTP-трафик через традиционный брандмауэр HTTP/HTTPS или прокси-устройство. В этом случае необходимо задать для SourceAddressPrefix другое значение, например диапазон IP-адресов разработчика или компьютеров развертывания, на которых выполняются FTP-клиенты.
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT FTPCtrl" -Type Inbound -Priority 400 -Action Allow -SourceAddressPrefix '1.2.3.4/32' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '21' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT FTPDataRange" -Type Inbound -Priority 500 -Action Allow -SourceAddressPrefix '1.2.3.4/32' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '10001-10020' -Protocol TCP
(Примечание. Диапазон портов канала данных может измениться в течение периода предварительной версии.)
Следующие правила показывают, как предоставить доступ при использовании удаленной отладки с помощью Visual Studio. Существует отдельное правило для каждой поддерживаемой версии Visual Studio, поскольку в каждой версии используется свой порт для удаленной отладки. Как и в случае с FTP-доступом, трафик удаленной отладки может не передаваться должным образом через традиционное устройство WAF или прокси-сервер. Для параметра SourceAddressPrefix вместо этого можно задать значение диапазона IP-адресов машины разработчиков, на которых запущена программа Visual Studio.
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2012" -Type Inbound -Priority 600 -Action Allow -SourceAddressPrefix '1.2.3.4/32' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4016' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2013" -Type Inbound -Priority 700 -Action Allow -SourceAddressPrefix '1.2.3.4/32' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4018' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2015" -Type Inbound -Priority 800 -Action Allow -SourceAddressPrefix '1.2.3.4/32' -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4020' -Protocol TCP
Назначение группы сетевой безопасности для подсети
Группа безопасности сети имеет правило безопасности по умолчанию, которое запрещает доступ к любому внешнему трафику. При объединении этого правила с правилами безопасности сети, указанными выше, только трафик из диапазонов адресов источника, связанных с действием Разрешить, будет достигать приложений, выполняемых в среде службы приложений.
После заполнения группы безопасности сети правилами безопасности ее необходимо назначить для подсети, содержащей среду службы приложений. Команда назначения ссылается на два имени: имя виртуальной сети, в которой находится среда службы приложений, и имя подсети, в которой была создана среда службы приложений.
В приведенном ниже примере показана группа сетевой безопасности, назначаемая для подсети и виртуальной сети.
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-test'
Назначение — длительная операция, выполнение которой может занять несколько минут. После успешного назначения группы безопасности сети только входящий трафик, соответствующий правилам Разрешить, будет успешно достигать приложений в среде службы приложений.
Для полноты в приведенном ниже примере показано, как удалить группу безопасности сети для подсети и отменить связь между ними.
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Remove-AzureNetworkSecurityGroupFromSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-test'
Специальные рекомендации для SSL на основе явного IP
Если приложение настроено с явным IP-SSL-адресом (применимым только к ASEs с общедоступным ВИРТУАЛЬНЫм IP-адресом), вместо использования IP-адреса по умолчанию Среда службы приложений, трафик HTTP и HTTPS передаются в подсеть через порты, отличные от портов 80 и 443.
Чтобы найти отдельную пару портов, используемую каждым адресом SSL на основе IP, перейдите на портал и просмотрите подробности о среде службы приложений в колонке взаимодействия с пользователем. Выберите Все параметры>IP-адреса. В колонке IP-адреса отображается таблица всех явно настроенных адресов SSL на основе IP для среды службы приложений. Здесь также показана пара портов, которая используется для маршрутизации трафика HTTP и HTTPS, связанного с каждым адресом SSL на основе IP. Используйте эту пару портов для параметров DestinationPortRange при настройке правил в группе безопасности сети.
Если настроить приложение в ASE для использования SSL на основе IP, то внешним клиентам можно не беспокоиться о сопоставлении специальных пар портов, так как это будет выполняться незаметно для них. Трафик к приложениям будет проходить обычным образом по настроенному адресу SSL на основе IP. Трансляция в специальную пару портов происходит внутри автоматически во время маршрутизации трафика по последнему участку в подсети, содержащей ASE.
Начало работы
Сведения о том, как начать работу со средами службы приложений, см. в статье Введение в среду службы приложений.
Подробнее см. в статье Безопасное подключение к серверным ресурсам из среды службы приложений.
Примечание.
Чтобы приступить к работе со службой приложений Azure до создания учетной записи Azure, перейдите к разделу Пробное использование службы приложений, где вы можете быстро создать кратковременное веб-приложение начального уровня в службе приложений. Никаких кредитных карт и обязательств