Устранение ошибок "Запрос запрещен политикой"
При развертывании шаблона Azure Resource Manager (шаблона ARM) или Bicep возникает RequestDisallowedByPolicy
ошибка, если один из ресурсов для развертывания не соответствует существующей Политика Azure.
Симптом
Во время развертывания может возникнуть ошибка RequestDisallowedByPolicy
, которая блокирует создание ресурса. Azure CLI, Azure PowerShell и журнал действий портала Azure отображают похожие сведения об ошибке. Основными элементами являются код ошибки, назначение политики и определение политики.
"statusMessage": "{"error":{"code":"RequestDisallowedByPolicy", "target":"examplenic1207",
"message":"Resource `examplenic1207` was disallowed by policy. Policy identifiers:
"policyAssignment":{"name":"Network interfaces should not have public IPs",
"id":"/subscriptions/{guid}/providers/Microsoft.Authorization/policyAssignments/1111aa2222bb3333cc4444dd"}
"policyDefinition":{"name":"Network interfaces should not have public IPs",
"id":"/subscriptions/{guid}/providers/Microsoft.Authorization/policyDefinitions/83a86a26-fd1f-447c-b59d-e51f44264114"}
В строке id
заполнитель {guid}
представляет ИД подписки Azure. Имя policyAssignment
или policyDefinition
— это последний сегмент строки id
.
Причина
Ваша организация назначает политики для применения стандартов организации и оценки соответствия в масштабе. Если вы пытаетесь развернуть ресурс, который нарушает политику, развертывание блокируется.
Например, у вашей подписки может быть политика, которая предотвращает общедоступные IP-адреса в сетевых интерфейсах. Если вы пытаетесь создать сетевой интерфейс с общедоступным IP-адресом, политика блокирует создание сетевого интерфейса.
Решение
Чтобы устранить RequestDisallowedByPolicy
ошибку при развертывании шаблона ARM или Bicep-файла, необходимо найти, какая политика блокирует развертывание. В этой политике необходимо проверить правила, чтобы можно было обновить развертывание, чтобы соответствовать политике.
Сообщение об ошибке содержит имена определения политики и назначения политик, вызвавших ошибку. Эти имена необходимы для получения дополнительных сведений о политике.
Чтобы получить дополнительные сведения об определении политики, воспользуйтесь командой az policy definition show.
az policy definition show --name {policy-name}
Чтобы получить дополнительные сведения о назначении политики, воспользуйтесь командой az policy assignment show.
az policy assignment show --name {assignment-name} --resource-group {resource-group-name}
В определении политики вы увидите описание политики и применяемых правил. Просмотрите правила и обновите шаблон ARM или файл Bicep, чтобы соответствовать правилам. Например, если правило указывает, что доступ к общедоступной сети отключен, необходимо обновить соответствующие свойства ресурса.
Дополнительные сведения см. в следующих статьях: