Compartir a través de


Estructura de tareas de corrección de Azure Policy

La característica de tarea de corrección de Azure Policy se usa para incorporar recursos al cumplimiento establecido a partir de una definición y asignación. Los recursos que no son compatibles con un modificar o asignación de definiciones deployIfNotExists, se pueden incorporar al cumplimiento mediante una tarea de corrección. Una tarea de corrección implementa la deployIfNotExists plantilla de modify o las operaciones en los recursos no compatibles seleccionados mediante la identidad especificada en la asignación. Para obtener más información, consulte estructura de asignación de directivas para comprender cómo se define la identidad y tutorial corregir recursos no compatibles para configurar la identidad.

Las tareas de corrección corrigen los recursos existentes que no son compatibles. Los recursos recién creados o actualizados que se aplican a una asignación de definición de deployIfNotExists o modify se corrigen automáticamente.

Nota:

El servicio Azure Policy elimina los recursos de la tarea de corrección 60 días después de su última modificación.

Puede usar notación de objetos JavaScript (JSON) para crear una tarea de corrección de directivas. La tarea de corrección de directivas contiene elementos para:

Por ejemplo, el siguiente JSON muestra una tarea de corrección de directivas para la definición de directiva denominada requiredTags parte de una asignación de iniciativa denominada resourceShouldBeCompliantInit con toda la configuración predeterminada.

{
  "id": "/subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/remediations/remediateNotCompliant",
  "apiVersion": "2021-10-01",
  "name": "remediateNotCompliant",
  "type": "Microsoft.PolicyInsights/remediations",
  "properties": {
    "policyAssignmentId": "/subscriptions/{subID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
    "policyDefinitionReferenceId": "requiredTags",
    "resourceCount": 42,
    "parallelDeployments": 6,
    "failureThreshold": {
      "percentage": 0.1
    }
  }
}

Pasos sobre cómo desencadenar una tarea de corrección en cómo corregir recursos no compatibles. Esta configuración no se puede cambiar después de que se inicie la tarea de corrección.

Id. de asignación de directiva

Este campo debe ser el nombre de la ruta de acceso completa de una asignación de directiva o una asignación de iniciativa. policyAssignmentId es una cadena y no una matriz. Esta propiedad define de qué asignación se tiene que corregir de la jerarquía de recursos o el recurso individual.

Identificador de la definición de directiva

Si el policyAssignmentId es para una asignación de iniciativa, la propiedad policyDefinitionReferenceId debe usarse para especificar qué definición de directiva en la iniciativa se corregirán los recursos del sujeto. Como la corrección solo puede hacerse en un ámbito de una definición, esta propiedad es una cadena y no una matriz. El valor debe coincidir con el valor de la definición de iniciativa en el campo policyDefinitions.policyDefinitionReferenceId en lugar del identificador global para la definición de directiva Id.

Recuento de recursos e implementaciones paralelas

Use resourceCount para determinar cuántos recursos no compatibles deben corregirse en una tarea de corrección determinada. El valor predeterminado es 500, con el número máximo de 50 000. parallelDeployments determina cuántos de esos recursos corregir al mismo tiempo. El intervalo permitido está comprendido entre 1 y 30 y el valor predeterminado es 10.

Las implementaciones paralelas son el número de implementaciones dentro de una tarea de corrección singular con un máximo de 30. Puede haber un máximo de 100 tareas de corrección que se ejecutan en paralelo para una única definición de directiva o referencia de directiva dentro de una iniciativa.

Umbral de error

La propiedad opcional se usa para especificar si se debe producir un error en la tarea de corrección si el porcentaje de errores supera el umbral especificado. El failureThreshold se representa como un número porcentual comprendido entre 0 y 100. De manera predeterminada, el umbral de error es del 100 %, lo que significa que la tarea de corrección continúa corrigiendo otros recursos incluso si los recursos no se pueden corregir.

Filtros de corrección

Una propiedad opcional refina los recursos que se aplican a la tarea de corrección. El filtro permitido es la ubicación del recurso. A menos que se especifique, se pueden corregir los recursos de cualquier región.

Modo de detección de recursos

Esta propiedad decide cómo detectar recursos que son aptos para la corrección. Para que un recurso sea apto, debe ser no compatible. De manera predeterminada, esta propiedad está establecida en ExistingNonCompliant. También se puede establecer en ReEvaluateCompliance, que desencadena un nuevo examen de cumplimiento para esa asignación y corregir los recursos que se encuentran no compatibles.

Resumen del estado de aprovisionamiento y la implementación

Una vez creada una tarea de corrección, se rellenan las propiedades ProvisioningState y DeploymentSummary. El ProvisioningState indica el estado de la tarea de corrección. Los valores permitidos son Running, Canceled, Cancelling, Failed, Complete o Succeeded. El DeploymentSummary es una propiedad de matriz que indica el número de implementaciones junto con el número de implementaciones correctas y con errores.

Ejemplo de tarea de corrección que se completó correctamente:

{
  "id": "/subscriptions/{subId}/resourceGroups/ExemptRG/providers/Microsoft.PolicyInsights/remediations/remediateNotCompliant",
  "Type": "Microsoft.PolicyInsights/remediations",
  "Name": "remediateNotCompliant",
  "PolicyAssignmentId": "/subscriptions/{mySubscriptionID}/providers/Microsoft.Authorization/policyAssignments/resourceShouldBeCompliantInit",
  "policyDefinitionReferenceId": "requiredTags",
  "resourceCount": 42,
  "parallelDeployments": 6,
  "failureThreshold": {
    "percentage": 0.1
  },
  "ProvisioningState": "Succeeded",
  "DeploymentSummary": {
    "TotalDeployments": 42,
    "SuccessfulDeployments": 42,
    "FailedDeployments": 0
  },
}

Pasos siguientes