Azure Policy 修復タスクの構造

Azure Policy 修復タスク機能は、定義と割り当てにより確立されたコンプライアンスに、リソースを準拠させるために使用されます。 変更deployIfNotExist 定義の割り当てに非準拠のリソースは、修復タスクを使用してコンプライアンスに準拠させることができます。 修復タスクは、割り当てで指定された ID を使用して、選んだ非準拠リソースに deployIFNotExist テンプレートや変更操作をデプロイします。 ポリシー割り当ての構造を参照して ID の定義方法を理解し、準拠していないリソースを修復するチュートリアルを参照してID を構成します。

注意

修復タスクは、準拠していない既存のリソースを修復します。 deployIfNotExist や変更定義の割り当てに適用できる、新しく作成または更新されたリソースは、自動的に修復されます。

JavaScript Object Notation (JSON) を使用してポリシー修復タスクを作成します。 ポリシー修復タスクには、次の要素が含まれます。

たとえば、次の JSON は、すべての設定が既定の resourceShouldBeCompliantInit という名前のイニシアティブ割り当ての一部である、requiredTags という名前のポリシー定義のポリシー修復タスクを示しています。

{
    "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 の最大長は 128 文字で、description の最大長は 512 文字です。

ポリシーの割り当て ID

このフィールドは、ポリシーの割り当てまたはイニシアティブの割り当ての完全なパス名にする必要があります。 policyAssignmentId は文字列であり、配列ではありません。 このプロパティは、親リソース階層や個々のリソースが、どの割り当てで修復されるかを定義します。

ポリシー定義 ID

policyAssignmentId がイニシアティブ割り当て用の場合、policyDefinitionReferenceId プロパティを使用して、イニシアティブ内のどのポリシー定義でサブジェクト リソースが修復されるかを指定する必要があります。 修復は 1 つの定義のスコープでのみ修復できるため、このプロパティは "文字列" であり、配列ではありません。 値は、ポリシー定義 Id のグローバル識別子ではなく、policyDefinitions.policyDefinitionReferenceId フィールドのイニシアティブ定義の値と一致する必要があります。

リソース数と並列デプロイ

リソース数は、特定の 1 つの修復タスクで修復する非準拠のリソース数を指定します。 既定値は 500、最大数は 50,000 です。 並列デプロイは、同時に修復するリソースの数を指定します。 使用できる範囲は 1 から 30 で、既定値は 10 です。

注意

並列デプロイは、単一の修復タスクにおけるデプロイの数で、最大値は 30 です。 イニシアティブ内の 1 つのポリシー定義またはポリシー参照に対して、最大 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
    },
}

次の手順