Errore RequestDisallowedByPolicy con i criteri delle risorse di Azure

Questo articolo descrive la causa RequestDisallowedByPolicy dell'errore e fornisce una soluzione per l'errore. L'errore può verificarsi quando si distribuiscono risorse con un modello di Azure Resource Manager (modello ARM) o un file Bicipite.

Sintomo

Durante una distribuzione potrebbe essere visualizzato un RequestDisallowedByPolicy errore che impedisce la creazione di una risorsa. Azure CLI, Azure PowerShell e il log attività del portale di Azure mostrano informazioni simili sull'errore. Gli elementi chiave sono il codice di errore, l'assegnazione dei criteri e la definizione dei criteri.

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

Il nome di un policyAssignment o policyDefinition è l'ultimo segmento della id stringa. Il {guid} segnaposto rappresenta un ID sottoscrizione di Azure.

Causa

In questo esempio l'errore si è verificato quando un amministratore ha tentato di creare un'interfaccia di rete con un indirizzo IP pubblico. Un'assegnazione di criteri consente l'applicazione di una definizione di criteri predefinita che impedisce ip pubblici nelle interfacce di rete.

È possibile usare il nome di un'assegnazione di criteri o di una definizione dei criteri per ottenere altri dettagli su un criterio che ha causato l'errore. I comandi di esempio usano segnaposto per l'input. Ad esempio, sostituire <policy definition name> includendo le parentesi angolari, con il nome della definizione del messaggio di errore.

Per altre informazioni sulla definizione di un criterio, usare az policy definition show.

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

Per altre informazioni su un'assegnazione di criteri, usare az policy assignment show.

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

Soluzione

Per motivi di sicurezza o conformità, gli amministratori dell'abbonamento possono assegnare criteri che limitano la modalità di distribuzione delle risorse. Ad esempio, criteri che impediscono la creazione di indirizzi IP pubblici, gruppi di sicurezza di rete, route definite dall'utente o tabelle di route.

Per risolvere gli errori, esaminare i criteri delle risorse e determinare come distribuire le RequestDisallowedByPolicy risorse conformi a tali criteri. Il messaggio di errore visualizza i nomi della definizione dei criteri e dell'assegnazione dei criteri.

Per altre informazioni, vedere gli articoli seguenti: