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: