Настройка ограничений на доступ к Службам приложений Azure

Настроив ограничения доступа, можно определить упорядоченный по приоритету список разрешений и запретов, который управляет сетевым доступом к приложению. Этот список может содержать IP-адреса или подсети виртуальной сети Azure. Если он содержит одну или несколько записей, то в конце списка действует неявный запрет на все адреса. Дополнительные сведения об ограничениях доступа см. в обзоре ограничений доступа.

Возможность ограничения доступа работает со всеми рабочими нагрузками, размещенными в Службе приложений Azure. К числу таких рабочих нагрузок могут относиться: веб-приложения, приложения API, приложения Linux, пользовательские контейнеры Linux и функции.

При отправке запроса к приложению адрес FROM сопоставляется с правилами, заданными в вашем списке ограничения доступа. Если адрес FROM находится в подсети, настроенной с конечными точками Microsoft.Webслужбы, то исходная подсеть сравнивается с правилами виртуальной сети в списке ограничений доступа. Если доступ с этого адреса запрещен правилами в списке, служба возвращает код состояния HTTP 403.

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

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

Примечание.

Конечные точки служб должны быть включены как на стороне сети, так и для службы Azure, с которой вы работаете. Список служб Azure, поддерживающих конечные точки служб, приведен в статье Конечные точки служб виртуальной сети.

Diagram of the flow of access restrictions.

Управление правилами ограничения доступа на портале

Чтобы добавить правило ограничения доступа в приложение, сделайте следующее:

  1. Войдите на портал Azure.

  2. Выберите приложение, к которому нужно добавить ограничения доступа.

  3. В меню слева выберите "Сеть".

  4. На странице "Сеть" в разделе "Конфигурация входящего трафика" выберите параметр доступа к общедоступной сети.

    Screenshot of the App Service networking options page in the Azure portal.

  5. На странице Ограничения доступа просмотрите список правил ограничения доступа, определенных для приложения.

    Screenshot of the Access Restrictions page in the Azure portal, showing the list of access restriction rules defined for the selected app.

    В списке приведены все текущие ограничения, примененные к приложению. Если в приложении имеется ограничение виртуальной сети, в таблице показано, включены ли конечные точки служб для 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 поставщика ресурсов. Вы можете явно зарегистрировать поставщика , следуя этой документации, но также автоматически зарегистрированный при создании первого веб-приложения в подписке.

Добавление правила ограничения доступа

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

Правила применяются в порядке возрастания приоритета, начиная с наименьшего числа, указанного в столбце Приоритет. Если вы не настраиваете несоответветное правило, неявное отклонение действует после добавления даже одного правила.

При создании правила выполните следующие действия в области Добавить ограничение доступа.

  1. В разделе Действие выберите значение Разрешить или Запретить.

    Screenshot of the 'Add Access Restriction' pane.

  2. При необходимости введите имя и описание правила.

  3. В поле Приоритет введите значение приоритета.

  4. В раскрывающемся списке Тип выберите тип правила. Правила разных типов описаны в следующих подразделах.

  5. Нажмите кнопку "Добавить правило" после ввода в определенное правило входных данных, чтобы добавить это правило в список.

Наконец, нажмите кнопку "Сохранить обратно" на странице ограничений доступа.

Примечание.

  • Существует ограничение в 512 правил ограничения доступа. Если вам требуется больше 512 правил ограничения доступа, рекомендуем установить автономный продукт безопасности, например, Azure Front Door, Шлюз приложений Azure брандмауэр веб-приложения.

Настройка правила на основе 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 в раскрывающемся списке Тип выберите Виртуальная сеть.

    Screenshot of the 'Add Restriction' pane with the Virtual Network type selected.

В раскрывающихся списках Подписка, Виртуальная сеть и подсеть выберите значения, соответствующие тому, к чему вы хотите ограничить доступ.

С помощью конечных точек служб можно ограничить доступ к выбранным подсетям виртуальной сети Azure. Если конечные точки службы еще не включены для выбранной подсети, они автоматически включеныMicrosoft.Web, если не выбран флажок "Игнорировать отсутствующие Microsoft.Web конечные точки службы" проверка. Ситуация, в которой в приложении может потребоваться включить конечные точки служб, но не подсеть, зависит главным образом от наличия разрешений на их включение в подсети.

