Azure 原則 定義效果基本概念

Azure 原則 中的每個原則定義在其 policyRule中都有一effect個 。 這 effect 決定在評估原則規則以符合時會發生什麼事。 這些效果在針對新資源、已更新的資源或現有的資源時,各有不同的行為表現。

以下是支援的 Azure 原則 定義效果:

互換效果

有時候,多個效果可能對指定的原則定義有效。 參數通常用來指定允許的效果值 (allowedValues),以便單一定義在指派期間更有彈性。 不過,請務必注意,並非所有效果都可以互換。 原則規則中的資源屬性和邏輯可以判斷某個效果是否對原則定義有效。 例如,具有效果 auditIfNotExists 的原則定義需要原則規則中的其他詳細數據,這些詳細數據不適用於生效 audit的原則。 效果也會以不同的方式運作。 audit 原則會根據自己的屬性評估資源的合規性,而 auditIfNotExists 原則則會根據子系或延伸模組資源的屬性評估資源的合規性。

下列清單是可互換效果的一些一般指引:

  • auditdeny和 或 modifyappend 通常可互換。
  • auditIfNotExistsdeployIfNotExists 通常是可互換的。
  • manual 無法互換。
  • disabled 與任何效果可互換。

評估順序

Azure 原則 的第一個評估是建立或更新資源的要求。 「Azure 原則」會建立適用於資源的所有指派清單,然後對照每個定義來評估資源。 針對 Resource Manager 模式,「Azure 原則」會先處理數個效果,然後才處理對適當「資源提供者」的要求。 此順序可避免「資源提供者」在資源不符合所設計的「Azure 原則」治理控制措施時,進行不必要的處理。 使用資源提供者模式時,資源提供者會管理評估和結果,並將結果回報給 Azure 原則。

  • disabled 會先檢查 ,以判斷是否應該評估原則規則。
  • append 然後會評估 和 modify 。 由於兩者均可改變要求,因此所進行的變更可能會導致無法觸發 Audit 或 Deny 效果。 這些效果僅適用於 Resource Manager 模式。
  • deny 接著會進行評估。 在 Audit 前先評估 Deny 可防止重複記錄不想要的資源。
  • audit 已評估。
  • manual 已評估。
  • auditIfNotExists 已評估。
  • denyAction 上次評估。

在資源提供者在 Resource Manager 模式要求上傳回成功程式代碼之後, auditIfNotExistsdeployIfNotExists 評估以判斷是否需要更多合規性記錄或動作。

僅修改 tags 相關欄位的 PATCH 要求會限制原則評估,僅限其中條件會檢查 tags 相關欄位的原則。

分層原則定義

數個指派可能會影響資源。 這些指派可能屬於相同範圍,也可能屬於不同範圍。 這些指派中的每項指派也可能定義了不同的效果。 針對每個原則的條件和效果,都會以獨立方式進行評估。 例如:

  • 原則 1
    • 將資源位置限制為 westus
    • 指派給訂用帳戶 A
    • Deny 效果
  • 原則 2
    • 將資源位置限制為 eastus
    • 指派給訂用帳戶 A 中的資源群組 B
    • Audit 效果

此設定會產生下列結果:

  • 任何已經在資源群組 B 且在 eastus 中的資源都符合原則 2 的規範,但不符合原則 1 的規範
  • 任何已經在資源群組 B 但不在 eastus 中的資源都不符合原則 2 的規範,且如果不在 westus 中,則也不符合原則 1 的規範
  • 原則 1 拒絕訂用帳戶 A 中任何新資源 westus
  • 任何在訂用帳戶 A 和資源群組 B 且在 westus 中的新資源都會建立,但不符合原則 2 的規範

如果原則 1 和原則 2 都採用 Deny 效果,則情況會變成:

  • 任何已經在資源群組 B 但不在 eastus 中的資源都不符合原則 2 的規範
  • 任何已經在資源群組 B 但不在 westus 中的資源都不符合原則 1 的規範
  • 原則 1 拒絕訂用帳戶 A 中任何新資源 westus
  • 任何在訂用帳戶 A 之資源群組 B 中的新資源都會被拒絕

針對每個指派都會以獨立方式進行評估。 因此,不可能讓資源從範圍差異的間隙中逃脫。 分層原則定義的淨結果會被視為累計限制最嚴格的結果。 例如,如果原則 1 和 2 都有 deny 作用,則重疊和衝突的原則定義會封鎖資源。 如果您仍然需要在目標範圍中建立該資源,請檢閱每項指派的相關排除項目,以驗證是由正確的原則指派在影響正確的範圍。

下一步