Azure 原則合規性狀態
合規性的運作方式
指派計畫或原則定義時,Azure 原則會決定哪些資源是適用,然後評估未排除或豁免的資源。 評估根據原則規則中的條件以及每個資源對這些需求的遵循情況產生合規性狀態。
其他合規性狀態
不符合規範
當原則規則的條件評估為 TRUE
時,具有 audit
、auditIfNotExists
或 modify
效果的原則指派會被視為不符合新、已更新或現有資源的要求。
當原則規則的條件評估為 TRUE
時,具有 append
、deny
和 deployIfNotExists
效果的原則指派會被視為不符合現有資源的規範。 新和已更新資源會在要求時間自動補救或拒絕,以強制執行合規性。 更新先前現有不符合規範的資源時,合規性狀態會維持不符合規範狀態,直到資源部署和原則評估完成為止。
注意
deployIfNotExists
和 auditIfNotExists
效果需要 IF 陳述式以成為 TRUE,且存在條件成為 FALSE 時不符合規範。 若為 TRUE,IF 條件會觸發相關資源的存在條件評估。
在兩種情況下,具有 manual
效果的原則指派會被視為不符合規範:
- 原則定義的預設合規性狀態為不符合規範,並且沒有針對適用資源的使用中證明另行說明。
- 已證明資源不符合規範。
若要判斷資源為不符合規範的原因,或是找出導致此情況的變更,請參閱判斷不符合規範的原因。 若要補救 deployIfNotExists
和 modify
不符合規範的資源,請參閱使用 Azure 原則補救不符合規範的資源。
符合標準
當原則規則的條件評估為 FALSE
時,具有 append
、audit
或 auditIfNotExists
、deny
、deployIfNotExists
或 modify
效果的原則指派會被視為符合新、已更新或現有資源的要求。
在兩種情況下,具有 manual
效果的原則指派會被視為符合規範:
- 原則定義的預設合規性狀態為符合規範,並且沒有針對適用資源的使用中證明另行說明。
- 已證明資源符合規範。
錯誤
錯誤合規性狀態會提供給產生系統錯誤的原則指派,例如範本或評估錯誤。
衝突
當相同範圍內存在兩個或多個具有矛盾或衝突規則的原則指派時,原則指派會被視為衝突。 例如,兩個附加具有不同值之相同標籤的定義。
豁免
當原則指派處於豁免範圍內時,適用的資源具有原則指派豁免的合規性狀態。
注意
豁免與排除不同。 如需詳細資訊,請參閱了解 Azure 原則範圍。
Unknown
未知是具有 manual
效果之定義的預設合規性狀態,除非預設值已明確設定為符合規範或不符合規範。 此狀態表示必須保證合規性證明。 此合規性狀態僅發生在具有 manual
效果的原則指派中。
Protected
受保護狀態表示資源受到具有 denyAction 效果的指派涵蓋。
未註冊
當未註冊 Azure 原則資源提供者,或登入的帳戶無權讀取合規性資料時,此合規性狀態會在 Azure 入口網站中顯示。
注意
若合規性狀態報告為 [未註冊],請確認已註冊 Microsoft.PolicyInsights
資源提供者,且使用者有適當的 Azure 角色型存取控制 (Azure RBAC) 權限,如 Azure 原則中的 RBAC 所述。
若要註冊 Microsoft.PolicyInsights
,請遵循 Azure 資源提供者和類型中的步驟。
未開始
此合規性狀態表示原則或資源的評估週期未開始。
範例
既然您已瞭解有哪些合規性狀態存在,以及每個狀態的意義,讓我們看看使用符合規範和不符合規範狀態的範例。
假設您有資源群組 (ContosoRG),其中具有公開至公用網路的部分儲存體帳戶 (以紅色醒目提示)。
此圖顯示 Contoso R G 資源群組中的五個儲存體帳戶映像。 儲存體帳戶一與三是藍色,而儲存體帳戶二、四與五是紅色。
在此範例中,您必須注意安全性風險。 假設您指派原則定義,以稽核公開至公用網路的儲存體帳戶,而且不會為此指派建立任何豁免。 原則會檢查適用的資源 (其中包含 ContosoRG 資源群組中的所有儲存體帳戶),然後評估未從評估中排除的那些資源。 其會稽核公開給公用網路的三個儲存體帳戶,將其合規性狀態變更為不符合規範。其餘部分會標示為符合規範。
此圖顯示 Contoso R G 資源群組中的五個儲存體帳戶映像。 儲存體帳戶一與三下方現在有綠色核取記號,而儲存體帳戶二、四與五下方現在有紅色警告符號。
合規性彙總
合規性狀態取決於每個資源、每個原則指派。 不過,我們經常需要對環境狀態有一個全局的檢視,這就是彙總合規性發揮作用的時候了。
有數種方式可在入口網站中檢視彙總的合規性結果:
彙總的合規性檢視 | 決定合規性狀態的因素 |
---|---|
範圍 | 所選範圍內的所有原則 |
計畫 | 計畫內的所有原則 |
計畫群組或控制 | 群組或控制項內的所有原則 |
原則 | 所有適用的資源 |
資源 | 所有適用的原則 |
比較不同的合規性狀態
因此,彙總合規性狀態如何判斷多個資源或原則本身是否有不同的合規性狀態? Azure 原則會排定每個合規性狀態的順位,在此情況下,一個合規性狀態會「勝過」另一個合規性狀態。 順位為:
- 不符合規範
- 符合標準
- 錯誤
- 衝突
- 受保護 (預覽)
- 已豁免
- 未知 (預覽)
根據此排名順序,如果同時有不符合規範和符合規範的狀態,則積存的彙總將發生不符合規範等等情況。 讓我們看看一個範例:
假設方案包含 10 個原則,而且資源會豁免一個原則,但符合其餘九個原則的規範。 由於符合規範的狀態順位高於豁免狀態,因此資源會在計畫的積存摘要中註冊為符合規範。 因此,如果資源豁免或不符合該計畫的其他每個適用原則,則資源只會顯示為豁免。 另一個極端情況下,資源不符合計畫中至少一個適用原則的規範,則不論其餘適用的原則為何,其都具有不符合規範的整體合規性狀態。
合規性百分比
合規性百分比是透過將符合規範、豁免和未知資源除以資源總計來決定的。 資源總計包含符合規範的資源、不符合規範、未知、豁免、衝突和錯誤狀態。
overall compliance % = (compliant + exempt + unknown + protected) / (compliant + exempt + unknown + non-compliant + conflicting + error + protected)
在顯示的影像中,有 20 種適用的不同資源,只有一種是不符合規範。 整體資源合規性為 95% (19 / 20)。
下一步
- 了解如何取得合規性資料
- 了解如何判斷不符合規範的原因
- 透過 Azure 原則的 Azure Resource Graph 範例查詢取得合規性資料