Compartir a través de


Resolver errores para la solicitud no permitida por la directiva

Al implementar una plantilla de Azure Resource Manager (plantilla de ARM) o un archivo de Bicep, obtendrá el RequestDisallowedByPolicy error cuando uno de los recursos que se van a implementar no cumple con una instancia de Azure Policy existente.

Síntoma

Durante una implementación, es posible que reciba un error RequestDisallowedByPolicy que le impida crear un recurso. La CLI de Azure, Azure PowerShell y el registro de actividad de Azure Portal muestran información similar sobre el error. Los elementos clave son el código de error, la asignación de directiva y la definición de directiva.

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

En la cadena id, el marcador de posición {guid} representa un id. de suscripción de Azure. El nombre de un objeto policyAssignment o policyDefinition es el último segmento de la cadena id.

Causa

Su organización asigna directivas para aplicar los estándares de la organización y evaluar el cumplimiento a escala. Si intenta implementar un recurso que infringe una directiva, la implementación se bloquea.

Por ejemplo, la suscripción puede tener una directiva que impida las direcciones IP públicas en las interfaces de red. Si intenta crear una interfaz de red con una dirección IP pública, la directiva le impide crear la interfaz de red.

Solución

Para resolver el RequestDisallowedByPolicy error al implementar una plantilla de ARM o un archivo de Bicep, debe encontrar qué directiva está bloqueando la implementación. Dentro de esa política, debes revisar las reglas para que puedas actualizar la implementación para cumplir con la política.

El mensaje de error incluye los nombres de la definición de directiva y la asignación de directivas que provocaron el error. Necesita estos nombres para obtener más información sobre la política.

Para obtener más información sobre una definición de directiva, use az policy definition show.

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

Para obtener más información sobre una asignación de directiva, use az policy assignment show.

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

Dentro de la definición de directiva, verá una descripción de la directiva y las reglas que se aplican. Revise las reglas y actualice la plantilla de ARM o el archivo de Bicep para cumplir las reglas. Por ejemplo, si la regla indica que el acceso a la red pública está deshabilitado, debe actualizar las propiedades de recursos correspondientes.

Para obtener más información, consulte los artículos siguientes: