Настройка ограничений на доступ к Службам приложений Azure
Примечание.
Начиная с 1 июня 2024 г. только что созданные Служба приложений приложения могут создать уникальное имя узла по умолчанию, использующее соглашение <app-name>-<random-hash>.<region>.azurewebsites.net
об именовании. Существующие имена приложений остаются неизменными. Например:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Дополнительные сведения см. в разделе "Уникальное имя узла по умолчанию" для ресурса Служба приложений.
Настроив ограничения доступа, можно определить упорядоченный по приоритету список разрешений и запретов, который управляет сетевым доступом к приложению. Этот список может содержать IP-адреса или подсети виртуальной сети Azure. Если он содержит одну или несколько записей, то в конце списка действует неявный запрет на все адреса. Дополнительные сведения см. в разделе приложение Azure ограничения доступа к службе.
Возможность ограничения доступа работает со всеми рабочими нагрузками, размещенными в Службе приложений Azure. Рабочие нагрузки могут включать веб-приложения, приложения API, приложения Linux, пользовательские контейнеры Linux и функции.
Когда кто-то отправляет запрос в приложение, адрес FROM оценивается по правилам в списке ограничений доступа. Если адрес FROM находится в подсети, настроенной с конечными точками Microsoft.Web
службы, то исходная подсеть сравнивается с правилами виртуальной сети в списке ограничений доступа. Если доступ с этого адреса запрещен правилами в списке, служба возвращает код состояния HTTP 403.
Возможность ограничения доступа реализована во внешних ролях Службы приложений, являющихся вышестоящими для рабочих узлов, на которых выполняется код. Таким образом, ограничения доступа — это фактически списки управления доступом к сети.
Возможность ограничить доступ к веб-приложению из виртуальной сети Azure использует конечные точки службы. С помощью конечных точек служб можно ограничить доступ к службе с несколькими клиентами из выбранных подсетей. Это не позволяет ограничить трафик для приложений, размещенных в Среде службы приложений. Если вы находитесь в Среде службы приложений, то управлять доступом к приложению можно, применяя правила IP-адресов.
Примечание.
Конечные точки служб должны быть включены как на стороне сети, так и для службы Azure, с которой вы работаете. Список служб Azure, поддерживающих конечные точки служб, приведен в статье Конечные точки служб виртуальной сети.
Управление правилами ограничения доступа на портале
Чтобы добавить правило ограничения доступа в приложение, выполните следующие действия.
Войдите на портал Azure.
Выберите приложение, к которому нужно добавить ограничения доступа.
В меню слева выберите "Параметры>сети".
На странице "Сеть" в разделе "Конфигурация входящего трафика" выберите параметр доступа к общедоступной сети.
На странице Ограничения доступа просмотрите список правил ограничения доступа, определенных для приложения.
В списке приведены все текущие ограничения, примененные к приложению. Если в приложении имеется ограничение виртуальной сети, в таблице показано, включены ли конечные точки служб для Microsoft.Web. Если ограничения не определены в приложении, а для несоответного правила не задано значение "Запретить", приложение доступно в любом месте.
Разрешения
Следующие разрешения управления доступом на основе ролей в подсети или на более высоком уровне необходимы для настройки ограничений доступа через портал Azure, CLI или при настройке свойств конфигурации сайта напрямую:
Действие | Description |
---|---|
Microsoft.Web/sites/config/read | Возвращает параметры конфигурации веб-приложения. |
Microsoft.Web/sites/config/write | Обновляет параметры конфигурации веб-приложения. |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action * | Присоединение к подсети ресурса, например учетной записи хранения или базы данных SQL |
Microsoft.Web/sites/write** | Обновление параметров веб-приложения |
* Требуется только при добавлении правила виртуальной сети (конечной точки службы).
** требуется только при обновлении ограничений доступа через портал Azure.
Если вы добавляете правило на основе конечной точки службы и виртуальная сеть находится в подписке, отличной от приложения, убедитесь, что подписка с виртуальной сетью зарегистрирована для Microsoft.Web
поставщика ресурсов. Вы можете явно зарегистрировать поставщика, но также автоматически зарегистрировать при создании первого веб-приложения в подписке. Дополнительные сведения см. в разделе Регистрация поставщика ресурсов.
Добавление правила ограничения доступа
Чтобы добавить правило ограничения доступа в приложение, на странице "Ограничения доступа" нажмите кнопку "Добавить". Правило действует только после сохранения.
Правила применяются в порядке приоритета из наименьшего числа в столбце Priority . Если вы не настраиваете несоответветное правило, неявное отклонение действует после добавления даже одного правила.
При создании правила выполните следующие действия в области Добавить ограничение доступа.
В разделе Действие выберите значение Разрешить или Запретить.
При необходимости введите имя и описание правила.
В поле Приоритет введите значение приоритета.
В раскрывающемся списке "Тип" выберите тип правила. Правила разных типов описаны в следующих подразделах.
Нажмите кнопку "Добавить правило" после ввода в определенное правило входных данных, чтобы добавить это правило в список.
Наконец, нажмите кнопку "Сохранить обратно" на странице ограничений доступа.
Примечание.
Существует ограничение в 512 правил ограничения доступа. Если вам требуется более 512 правил ограничения доступа, рекомендуется рассмотреть автономный продукт безопасности. Рассмотрим Azure Front Door, шлюз приложение Azure или альтернативный WAF.
Настройка правила на основе IP-адреса
Выполните процедуру, описанную в предыдущем разделе, но со следующим дополнением.
- Для шага 4 в раскрывающемся списке "Тип " выберите IPv4 или IPv6.
Укажите Блок IP-адреса в нотации бесклассовой междоменной маршрутизации (CIDR) для адресов IPv4 и IPv6. Чтобы указать адрес, можно использовать формат 1.2.3.4/32, где первые четыре октета представляют IP-адрес, а /32 — маску. Нотацией CIDR IPv4 для всех адресов является 0.0.0.0/0. Подробная информация о нотации CIDR приведена в разделе Бесклассовая междоменная маршрутизация.
Примечание.
Правила ограничения доступа на основе IP-адресов применяются для обработки диапазонов адресов виртуальной сети только в том случае, если приложение находится в среде Службы приложений Azure. Если приложение находится в многоклиентской службе, необходимо использовать конечные точки службы, чтобы ограничить трафик избранными подсетями виртуальной сети.
Настройка правила на основе конечной точки службы
Для шага 4 в раскрывающемся списке "Тип" выберите виртуальная сеть.
В раскрывающихся списках Подписка, Виртуальная сеть и подсеть выберите значения, соответствующие тому, к чему вы хотите ограничить доступ.
С помощью конечных точек служб можно ограничить доступ к выбранным подсетям виртуальной сети Azure. Если конечные точки службы еще не включены Microsoft.Web
для выбранной подсети, они автоматически включены, если вы не выберете "Игнорировать отсутствующие конечные точки веб-службы Microsoft.Web". Ситуация, в которой в приложении может потребоваться включить конечные точки служб, но не подсеть, зависит главным образом от наличия разрешений на их включение в подсети.
Если вам нужен другой пользователь, чтобы включить конечные точки службы в подсети, выберите "Игнорировать отсутствующие конечные точки веб-службы Microsoft.Web". Приложение настроено для конечных точек службы в ожидании включения их позже в подсети.
Конечные точки служб нельзя использовать для ограничения доступа к приложениям, работающим в среде службы приложений. Если ваше приложение находится в среде службы приложений, то для управления доступом к нему можно применять правила IP-адресов.
При использовании конечных точек службы можно настроить в приложении шлюзы приложений или других устройств с брандмауэром веб-приложения. Кроме того, в многоуровневых приложениях также можно настроить защищенные серверы. Дополнительные сведения см. в разделе Служба приложений сетевых функций и интеграции Шлюз приложений.
Примечание.
Конечные точки службы не поддерживаются для веб-приложений, использующих привязки TLS/SSL на основе IP-адресов с виртуальным IP-адресом.
Задание правил на основе тегов служб
Для шага 4 в раскрывающемся списке "Тип " выберите тег службы.
Все общедоступные теги служб поддерживаются в правилах ограничения доступа. Каждый тег службы представляет собой список диапазонов IP-адресов из служб Azure. Список этих служб и ссылки на определенные диапазоны приведены в документации по тегам служб. Для настройки более сложных правил, например региональных правил, используйте шаблоны Azure Resource Manager или скрипты.
Примечание.
При создании правил на основе тегов службы с помощью портал Azure или Azure CLI требуется доступ на чтение на уровне подписки, чтобы получить полный список тегов службы для выбора или проверки. Кроме того, Microsoft.Network
поставщик ресурсов должен быть зарегистрирован в подписке.
Изменение правила
Чтобы начать редактирование существующего правила ограничения доступа, на странице Ограничения доступа выберите правило, которое нужно изменить.
На панели Изменение ограничений доступа внесите необходимые изменения, а затем выберите Обновить правило.
Выберите Сохранить, чтобы сохранить изменения.
Примечание.
При изменении правила нельзя переключаться между типами правил.
Удалить правило
Чтобы удалить правило, на странице Ограничения доступа отметьте правила, которые вы хотите удалить, и щелкните Удалить.
Выберите Сохранить, чтобы сохранить изменения.
Расширенные варианты ограничения доступа
В следующих разделах описаны некоторые расширенные варианты использования ограничения доступа.
Фильтр по заголовку HTTP
В рамках любого правила можно добавить фильтры заголовков HTTP. Поддерживаются следующие имена заголовков HTTP:
- X-Forwarded-For
- X-Forwarded-Host
- X-Azure-FDID
- X-FD-HealthProbe
Для каждого имени заголовка можно добавить до восьми значений, разделенных запятыми. Фильтры по заголовкам HTTP обрабатываются после самого правила, при этом для применения правила оба условия должны быть истинными.
Правила с несколькими источниками
В одном правиле с несколькими источниками можно объединить до восьми диапазонов IP-адресов или восьми тегов служб. Используйте правила с несколькими источниками, если у вас более 512 ДИАПАЗОНов IP-адресов или вы хотите создать логические правила. Логические правила могут быть в сочетании нескольких диапазонов IP-адресов с одним фильтром заголовков HTTP.
Правила с несколькими источниками определяются так же, как вы определяете правила с одним исходным кодом, но с каждым диапазоном, разделенным запятой.
Пример PowerShell:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
-Priority 100 -Action Allow
Блокировка одного IP-адреса
В сценарии, в котором требуется явно заблокировать один IP-адрес или блок IP-адресов, но разрешить доступ ко всему остальному, добавьте правило запрета для конкретного IP-адреса. Затем настройте действие несоответзуемого правила в значение Allow.
Ограничение доступа к сайту SCM
Помимо возможности управления доступом к приложению, вы можете ограничить доступ к сайту SCM (Дополнительное средство), используемому приложением. Сайт SCM — это одновременно конечная точка веб-развертывания и консоль Kudu. Ограничения доступа к сайту SCM можно установить отдельно от приложения или использовать одинаковый набор ограничений, как для приложения, так и для сайта SCM. При выборе "Использовать основные правила сайта" список правил скрыт. Сайт SCM использует правила с основного сайта. Если снять флажок, параметры сайта SCM будут отображаться снова.
Ограничение доступа к определенному экземпляру Azure Front Door
Трафик из Azure Front Door в приложение поступает из известного набора диапазонов IP-адресов, определенных в теге AzureFrontDoor.Backend
службы. С помощью правила ограничения для тега службы можно ограничить трафик, только тем, который исходит от Azure Front Door. Чтобы убедиться, что трафик поступает только из конкретного экземпляра, необходимо дополнительно отфильтровать входящие запросы на основе уникального заголовка HTTP, который отправляет Azure Front Door.
Пример PowerShell:
$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
-HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}
Программное управление ограничением доступа
Вы можете программно управлять ограничением доступа. В следующих примерах показано, как добавить правила для доступа к ограничениям и как изменить действие правила unmatched как для основного сайта, так и для сайта расширенного средства.
Добавление правил ограничений доступа для основного сайта
Правила ограничений доступа для основного сайта можно добавить программным способом, выбрав один из следующих вариантов:
Следующую команду можно выполнить в Cloud Shell. Дополнительные сведения о команде см. в статье az webapp config access-restriction.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
--http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Добавление правил ограничений доступа для расширенного сайта инструментов
Правила ограничений доступа для сайта расширенного инструмента можно добавить программным способом, выбрав один из следующих вариантов:
Следующую команду можно выполнить в Cloud Shell. Дополнительные сведения о команде см. в статье az webapp config access-restriction.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true
Изменение несоответветного действия правила для основного сайта
Действие правила unmatchched для main site можно изменить программным способом, выбрав один из следующих вариантов:
Следующую команду можно выполнить в Cloud Shell. Дополнительные сведения о команде см. в статье az resource. Допустимые значения: ipSecurityRestrictionsDefaultAction
Allow
или Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
Изменение действия несоответветного правила для расширенного сайта инструментов
Действие правила unmatchched для сайта расширенного средства можно изменить программным способом, выбрав один из следующих вариантов:
Следующую команду можно выполнить в Cloud Shell. Дополнительные сведения о команде см. в статье az resource. Допустимые значения: scmIpSecurityRestrictionsDefaultAction
Allow
или Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Настройка ограничений доступа для Функций Azure
Ограничения доступа также можно устанавливать для приложений функций, имеющих такие же функциональные возможности, что и планы службы приложений. При включении ограничений доступа вы также отключаете редактор кода портала Azure для любых недопустимых IP-адресов.