Udostępnij za pośrednictwem


Usuwanie błędów dotyczących żądania niedozwolonego przez zasady

Podczas wdrażania szablonu usługi Azure Resource Manager (szablonu usługi ARM) lub pliku Bicep występuje RequestDisallowedByPolicy błąd, gdy jeden z zasobów do wdrożenia nie jest zgodny z istniejącą usługą Azure Policy.

Objaw

Podczas wdrażania może wystąpić błąd RequestDisallowedByPolicy uniemożliwiający utworzenie zasobu. W interfejsie wiersza polecenia platformy Azure, programie Azure PowerShell i dzienniku aktywności w witrynie Azure Portal są wyświetlane podobne informacje o błędzie. Kluczowymi elementami są kod błędu, przypisanie zasad i definicja zasad.

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

W ciągu id symbol zastępczy {guid} reprezentuje identyfikator subskrypcji platformy Azure. Nazwa elementu policyAssignment lub policyDefinition jest ostatnim segmentem ciągu id.

Przyczyna

Twoja organizacja przypisuje zasady w celu wymuszania standardów organizacyjnych i oceniania zgodności na dużą skalę. Jeśli próbujesz wdrożyć zasób naruszający zasady, wdrożenie zostanie zablokowane.

Na przykład twoja subskrypcja może mieć zasady uniemożliwiające publiczne adresy IP w interfejsach sieciowych. Jeśli spróbujesz utworzyć interfejs sieciowy z publicznym adresem IP, zasady blokują tworzenie interfejsu sieciowego.

Rozwiązanie

Aby rozwiązać problem podczas RequestDisallowedByPolicy wdrażania szablonu usługi ARM lub pliku Bicep, należy znaleźć, które zasady blokują wdrożenie. W ramach tych zasad należy przejrzeć reguły, aby można było zaktualizować wdrożenie w celu zachowania zgodności z zasadami.

Komunikat o błędzie zawiera nazwy definicji zasad i przypisania zasad, które spowodowały błąd. Te nazwy są potrzebne, aby uzyskać więcej informacji na temat zasad.

Aby uzyskać więcej informacji na temat definicji zasad, użyj polecenia az policy definition show.

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

Aby uzyskać więcej informacji na temat przypisania zasad, użyj polecenia az policy assignment show.

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

W definicji zasad zostanie wyświetlony opis zasad i zastosowane reguły. Przejrzyj reguły i zaktualizuj szablon usługi ARM lub plik Bicep, aby zachować zgodność z regułami. Jeśli na przykład reguła stwierdza, że dostęp do sieci publicznej jest wyłączony, należy zaktualizować odpowiednie właściwości zasobu.

Aby uzyskać więcej informacji, zobacz następujące artykuły: