本概觀說明 Azure 原則 如何協助強制執行組織標準,並大規模評估合規性。 其合規性儀表板會提供彙總檢視,以評估環境的整體狀態,並能夠向下切入至每個資源和每個原則的細微性。 也可透過對現有資源進行大規模補救,以及自動對新資源進行補救來協助您的資源達到合規性。
附註
如需補救的詳細資訊,請參閱使用 Azure 原則補救不合規的資源。
Azure 原則的常見使用案例包括針對資源一致性、法規合規性、安全性、成本和管理來進行治理。 這些常見使用案例的原則定義已內建在您的 Azure 環境中,可協助您開始進行作業。
您可以使用 Azure 原則強制執行的一些實用治理動作包括:
- 請確定您的小組只會將 Azure 資源部署至允許的區域。
- 強制一致地應用分類標籤。
- 需要資源才能將診斷記錄傳送至 Log Analytics 工作區。
請務必了解,隨著 Azure Arc 的引進,您可以將原則型治理延伸至不同雲端提供者,甚至延伸至本機資料中心。
所有 Azure 原則的資料和物件都會在待用時加密。 如需詳細資訊,請參閱 Azure 待用資料加密。
概觀
Azure 原則會將這些資源屬性與商務規則進行比較,以評估 Azure 中的資源與動作。 這些以 JSON 格式描述的商務規則稱為原則定義。 為了簡化管理,可以將數個商業規則分組在一起,以形成 原則計劃,也稱為 policySet。
建立商務規則之後,原則定義或計畫會指派 (部分內容可能是機器或 AI 翻譯) 給 Azure 支援的任何資源範圍。 例如, 管理群組、訂用帳戶、 資源群組或個別資源。 指派會套用至該指派 Resource Manager 範圍內的所有資源。 如有必要,您可以排除子範圍。 如需詳細資訊,請參閱 Azure 原則中的範圍。
Azure 原則會使用 JSON 格式來形成評估作業用來判斷資源是否符合規範的邏輯。 定義包括中繼資料和原則規則。 定義的規則可使用函式、參數、邏輯運算子、條件和屬性別名,來確切符合您想要的情況。 原則規則會決定指派範圍中的哪些資源要受到評估。
了解評估結果
資源可在資源生命週期及原則指派生命週期中的特定時間點受到評估,也可以進行週期性的合規性評估。 以下是會導致資源受到評估的時間或事件:
- 在具有原則指派的範圍中建立或更新資源。
- 範圍會取得原則或計畫的新指派。
- 更新已指派給範圍的原則或計畫。
- 每 24 小時發生一次的標準合規性評估週期。
若要深入了解原則評估發生的時機和方式,請參閱評估觸發程序。
控制評估的回應
各組織用來處理非合規資源的商務規則有很大的差異。 組織希望平台如何回應非合規資源的範例包括:
- 拒絕資源變更。
- 將變更記錄到資源。
- 在變更之前變更資源。
- 在變更後修改資源。
- 部署相關的合規資源。
- 阻止對資源的所有操作。
Azure 原則會透過套用效果,讓每個商務回應都是可行的。 效果會在原則定義的原則規則部分中設定。
補救不相容的資源
雖然這些效果主要會在建立或更新資源時影響資源,但 Azure 原則也支援處理現有的非合規資源,而不需要改變該資源。 如需讓現有資源符合規範的詳細資訊,請參閱 使用 Azure 原則補救不合規的資源。
開始使用
Azure 原則與 Azure RBAC
Azure 原則和 Azure 角色型存取控制 (Azure RBAC) 之間有幾個主要差異。 Azure 原則會藉由檢查 Resource Manager 中呈現的資源屬性及部分資源提供者的屬性,來評估狀態。 Azure 原則可確保資源狀態遵循您的商務規則,而不需要擔心誰進行了變更或誰有權進行變更。 透過 DenyAction 效果的 Azure 原則也可以封鎖資源上的特定動作。 某些 Azure 原則資源,例如原則定義、方案定義和指派,所有使用者都可以看到。 此設計可確保對所有使用者和服務透明化,以便瞭解其環境中設定的原則規則。
Azure RBAC 著重於管理不同範圍的使用者動作。 如果需要根據使用者資訊控制動作,則 Azure RBAC 是應使用的正確工具。 即使個人擁有執行動作的存取權,但結果若是不符合規範的資源,Azure 原則仍會封鎖建立或更新動作。
Azure RBAC 和 Azure 原則的結合,可在 Azure 中提供完整的範圍控制。
Azure 原則中的 Azure RBAC 權限
Azure 原則在下列兩個資源提供者中有數個權限,一般稱之為作業:
許多內建角色都會授與 Azure 原則資源的權限。 [資源原則參與者] 角色包含大部分的 Azure 原則作業。 擁有者則具有完整權限。 參與者和讀者都有權「讀取」 Azure 原則作業。
參與者 可能會觸發資源補救,但無法 建立 或 更新 定義和指派。
使用者存取管理員必須授予 deployIfNotExists 或 modify 指派的受控識別所需的權限。
附註
所有原則物件 (包括定義、方案和指派) 都可供其範圍內的所有角色讀取。 例如,範圍設定為 Azure 訂用帳戶的原則指派,將會由訂用帳戶範圍和更低範圍內的所有角色持有者讀取。
若沒有任何內建角色具有所需的權限,請建立自訂角色。
Azure 原則作業可能會對您的 Azure 環境造成重大影響。 僅指派執行工作所需的最低權限集,並僅將這些權限授與需要權限的使用者。
附註
deployIfNotExists 或 modify 原則指派的受控識別需要足夠的權限,才可建立或更新目標資源。 如需詳細資訊,請參閱 設定原則定義。
搭配 Azure Virtual Network Manager 使用 Azure 原則的特殊權限需求
Azure 虛擬網路管理員 (預覽版) 可讓您將一致的管理和安全性原則套用至整個雲端基礎結構中的多個 Azure 虛擬網路。 Azure 虛擬網路管理員 (AVNM) 動態群組會使用 Azure 原則定義來評估這些群組中的虛擬網路成員資格。
若要建立、編輯或刪除 Azure Virtual Network Manager 動態群組原則,您需要:
- 在基礎原則中讀取和寫入 Azure RBAC 權限
- 用於加入網路群組的 Azure RBAC 權限。 不支援傳統系統管理員授權。
所需的資源提供者權限是 Microsoft.Network/networkManagers/networkGroups/join/action。
重要事項
若要修改 AVNM 動態群組,您只能透過 Azure RBAC 角色指派來獲得存取權。 不支援傳統管理員或舊版授權。 如果您的帳戶只獲指派 Co-Administrator 訂閱角色,您將沒有 AVNM 動態群組的權限。
Azure 原則所涵蓋的資源
雖然可以在管理群組層級指派原則,但「只」會評估訂用帳戶或資源群組層級的資源。
某些資源提供者 (例如機器設定、Azure Kubernetes Service 和 Azure Key Vault) 會有更深入的管理設定和物件整合。 若要深入了解,請移至資源提供者模式。
管理原則的建議
以下是要牢記在心的幾個指標和秘訣:
從
auditorauditIfNotExists效果開始,而不是強制執行 (deny,modify,deployIfNotExists) 效果,以追蹤政策定義如何影響環境中的資源。 如果您已經有腳本來自動調整應用程式,則設定強制效果可能會阻礙這類自動化工作。建立定義和指派時,請考量組織階層。 建議您在較高的層級建立定義,例如管理群組或訂用帳戶層級。 接著,在下一個子層級建立指派。 如果您在管理群組建立定義,可以將指派的範圍縮小為該管理群組內的訂用帳戶或資源群組。
即使是針對單一原則定義,也建議您建立並指派計畫定義。 此方法可讓您稍後將原則定義新增至方案,而不需要增加要管理的指派數目。
例如,假設您建立原則定義 policyDefA,並將其新增至計畫定義 initiativeDefC。 如果您稍後建立另一個原則定義 policyDefB,其目標類似 policyDefA,您可以在 initiativeDefC 下新增它,並一起追蹤它們。
建立計劃指派之後,新增至計劃的原則定義也會成為該計劃指派的一部分。
評估計畫指派時,也會評估該計畫內的所有原則。 如果您需要個別評估原則,最好不要包含在計畫中。
使用手動檢閱原則定義、計畫及指派的變更,以程式碼方式管理 Azure 原則資源。 若要深入瞭解建議的模式和工具,請參閱 將 Azure 原則設計為程式碼工作流程。
Azure 原則物件
物件包括原則定義、方案定義和指派。
原則定義
在 Azure 原則 中建立和實作原則的旅程會在您建立原則定義時開始。 每個原則定義都有強制執行的條件。 此外,還有已定義的效果,會在符合條件時發生。
在 Azure 原則中,我們預設提供數個可供使用的內建原則。 例如:
- 允許的儲存體帳戶 SKU (拒絕):確定要部署的儲存體帳戶是否在一組 SKU 大小內。 其效果是拒絕不符合已定義 SKU 大小集合的所有儲存體帳戶。
- 允許的資源類型 (拒絕):定義您可以部署的資源類型。 其效果是拒絕不屬於此定義清單的所有資源。
- 允許的位置 (拒絕):限制新資源的可用位置。 其效果可用來強制執行您的地理合規性需求。
- 允許的虛擬機器 SKU (拒絕):指定您可以部署的一組虛擬機器 SKU。
- 將標籤新增至資源 (修改):如果部署要求未指定,則套用必要的標籤及其預設值。
- 不允許的資源類型 (拒絕):防止部署資源類型清單。
若要實作這些原則定義 (內建和自訂定義),您必須指派它們。 您可以透過 Azure 入口網站、PowerShell 或 Azure CLI 來指派任何這些原則。
原則評估會透過數個不同的動作進行,例如原則指派或原則更新。 如需完整清單,請參閱原則評估觸發程序。
若要深入瞭解原則定義的結構,請檢閱 Azure 原則定義結構基本概念。
原則參數減少您必須建立的原則定義數量,有助於簡化原則管理。 在建立更通用的原則定義時,您可以定義參數。 接著,您便可以針對不同的案例,重複使用該原則定義。 若要這麼做,只要在指派原則定義時傳入不同的值即可。 例如,為訂用帳戶指定一組位置。
當您建立原則定義時,會定義參數。 參數的定義包括參數名稱和選用值。 例如,您可以為原則定義一個標題為 location 的參數。 接著,您可以在指派原則時給予它不同的值,例如 EastUS 或 WestUS。
如需原則參數的詳細資訊,請參閱 Azure 原則定義結構參數。
計畫定義
計畫定義是針對達到單一主要目標而量身打造的原則定義集合。 計畫定義可讓管理及指派原則定義更為簡單。 其簡化方式是將一組原則組成單一項目。 例如,您可以建立標題為在適用於雲端的 Microsoft Defender 中啟用監視的方案,目標是監視適用於雲端的 Microsoft Defender 執行個體中的所有可用安全性建議。
附註
SDK (例如 Azure CLI 和 Azure PowerShell) 會使用名為 PolicySet 的屬性和參數來參考計畫。
在這項計畫之下,您可能會有如下的原則定義:
- 在適用於雲端的 Microsoft Defender 中監視未加密的 SQL Database – 適用於監視未加密的 SQL 資料庫和伺服器。
- 在適用於雲端的 Microsoft Defender 中監視作業系統弱點 – 適用於監視不符合設定基準的伺服器。
- 在適用於雲端的 Microsoft Defender 中監視遺失的 Endpoint Protection – 適用於監視沒有安裝 Endpoint Protection 代理程式的伺服器。
類似原則參數,計畫參數減少重複性,有助於簡化計畫管理。 計畫參數是計畫內原則定義所要使用的參數。
例如,在下列案例中,您有一個計劃定義 initiativeC,其中包含原則定義 policyA 和 policyB ,其中每個定義都需要不同類型的參數:
| 原則 | 參數名稱 | 參數類型 | 附註 |
|---|---|---|---|
| 政策A | allowedLocations |
陣列 | 此參數需要值的字串清單,因為參數類型定義為陣列。 |
| 政策B | allowedSingleLocation |
字串 | 此參數需要一個值的單字,因為參數類型定義為字串。 |
當您定義 initiativeC 的計劃參數時,您有三個選項:
- 使用此計畫中政策定義的參數:在此範例中,
allowedLocations和allowedSingleLocation成為 計畫C 的參數。 - 提供值給此計畫定義內原則定義的參數。 在此範例中,您可以提供位置清單給 policyA 參數
allowedLocations和 policyBallowedSingleLocation。 您也可以在指派此專案時提供參數值。 - 提供指派此計畫時可以使用的值選項清單。 當您指派此計畫時,從計畫內原則定義繼承的參數,只能有來自此提供清單中的值。
當您在計劃定義中建立值選項時,您無法在計劃指派期間輸入不同的值,因為它不屬於清單的一部分。
若要深入瞭解計劃定義的結構,請檢閱 Azure 原則計劃定義結構。
指派
指派是將策略定義或倡議分配給特定範疇。 此範圍可從管理群組到個別資源。 「範圍」一詞係指作為定義指派對象的所有資源、資源群組、訂用帳戶或管理群組。 所有子資源都會繼承指派。 此設計的用意是,套用至某個資源群組的定義也會套用至該資源群組中的資源。 不過,您可以從指派中排除某個子範圍。
例如,在訂用帳戶範圍,您可以指派一個防止建立網路資源的定義。 您可以將該訂用帳戶內一個要用於網路基礎結構的資源群組排除。 接著,您要將此網路資源群組的存取權授與您所信任來建立網路資源的使用者。
在另一個範例中,建議您在管理群組層級指派資源類型允許清單定義。 然後,您可以在子管理群組或甚至直接在訂用帳戶上指派更寬鬆的原則 (允許更多資源類型)。 不過,因為 Azure 原則是明確的拒絕系統,此範例沒有作用。 相反地,您需要從管理群組層級的指派中排除子管理群組或訂用帳戶。 然後,對子管理群組或訂用帳戶層級指派更寬鬆的定義。 如果有任何指派導致系統拒絕資源,則唯一能允許資源的方法是修改拒絕指派。
評估資源時,原則指派一律會使用其指派定義或計畫的最新狀態。 如果已變更指派的原則定義,則該定義的所有現有指派都會在評估時使用更新的邏輯。
如需透過入口網站設定指派的詳細資訊,請參閱建立原則指派,以識別 Azure 環境中不符合規範的資源。 此外,還會提供適用於 PowerShell 和 Azure CLI 的步驟。 如需指派結構的相關資訊,請參閱 Azure 原則指派結構。
Azure 原則物件的最大計數
Azure 原則的每個物件類型都有最大計數。 對於定義,「範圍」項目表示管理群組或訂用帳戶。 針對指派和豁免,「範圍」項目表示管理群組、訂用帳戶、資源群組或個別資源。
| 位置 | 對象 | 最大計數 |
|---|---|---|
| Scope | 原則定義 | 500 |
| Scope | 計畫定義 | 200 |
| 租用戶 | 計畫定義 | 2,500 |
| Scope | 原則或方案指派 | 200 |
| Scope | 豁免 | 1000 |
| 原則定義 | 參數 | 20 |
| 計畫定義 | 原則 | 1000 |
| 計畫定義 | 參數 | 400 |
| 原則或方案指派 | 排除項目 (notScopes) | 400 |
| 原則規則 | 巢狀的條件 | 512 |
| 補救工作 | 資源 | 50,000 |
| 原則定義、計畫或指派要求主體 | 位元組 | 1,048,576 |
原則規則對於條件數目及其複雜度有更多限制。 如需詳細資訊,請參閱 原則規則限制。
後續步驟
現在您已瞭解 Azure 原則和一些重要概念的概觀,請使用下列連結來深入瞭解服務。
- Azure 原則詞彙 (部分內容可能是機器或 AI 翻譯)。
- Azure 規則定義結構基本概念。
- 快速入門:建立原則指派,以使用 Azure 入口網站識別不符合規範的資源。