Azure Policy 修正任务结构

Azure Policy 修正任务功能用于确保资源满足从定义和分配制定的合规规定。 不符合修改deployIfNotExist 定义分配的资源,可以使用修正任务变为合规。 修正任务使用分配中指定的标识部署 deployIFNotExist 模板,或将操作修改为所选的不合规资源。 请参阅策略分配结构。 了解如何定义标识和修正不合规资源教程以配置标识。

注意

修正任务修正不合规的资源。 自动修正适用于 deployIfNotExist 或修改定义分配的新创建或更新的资源。

使用 JavaScript 对象表示法 (JSON) 创建策略修正任务。 策略修正任务包含以下各项的元素:

例如,以下 JSON 显示了名为 requiredTags 的策略定义的策略修正任务,该策略定义是名为 resourceShouldBeCompliantInit 且具有所有默认设置的计划分配的一部分。

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

有关如何触发修正任务的步骤,请参阅如何修正不合规的资源指南

注意

启动修正任务后,就无法更改这些设置。

显示名称和说明

请使用“displayName”和“description”来标识策略修正任务,并提供上下文供其使用。 displayName 的最大长度为 128 个字符,description 的最大长度为 512 个字符。

策略分配 ID

此字段必须是策略分配或计划分配的完整路径名称。 policyAssignmentId 是字符串,而不是数组。 此属性定义父级资源层次结构或单个资源要修正的分配。

策略定义 ID

如果 policyAssignmentId 用于计划分配,则 policyDefinitionReferenceIds 属性必须用于指定主题资源可以修正计划中的哪些策略定义。 由于修正只能在一个定义的范围内进行修正,因此,此属性是一个字符串,而不是数组。 该值必须与 policyDefinitions.policyDefinitionReferenceId 字段中的计划定义中的值匹配,而不是与策略定义 Id 的全局标识符匹配。

资源计数和并行部署

使用资源计数确定给定修正任务中要修正的不合规资源数。 默认值为 500,最大数字为 50,000。 并行部署确定要同时修正的资源数。 允许的范围在 1 到 30 之间,默认值为 10。

注意

并行部署是单个修正任务中的部署数量(不超过 30 个)。 对于计划内的单个策略定义或策略引用,最多可并行运行 100 个修正任务。

失败阈值

用于指定如果失败百分比超过给定的阈值,修正任务是否应该失败的可选属性。 失败阈值以从 0 到 100 的百分比表示。 默认情况下,失败阈值为 100%,这意味着即使资源无法修正,修正任务也会继续修正其他资源。

修正筛选器

一个可选属性,可以优化哪些资源适用于修正任务。 允许的筛选器是资源位置。 除非指定,否则可以修正来自任何区域的资源。

资源发现模式

此属性决定如何发现符合修正条件的资源。 资源必须不合规才符合修正条件。 默认情况下,此属性设置为 ExistingNonCompliant。 也可以将其设置为 ReEvaluateCompliance,这将会触发该根本进行新的合规性扫描,并修正发现的任何不合规资源。

预配状态和部署摘要

创建修正任务后,将填充预配状态部署摘要属性。 预配状态指示修正任务的状态。 允许值为 RunningCanceledCancellingFailedCompleteSucceeded部署摘要是一个数组属性,用于指示部署数以及成功和失败的部署数。

成功完成的修正任务示例:

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

后续步骤