Если требуется, чтобы другие пользователи включили конечные точки служб в подсети, установите флажок Игнорировать отсутствующие конечные точки служб Microsoft.Web. Приложение настроено для конечных точек службы в ожидании включения их позже в подсети.

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

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

Примечание.

  • Конечные точки службы не поддерживаются для веб-приложений, использующих привязки TLS/SSL на основе IP-адресов с виртуальным IP-адресом (VIP).

Задание правил на основе тегов служб

  • На шаге 4 в раскрывающемся списке Тип выберите Тег службы.

    Screenshot of the 'Add Restriction' pane with the Service Tag type selected.

Все доступные теги служб можно использовать в правилах ограничения доступа. Каждый тег службы представляет собой список диапазонов IP-адресов из служб Azure. Список этих служб и ссылки на определенные диапазоны приведены в документации по тегам служб. Для настройки более сложных правил, например региональных правил, используйте шаблоны Azure Resource Manager или скрипты.

Изменение правила

  1. Чтобы начать редактирование существующего правила ограничения доступа, на странице Ограничения доступа выберите правило, которое нужно изменить.

  2. На панели Изменение ограничений доступа внесите необходимые изменения, а затем выберите Обновить правило.

  3. Выберите Сохранить, чтобы сохранить изменения.

    Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.

    Примечание.

    При изменении правила нельзя переключаться между типами правил.

Удалить правило

  1. Чтобы удалить правило, на странице Ограничения доступа отметьте правила, которые вы хотите удалить, и щелкните Удалить.

  2. Выберите Сохранить, чтобы сохранить изменения.

Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.

Расширенные варианты ограничения доступа

В следующих разделах описаны некоторые расширенные варианты использования ограничения доступа.

Фильтр по заголовку 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-адреса и задайте для действия несоответствующего правила значение Разрешить.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing a single blocked IP address.

Ограничение доступа к сайту SCM

Помимо возможности управления доступом к приложению, вы можете ограничить доступ к сайту SCM (Дополнительное средство), используемому приложением. Сайт SCM — это одновременно конечная точка веб-развертывания и консоль Kudu. Ограничения доступа к сайту SCM можно установить отдельно от приложения или использовать одинаковый набор ограничений, как для приложения, так и для сайта SCM. При выборе поля "Использование правил основного сайта" проверка список правил скрыт и использует правила с основного сайта. Если очистить поле проверка, параметры сайта SCM отображаются снова.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.

Ограничение доступа к определенному экземпляру Azure Front Door

Трафик из Azure Front Door в приложение поступает из известного набора диапазонов IP-адресов, определенных в теге AzureFrontDoor.Backend службы. С помощью правила ограничения для тега службы можно ограничить трафик, только тем, который исходит от Azure Front Door. Чтобы убедиться, что трафик поступает только из конкретного экземпляра, необходимо дополнительно отфильтровать входящие запросы на основе уникального заголовка HTTP, который отправляет Azure Front Door.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing how to add Azure Front Door restriction.

Пример 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}

Программное управление ограничением доступа

Вы можете программным способом управлять ограничением доступа, приведенные ниже, в примерах добавления правил для доступа к ограничениям и способах изменения действия несоответственного правила как для основного сайта, так и для сайта расширенного средства.

Добавление правил ограничений доступа для основного сайта

Правила ограничений доступа для основного сайта можно добавить программным способом, выбрав один из следующих вариантов:

Следующую команду можно выполнить в 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 команде см . на этой странице. Допустимые значения: ipSecurityRestrictionsDefaultActionAllow или Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow

Изменение действия несоответветного правила для расширенного сайта инструментов

Действие правила unmatchched для сайта расширенного средства можно изменить программным способом, выбрав один из следующих вариантов:

Следующую команду можно выполнить в Cloud Shell. Дополнительные сведения о az resource команде см . на этой странице. Допустимые значения: scmIpSecurityRestrictionsDefaultActionAllow или Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow

Настройка ограничений доступа для Функций Azure

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

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

Ограничения доступа для Функций Azure
Интеграция шлюза приложений с конечными точками служб
Сценарии ограничения расширенного доступа в службе приложение Azure — запись блога