Azure 原則補救工作結構
Azure 原則補救工作功能可用來讓資源符合從定義和指派建立的合規性。 不符合 修改 或 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 個字元。
原則指派識別碼
此欄位必須是原則指派或計劃指派的完整路徑名稱。
policyAssignmentId
是字串,而不是陣列。 此屬性會定義父代資源階層或個別資源會補救的指派。
原則定義識別碼
如果 policyAssignmentId
是用於計劃指派,則必須使用 policyDefinitionReferenceId 屬性來指定主題資源計畫中哪個原則定義需要補救。 由於補救只能在一個定義範圍中補救,此屬性是 字串 而非陣列。 值必須符合 [policyDefinitions.policyDefinitionReferenceId
] 欄位中計劃定義中的值,而不是原則定義 Id
的全域識別碼。
資源計數和平行部署
使用 資源計數 來決定在給定的補救工作中要補救多少個不符合規範的資源。 預設值為 500,最大數目為 50,000。 平行部署 會決定要同時補救的資源數目。 允許的範圍介於 1 到 30 之間,預設值為 10。
注意
平行部署是單一補救工作中的部署數量,最多 30 個。 計劃內的單一原則定義或原則參考最多可以平行執行 100 個補救工作。
失敗閾值
一個可選屬性,用於指定如果失敗百分比超過給定閾值,補救工作是否應失敗。 失敗閾值 會以 0 到 100 的百分比表示。 根據預設,失敗閾值為 100%,這表示即使資源無法補救,補救工作仍會繼續補救其他資源。
補救篩選
選擇性屬性會精簡哪些資源適用於補救工作。 允許的篩選條件是資源位置。 除非指定,否則可以補救來自任何區域的資源。
資源探索模式
此屬性會決定如何探索符合補救資格的資源。 若要讓資源符合資格,它必須不符合規範。 根據預設,這個屬性設定為 ExistingNonCompliant
。 它也可以設定為 ReEvaluateCompliance
,這會觸發該指派的新合規性掃描,並補救找到不符合規範的任何資源。
佈建狀態和部署摘要
建立補救工作之後,會填入 佈建狀態 和 部署摘要 屬性。 佈建狀態 會指出補救工作的狀態。 允許值為 Running
、Canceled
、Cancelling
、Failed
、Complete
或 Succeeded
。 部署摘要 是一個陣列屬性,會指出部署的數目以及成功和失敗的部署數目。
已順利完成之補救工作的範例:
{
"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
},
}
下一步
- 了解如何判斷不符合規範的原因。
- 了解如何取得合規性資料。
- 了解如何補救不符合規範的資源。
- 深入了解 回應 Azure 原則狀態變更事件。
- 了解原則定義結構。
- 了解原則指派結構。