Azure 原則的適用性為何?
將原則定義指派給範圍時,Azure 原則會判斷該範圍內有哪些資源應考慮進行合規性評估。 只有在資源被視為 適用於 指定的原則指派時,才會評估其合規性。
數個因素決定適用性:
- 原則規則的
if
區塊中的條件。 - 原則定義的模式。
- 指派中指定的排除範圍。
- 指派中指定的資源選取器。
- 資源或資源階層的免除。
原則規則區塊中的 if
條件會根據效果,以稍微不同的方式評估適用性。
注意
適用性與合規性不同,且用來加以判斷的邏輯也不相同。 如果資源適用,表示其與原則相關。 如果資源符合規範,表示其符合原則。 有時候,原則規則中只有某些特定的條件會影響適用性,但原則規則中的所有條件都會影響合規性狀態。
Resource Manager 模式
ifNotExists 原則效果
AuditIfNotExists
和 DeployIfNotExists
原則的適用性是以原則規則的整個 if
條件為基礎。 當 if
評估為 false 時,原則為不適用。
所有其他原則效果
Azure 原則只會評估原則規則 if
運算式中的 type
、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
則適用具有這些資源提供者模式的原則。 type
是指元件類型。
Key Vault 元件類型:
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 Machine Learning 元件類型:
Microsoft.MachineLearningServices.v2.Data/workspaces/deployments
Microsoft.Network.Data
如果原則規則的 type
和 name
條件評估為 true,具有 Microsoft.Network.Data
模式的原則為適用。 type
是指元件類型:
Microsoft.Network/virtualNetworks
不適用的資源
在某些情況下,資源會根據條件或範圍適用於指派,但因商務原因而不適用。 屆時,最好套用排除或豁免。 若要深入了解何時使用任一項目,請檢閱範圍比較
注意
根據設計,Azure 原則 不會從原則評估的資源提供者下Microsoft.Resources
評估資源,但訂用帳戶和資源群組除外。
下一步
- 了解如何將資源標示為不適用。
- 深入了解適用性限制
- 了解如何取得 Azure 資源的合規性資料。
- 檢閱資源類型原則的原則合規性更新。