英語で読む

次の方法で共有


Azure Policy 修復タスクの構造

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

修復タスクでは、準拠していない既存のリソースを修復します。 新しく作成または更新されるリソースが、deployIfNotExists または modify の定義の割り当てに該当する場合は、自動的に修復されます。

注意

最後の変更から 60 日経った修復タスク リソースは、Azure Policy サービスによって削除されます。

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

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

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

修復タスクをトリガーする方法の手順は、準拠していないリソースの修復方法ガイドをご覧ください。 これらの設定は、修正タスクが開始した後では変更できません。

ポリシーの割り当て ID

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

ポリシー定義 ID

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

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

resourceCount を使って、特定の修復タスクで修復する非準拠リソースの数を指定します。 既定値は 500、最大数は 50,000 です。 parallelDeployments は、同時に修復するそれらのリソースの数を指定します。 使用できる範囲は 1 から 30 で、既定値は 10 です。

並列デプロイは、単一の修復タスクにおけるデプロイの数で、最大値は 30 です。 イニシアティブ内の 1 つのポリシー定義またはポリシー参照に対して、最大 100 個の修復タスクを並列で実行できます。

失敗のしきい値

オプションのプロパティで、エラーの割合が指定のしきい値を超えた場合に、修復タスクを失敗させるかどうかを指定します。 failureThreshold は、0 から 100 までのパーセンテージの値として表されます。 既定では、失敗のしきい値は 100% です。つまり、リソースの修復が失敗した場合でも、修復タスクは引き続き他のリソースを修復します。

修復フィルター

オプションのプロパティで、修復タスクに適用するリソースを絞り込みます。 使用できるフィルターはリソースの場所です。 指定しない限り、どのリージョンのリソースでも修復できます。

リソース検出モード

このプロパティは、修復対象のリソースを検出する方法を指定します。 対象となるリソースは、非準拠である必要があります。 既定では、このプロパティは ExistingNonCompliantに設定されています。 これは ReEvaluateCompliance に設定することもでき、その割り当てについて新しいコンプライアンス スキャンがトリガーされて、準拠していないことが判明したリソースが修復されます。

プロビジョニングの状態とデプロイの概要

修復タスクが作成されると、ProvisioningStateDeploymentSummary プロパティが設定されます。 ProvisioningState は、修復タスクの状態を示します。 指定できる値は、RunningCanceledCancellingFailedCompleteSucceeded です。 DeploymentSummary は、デプロイの数と併せて成功および失敗したデプロイの数を示す配列プロパティです。

正常に完了した修復タスクのサンプル:

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

次の手順