У нас есть веб-приложение, которое развертывается в качестве службы App в Azure. Мы хотели бы ограничить доступ к нему, указав белый список IP-адресов, которые могут быть выполнены в некоторых настройках службы Azure App Service, а не в web.config
, которые мы имеем внутри проекта.Как ограничить доступ к службе приложений с помощью настройки внутри Azure Portal
В настоящее время мы ограничиваем IP-адреса в нашей среде.
- Производство: Мы настроили VNET интеграции для App службы. Мы приложили
NSG
кVNet's
Subnet
, а изNSG
мы можем контролировать входящий и исходящий доступ. Этап: У нас есть следующий блок конфигурации в нашем
web.config
, который содержит белые IP-адреса, которым разрешен доступ к службе App на нашем промежуточном сервере.<security> <ipSecurity allowUnlisted="false" denyAction="NotFound"> <add allowed="true" ipAddress="some ip address" subnetMask="255.255.255.254"></add> <add allowed="true" ipAddress="some ip address" subnetMask="255.255.255.254"></add> </ipSecurity> </security>
развитие (местное): Мы должны раскомментировать блок
<security>
конфигурации в наших локальных машинах развития сог мы на самом деле не нужны. И это вызывает ошибку, см. Снимок экрана ниже.
Это некоторое содержимое из HttpFailre_09-07-33.html
Module IpRestrictionModule
Notification BeginRequest
Handler aspNetCore
Error Code 0x80070021
Config Error This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
Мы хотели бы, чтобы полностью удалить этот <security>
блок из web.config, потому что по другой причине , мы не хотим, чтобы IP-адреса достигли производительности.
А также нам не разрешено делать VNet-интеграцию на нашем промежуточном сервере (что-то из-за рутирования!).
Итак, есть ли способ ограничить IP-адреса в Azure App Service?
Благодарим за это! Я решил использовать # 2, где я добавляю значения 'ipRestriction' в' Azure Resource Explorer' напрямую. Однако у меня есть один вопрос: сохраняют ли значения 'ipRestriction', даже если я развертываю новый' web.config'? Я просто сделал разворот, и он не изменился, я просто хочу подтвердить :) Если он изменится для каждого развертывания, мне, возможно, придется использовать сценарии PowerShell для установки 'ipRestrictions' – jmc
. По моему опыту, рекомендуется использовать скрипт PowerShell для этого. –
Хорошо, один последний вопрос, пожалуйста. Где вы рекомендуете, чтобы я поместил сценарий PowerShell? Я думаю о двух местах - 1.) Внутри 'project.json' Я добавлю' postpublish' действие для выполнения скрипта ИЛИ 2.) Внутри 'PublishProfiles' я могу добавить файл' .ps1' или просто поместите скрипты непосредственно в сгенерированный 'publish-module.psm1' – jmc