Использование частных конечных точек для приложений Служба приложений
Примечание.
Начиная с 1 июня 2024 г. все созданные Служба приложений приложения будут иметь возможность создать уникальное имя узла по умолчанию с помощью соглашения <app-name>-<random-hash>.<region>.azurewebsites.net
об именовании. Существующие имена приложений останутся неизменными.
Пример: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Дополнительные сведения см. в разделе "Уникальное имя узла по умолчанию" для ресурса Служба приложений.
Внимание
Частная конечная точка доступна для приложений Windows и Linux, контейнерных или нет, размещенных в этих планах Служба приложений: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (иногда называется планом Elastic Premium).
Вы можете использовать частную конечную точку для приложений Служба приложений, чтобы разрешить клиентам, расположенным в частной сети, безопасно доступ к приложению через Приватный канал Azure. Частная конечная точка использует IP-адрес из адресного пространства виртуальной сети Azure. Сетевой трафик между клиентом в частной сети и приложением проходит по виртуальной сети и Приватный канал в магистральной сети Майкрософт, устраняя уязвимость из общедоступного Интернета.
Использование частной конечной точки для приложения позволяет:
- Защитите приложение, настроив частную конечную точку и отключите доступ к общедоступной сети, чтобы устранить общедоступную уязвимость.
- Безопасно подключитесь к приложению из локальных сетей, которые подключаются к виртуальной сети с помощью частного пиринга VPN или ExpressRoute.
- Предотвращение утечки данных из виртуальной сети.
Общие сведения
Частная конечная точка — это специальный сетевой интерфейс для приложения Служба приложений в подсети в виртуальной сети. При создании частной конечной точки для приложения она обеспечивает безопасное подключение между клиентами в частной сети и приложением. Частная конечная точка назначается IP-адресом из диапазона IP-адресов виртуальной сети. Подключение между частной конечной точкой и приложением использует безопасную Приватный канал. Частная конечная точка используется только для входящего трафика в приложение. Исходящий трафик не использует эту частную конечную точку. Вы можете внедрить исходящий трафик в сеть в другой подсети с помощью функции интеграции виртуальной сети.
Каждый слот приложения настраивается отдельно. Вы можете подключить до 100 частных конечных точек на слот. Вы не можете совместно использовать частную конечную точку между слотами. Имя подресурса слота .sites-<slot-name>
Подсеть, в которой вы подключаете частную конечную точку, может содержать другие ресурсы, не требуется выделенная пустая подсеть. Вы также можете развернуть частную конечную точку в другом регионе, отличном от вашего приложения.
Примечание.
Функция интеграции с виртуальной сетью не может использовать ту же подсеть, что и частная конечная точка, это ограничение функции интеграции виртуальной сети.
С точки зрения безопасности
- Частная конечная точка и общедоступный доступ могут сосуществовать в приложении. Дополнительные сведения см. в обзоре ограничений доступа
- При включении частных конечных точек в приложение убедитесь, что доступ к общедоступной сети отключен, чтобы обеспечить изоляцию.
- Вы можете включить несколько частных конечных точек в других виртуальных сетях и подсетях, включая виртуальную сеть в других регионах.
- Правила ограничений доступа приложения не оцениваются для трафика через частную конечную точку.
- Вы можете устранить риск кражи данных из виртуальной сети, удалив все правила группы безопасности сети (NSG), где назначение — интернет или службы Azure.
В журналах веб-http приложения найдите исходный IP-адрес клиента. Эта функция реализуется с помощью протокола TCP-прокси, перенаправляя свойство IP-адреса клиента в приложение. Дополнительные сведения см. в разделе Получение сведений о подключении с помощью TCP Proxy v2.
DNS
При использовании частной конечной точки для приложений Служба приложений запрошенный URL-адрес должен соответствовать имени приложения. По умолчанию <app-name>.azurewebsites.net
. При использовании уникального имени узла по умолчанию имя приложения имеет формат <app-name>-<random-hash>.<region>.azurewebsites.net
. В примерах ниже mywebapp также может представлять полное региональное уникальное имя узла.
По умолчанию без частной конечной точки общедоступное имя веб-приложения является каноническим именем кластера. Например, разрешение имен :
Имя. | Тип | Значение |
---|---|---|
mywebapp.azurewebsites.net | CNAME | clustername.azurewebsites.windows.net |
clustername.azurewebsites.windows.net | CNAME | cloudservicename.cloudapp.net |
cloudservicename.cloudapp.net | а | 40.122.110.154 |
При развертывании частной конечной точки мы обновим запись DNS, чтобы указать каноническое имя mywebapp.privatelink.azurewebsites.net. Например, разрешение имен :
Имя. | Тип | значение | Комментарий |
---|---|---|---|
mywebapp.azurewebsites.net | CNAME | mywebapp.privatelink.azurewebsites.net | |
mywebapp.privatelink.azurewebsites.net | CNAME | clustername.azurewebsites.windows.net | |
clustername.azurewebsites.windows.net | CNAME | cloudservicename.cloudapp.net | |
cloudservicename.cloudapp.net | а | 40.122.110.154 | <--Этот общедоступный IP-адрес не является вашей частной конечной точкой, вы получите ошибку 403 |
Необходимо настроить частный DNS-сервер или частную зону Azure DNS. Для тестирования можно изменить запись узла для тестового компьютера. Необходимо создать зону DNS privatelink.azurewebsites.net. Зарегистрируйте запись для приложения с помощью записи A и IP-адреса частной конечной точки. Например, разрешение имен :
Имя. | Тип | значение | Комментарий |
---|---|---|---|
mywebapp.azurewebsites.net | CNAME | mywebapp.privatelink.azurewebsites.net | <--Azure создает эту запись CNAME в общедоступном DNS Azure, чтобы указать адрес приложения на адрес частной конечной точки. |
mywebapp.privatelink.azurewebsites.net | Объект | 10.10.10.8 | <—Вы управляете этой записью в системе DNS, чтобы указать IP-адрес частной конечной точки. |
После этой конфигурации DNS вы можете приватно связаться с приложением с именем по умолчанию mywebapp.azurewebsites.net. Необходимо использовать это имя, так как сертификат по умолчанию выпускается для *.azurewebsites.net.
Если необходимо использовать пользовательское DNS-имя, необходимо добавить пользовательское имя в приложение и проверить пользовательское имя, например любое пользовательское имя, с помощью общедоступного разрешения DNS. Дополнительные сведения см. в разделе валидация пользовательского DNS.
Для консоли Kudu или REST API Kudu (развертывание с локальными агентами Azure DevOps Services) необходимо создать две записи, указывающие на IP-адрес частной конечной точки в частной зоне Azure DNS или пользовательском DNS-сервере. Первый — для вашего приложения, второй — для SCM вашего приложения.
Имя. | Тип | значение |
---|---|---|
mywebapp.privatelink.azurewebsites.net | Объект | PrivateEndpointIP |
mywebapp.scm.privatelink.azurewebsites.net | Объект | PrivateEndpointIP |
Особые рекомендации для среды службы приложений версии 3
Чтобы включить частную конечную точку для приложений, размещенных в плане IsolatedV2 (Среда службы приложений версии 3), необходимо включить поддержку частной конечной точки на уровне Среда службы приложений. Эту функцию можно активировать на портале Azure в области настройки среды службы приложений или с помощью следующего интерфейса командной строки:
az appservice ase update --name myasename --allow-new-private-endpoint-connections true
Особые требования
Если виртуальная сеть находится не в той же подписке, что и приложение, необходимо убедиться, что подписка с виртуальной сетью зарегистрирована для поставщика ресурсов Microsoft.Web
. Вы можете явно зарегистрировать поставщика , следуя этой документации , но при создании первого веб-приложения в подписке вы также автоматически регистрируете поставщика.
Цены
Дополнительные сведения о ценах см. на странице цен на службу "Приватный канал" Azure.
Ограничения
- При использовании функции Azure в плане Elastic Premium с частной конечной точкой для запуска или выполнения функции в портал Azure у вас должен быть прямой сетевой доступ или ошибка HTTP 403. Другими словами, браузер должен иметь возможность получить доступ к частной конечной точке, чтобы выполнить функцию из портал Azure.
- Вы можете подключить до 100 частных конечных точек к конкретному приложению.
- Функции удаленной отладки недоступны через частную конечную точку. Рекомендуется развернуть код в слоте и выполнить удаленную отладку.
- Доступ по FTP предоставляется через входящий общедоступный IP-адрес. Частная конечная точка не поддерживает ftp-доступ к приложению.
- SSL на основе IP-адресов не поддерживается с частными конечными точками.
- Приложения, настроенные с частными конечными точками, не могут получать общедоступный трафик из подсетей с
Microsoft.Web
включенным конечной точкой службы и не могут использовать правила ограничения доступа на основе конечной точки службы. - Именование частных конечных точек должно соответствовать правилам, определенным для ресурсов типа
Microsoft.Network/privateEndpoints
. Здесь можно найти правила именования.
Мы регулярно обновляем функцию Приватный канал Azure и частную конечную точку, ознакомьтесь с этой статьей, чтобы получить актуальные сведения об ограничениях.
Следующие шаги
- Сведения о развертывании частной конечной точки для приложения на портале см. в статье "Как подключиться приватно к приложению с помощью портал Azure
- Сведения о развертывании частной конечной точки для приложения с помощью Azure CLI см. в статье "Как подключиться приватно к приложению с помощью Azure CLI"
- Сведения о развертывании частной конечной точки для приложения с помощью PowerShell см. в статье "Как подключиться приватно к приложению с помощью PowerShell"
- Сведения о развертывании частной конечной точки для приложения с помощью шаблона Azure см. в статье "Как подключиться к приложению с помощью шаблона Azure"
- Полный пример подключения интерфейсного приложения к защищенному внутреннему приложению с интеграцией виртуальной сети и частной конечной точкой с шаблоном ARM см. в этом кратком руководстве.
- Полный пример подключения интерфейсного приложения к защищенному внутреннему приложению с интеграцией виртуальной сети и частной конечной точкой с terraform см. в этом примере.