Azure 原則補救工作結構
Azure 原則補救工作功能可用來讓資源符合從定義和指派建立的合規性。 不符合 modify 或 deployIfNotExists 定義指派規範的資源,可以使用補救工作來變得符合規範。 補救工作會使用指派中指定的身分識別,將 deployIfNotExists
範本或 modify
作業部署到所選定不符合規範的資源。 如需詳細資訊,請參閱 原則指派結構以了解身分識別的定義方式,以及參閱補救不符合規範的資源教學課程以設定身分識別。
補救工作會補救不符合規範的現有資源。 針對適用於 deployIfNotExists
或 modify
定義指派的新建或更新資源,系統會自動進行補救。
注意
Azure 原則服務會刪除自上次修改後已過 60 天的補救工作資源。
您可以使用 JavaScript 物件標記法 (JSON) 來建立原則補救工作。 原則補救工作包含下列項目的元素:
例如,下列 JSON 會顯示原則定義名為 requiredTags
的原則補救工作, 名為 resourceShouldBeCompliantInit
且具有所有預設設定之計劃指派的一部分。
{
"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
}
}
}
如何補救不符合規範的資源指南會說明如何觸發補救工作的步驟。 補救工作開始後,就無法變更這些設定。
原則指派識別碼
此欄位必須是原則指派或計劃指派的完整路徑名稱。 policyAssignmentId
是字串,而不是陣列。 此屬性會定義父代資源階層或個別資源會補救的指派。
原則定義識別碼
如果 policyAssignmentId
是用於計劃指派,則必須使用 policyDefinitionReferenceId
屬性來指定計劃中要補救主題資源的原則定義。 由於補救只能在一個定義範圍中補救,此屬性是 字串 而非陣列。 值必須符合 [policyDefinitions.policyDefinitionReferenceId
] 欄位中計劃定義中的值,而不是原則定義 Id
的全域識別碼。
資源計數和平行部署
使用 resourceCount
可決定給定的補救工作中要補救多少個不符合規範的資源。 預設值為 500,最大數目為 50,000。 parallelDeployments
可決定要同時補救的資源數目。 允許的範圍介於 1 到 30 之間,預設值為 10。
平行部署是單一補救工作中的部署數量,最多 30 個。 計劃內的單一原則定義或原則參考最多可以平行執行 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 原則狀態變更事件。
- 了解原則定義結構。
- 了解原則指派結構。