Azure Policy 修復タスクの構造
Azure Policy 修復タスク機能は、定義と割り当てにより確立されたコンプライアンスに、リソースを準拠させるために使用されます。 modify や deployIfNotExists の定義の割り当てに準拠していないリソースは、修復タスクを使って準拠させることができます。 修復タスクでは、割り当てで指定されている ID を使って、選んだ非準拠リソースに deployIfNotExists
テンプレートまたは modify
操作をデプロイします。 詳しくは、ID の定義方法についてはポリシーの割り当て構造に関する記事を参照し、ID の構成については準拠していないリソースの修復に関するチュートリアルを参照してください。
修復タスクでは、準拠していない既存のリソースを修復します。 新しく作成または更新されるリソースが、deployIfNotExists
または modify
の定義の割り当てに該当する場合は、自動的に修復されます。
Note
最後の変更から 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
に設定することもでき、その割り当てについて新しいコンプライアンス スキャンがトリガーされて、準拠していないことが判明したリソースが修復されます。
プロビジョニングの状態とデプロイの概要
修復タスクが作成されると、ProvisioningState
と DeploymentSummary
プロパティが設定されます。 ProvisioningState
は、修復タスクの状態を示します。 指定できる値は、Running
、Canceled
、Cancelling
、Failed
、Complete
、Succeeded
です。 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
},
}
次の手順
- 非準拠の原因を判断する方法について説明します。
- コンプライアンス データを取得する方法を学習します。
- 準拠していないリソースを修復する方法を学習します。
- Azure Policy 状態変更イベントに対応する方法について説明します。
- ポリシー定義の構造についてさらに学習します。
- ポリシー割り当ての構造についてさらに学習します。