Lösa fel för begäran som inte tillåts av principen

När du distribuerar en Azure Resource Manager-mall (ARM-mall) eller Bicep-fil får RequestDisallowedByPolicy du felet när en av resurserna som ska distribueras inte överensstämmer med en befintlig Azure Policy.

Symptom

Under en distribution kan du få ett RequestDisallowedByPolicy-fel som hindrar dig från att skapa en resurs. Azure CLI, Azure PowerShell och Azure Portals aktivitetslogg visar liknande information om felet. De viktigaste elementen är felkoden, principtilldelningen och principdefinitionen.

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

I id-strängen representerar platshållaren {guid} ett Azure-prenumerations-ID. Namnet på en policyAssignment eller policyDefinition är det sista segmentet i id-strängen.

Orsak

Din organisation tilldelar principer för att framtvinga organisationsstandarder och för att utvärdera efterlevnad i stor skala. Om du försöker distribuera en resurs som bryter mot en princip blockeras distributionen.

Din prenumeration kan till exempel ha en princip som förhindrar offentliga IP-adresser i nätverksgränssnitt. Om du försöker skapa ett nätverksgränssnitt med en offentlig IP-adress blockerar principen dig från att skapa nätverksgränssnittet.

Lösning

För att lösa RequestDisallowedByPolicy felet när du distribuerar en ARM-mall eller Bicep-fil måste du hitta vilken princip som blockerar distributionen. I den principen måste du granska reglerna så att du kan uppdatera distributionen så att den följer principen.

Felmeddelandet innehåller namnen på den principdefinition och principtilldelning som orsakade felet. Du behöver dessa namn för att få mer information om principen.

Om du vill ha mer information om en principdefinition använder du az policy definition show.

az policy definition show --name {policy-name}

Om du vill ha mer information om en principtilldelning använder du az policy assignment show.

az policy assignment show --name {assignment-name} --resource-group {resource-group-name}

I principdefinitionen visas en beskrivning av principen och de regler som tillämpas. Granska reglerna och uppdatera ARM-mallen eller Bicep-filen för att följa reglerna. Om regeln till exempel anger att åtkomsten till det offentliga nätverket är inaktiverad måste du uppdatera motsvarande resursegenskaper.

Mer information finns i följande artiklar: