Erro RequestDisallowedByPolicy com a política de recurso do Azure

Este artigo descreve a causa do erro RequestDisallowedByPolicy e fornece uma solução para o erro. O erro pode ocorrer quando você implanta recursos com um modelo do ARM (modelo do Azure Resource Manager) ou arquivo Bicep.

Sintoma

Durante uma implantação, você pode receber um erro RequestDisallowedByPolicy que o impede de criar um recurso. A CLI do Azure, o Azure PowerShell e o log de atividades do portal do Azure mostram informações semelhantes sobre o erro. Os principais elementos são o código de erro, a atribuição de política e a definição de política.

"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"}

O nome de um policyAssignment ou policyDefinition é o último segmento da cadeia de caracteres id. O espaço reservado {guid} representa uma ID de assinatura do Azure.

Causa

Neste exemplo, o erro ocorreu quando um administrador tentou criar uma interface de rede com um endereço IP público. Uma atribuição de política permite a imposição de uma definição de política interna que impede IPs públicos em interfaces de rede.

Você pode usar o nome de uma atribuição de política ou uma definição de política para obter mais detalhes sobre uma política que causou o erro. Os comandos de exemplo usam espaços reservados para entrada. Por exemplo, substitua <policy definition name> incluindo os colchetes angulares, pelo nome de definição da mensagem de erro.

Para obter mais informações sobre uma definição de política, use az policy definition show.

defname=<policy definition name>
az policy definition show --name $defname

Para obter mais informações sobre uma atribuição de política, use az policy assignment show.

rg=<resource group name>
assignmentname=<policy assignment name>
az policy assignment show --name $assignmentname --resource-group $rg

Solução

Para segurança ou conformidade, os administradores de sua assinatura podem atribuir políticas que limitam como os recursos são implantados. Por exemplo, políticas que impedem a criação de endereços IP públicos, grupos de segurança de rede, rotas definidas pelo usuário ou tabelas de rota.

Para resolver erros RequestDisallowedByPolicy, examine as políticas de recursos e determine como implantar recursos que estão em conformidade com essas políticas. A mensagem de erro exibe os nomes da definição de política e da atribuição de política.

Para obter mais informações, consulte os seguintes artigos: