Azure 原則 的適用性為何?
將原則定義指派給範圍時,Azure 原則 會決定該範圍內應考慮哪些資源以進行合規性評估。 只有在資源被視為 適用於 指定的原則指派時,才會評估其合規性。
適用性取決於幾個因素:
- 原則規則區塊中的
if
條件。 - 原則定義的模式 。
- 指派中指定的排除範圍 。
- 指派中指定的資源選取器 。
- 資源 或資源階層的豁免。
原則規則區塊中的 if
Condition(s) 會根據效果,以稍微不同的方式評估適用性。
注意
適用性與合規性不同,而用來判斷每個邏輯的邏輯則不同。 如果資源 適用 ,表示它與原則相關。 如果資源 符合規範 ,表示它遵守原則。 有時只有原則規則的某些條件會影響適用性,而原則規則的所有條件都會影響合規性狀態。
Resource Manager 模式
-IfNotExists 原則效果
和 DeployIfNotExists
原則的AuditIfNotExists
適用性是以原則規則的整個if
條件為基礎。 if
當 評估為 false 時,原則不適用。
所有其他原則效果
Azure 原則 只會type
評估原則規則if
表達式中的、 name
和 kind
條件,並將其他條件視為 true(或否定時為 false)。 如果最終評估結果為 true,則原則適用。 否則,不適用。
以下是先前所描述適用性邏輯的特殊案例:
案例 | 結果 |
---|---|
條件中的任何 if 無效別名 |
此原則不適用 |
當 if 條件只 kind 包含條件時 |
此原則適用於所有資源 |
當 if 條件只 name 包含條件時 |
此原則適用於所有資源 |
if 當條件只type 包含和 kind 條件時 |
決定適用性時,只會 type 考慮條件 |
if 當條件只type 包含和 name 條件時 |
決定適用性時,只會 type 考慮條件 |
當 if 條件包含 type 、 kind 和其他條件時 |
決定適用性時,會 type 考慮 和 kind 條件 |
當 if 條件包含 type 、 name 和其他條件時 |
決定適用性時,會 type 考慮 和 name 條件 |
當任何條件 (包括部署參數) 包含 location 條件時 |
不適用於訂用帳戶 |
資源提供者模式
Microsoft.Kubernetes.Data
原則的 Microsoft.Kubernetes.Data
適用性是以原則規則的整個 if
條件為基礎。 if
當 評估為 false 時,原則不適用。
Microsoft.KeyVault.Data、Microsoft.ManagedHSM.Data、Microsoft.DataFactory.Data 和 Microsoft.MachineLearningServices.v2.Data
如果原則規則的條件評估為 true, type
則適用具有這些 RP 模式的原則。 type
是指元件類型。
金鑰保存庫元件類型:
- Microsoft.KeyVault.Data/vaults/certificates
- Microsoft.KeyVault.Data/vaults/keys
- Microsoft.KeyVault.Data/vaults/secrets
受控 HSM 元件類型:
- Microsoft.ManagedHSM.Data/managedHsms/keys
Azure Data Factory 元件類型:
- Microsoft.DataFactory.Data/factories/outboundTraffic
Azure 機器學習 元件類型:
- Microsoft.MachineLearningServices.v2.Data/workspaces/deployments
Microsoft.Network.Data
如果type
原則規則的 和 name
條件評估為 true,則適用模式Microsoft.Network.Data
的原則。 type
指定的元件型態:
- Microsoft.Network/virtualNetworks
不適用的資源
在某些情況下,資源會根據條件或範圍來套用至指派,但因商務原因而不適用。 屆時,最好套用 排除 或 豁免。 若要深入瞭解何時使用任一專案,請檢閱 範圍比較
注意
根據設計,Azure 原則 不會從原則評估的資源提供者 (RP) 下Microsoft.Resources
評估資源,但訂用帳戶和資源群組除外。
下一步
- 瞭解如何將 資源標示為不適用。
- 更 深入瞭解適用性限制
- 瞭解如何 取得 Azure 資源的合規性數據。
- 檢閱 資源類型原則的原則合規性更新。