你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
了解 Azure Policy 中的范围
有许多设置可确定哪些资源可以接受评估,以及 Azure Policy 评估哪些资源。 这些控制措施的首要概念是范围。 Azure Policy 中的范围基于 Azure 资源管理器中范围的工作方式。 有关综合概述,请参阅 Azure 资源管理器中的范围。
本文介绍了 Azure Policy 中范围的重要性,以及它的相关对象和属性。
定义位置
Azure Policy 使用第一个实例范围的时间是在创建策略定义的时候。 该定义可以保存在管理组或订阅中。 该位置确定计划或策略可以分配到的范围。 资源必须位于作为分配目标的定义位置的资源层次结构之内。 Azure Policy 涵盖的资源介绍了如何评估策略。
如果定义位置是:
- 订阅:定义策略的订阅,并且该订阅中的资源可以分配给策略定义。
- 管理组:定义策略的管理组,并且子管理组和子订阅中的资源可以分配给策略定义。 如果你计划将此策略定义应用于多个订阅,该位置必须是包含每个订阅的管理组。
该位置应该是由你想要对其使用策略定义(如果存在)的所有资源共享的资源容器。 此资源容器通常是位于根管理组附近的某个管理组。
分配范围
一个分配具有多个用于设置范围的属性。 对这些属性的使用决定了要评估哪个 Azure Policy 资源以及哪些资源会计入符合性。 这些属性映射到以下概念:
- 包含:定义将评估资源层次结构或单个资源的合规性。 分配对象的范围确定了要包含哪些内容并评估其合规性。 有关详细信息,请参阅 Azure Policy 分配结构。
- 排除:定义不应评估资源层次结构或单个资源的合规性。 某个分配对象的
properties.notScopes
数组属性确定要排除什么内容。 这些范围内的资源不会被评估,也不会包含在符合性计算中。 有关详细信息,请参阅 Azure Policy 分配结构排除范围。
除了策略分配的属性外,还有一个 Azure Policy 豁免结构对象。 豁免提供一种方法来识别某个分配中不进行评估的部分,从而增强范围描述。
豁免:定义将评估资源层次结构或单个资源的合规性,但出于某种原因(例如通过其他方法得到豁免或缓解)不会对其进行评估。 处于这种状态的资源在符合性报告中会显示为“已豁免”,以便可对这些资源进行跟踪。 豁免对象在资源层次结构或单个资源上创建为子对象,从而确定了豁免的范围。 资源层次结构或单个资源可以从多个分配豁免。 通过使用 expiresOn
属性,可以将豁免配置为按计划过期。 有关详细信息,请参阅 Azure Policy 豁免结构。
注意
由于为资源层次结构或单个资源授予豁免会产生影响,因此豁免还具有更多的安全措施。 除了需要对资源层次结构或单个资源执行 Microsoft.Authorization/policyExemptions/write
操作外,豁免的创建者还必须在目标分配上使用 exempt/Action
谓词。
范围对比
下表是范围选项的对比:
资源 | 包含 | 排除 (notScopes) | 例外 |
---|---|---|---|
资源接受评估 | ✔ | - | - |
资源管理器对象 | - | - | ✔ |
需要修改策略分配对象 | ✔ | ✔ | - |
那么,如何选择是使用排除还是豁免呢? 通常,建议将排除项永久绕过广泛范围的评估,例如不需要相同级别治理的测试环境。 对于存在时间限制或更具体的方案(其中仍应对资源或资源层次结构进行跟踪,否则将对其进行评估,但有特定原因不应评估其合规性),建议使用排除。
后续步骤
- 了解策略定义结构。
- 了解如何以编程方式创建策略。
- 了解如何获取符合性数据。
- 了解如何修正不符合的资源。
- 详细了解如何使用 Azure 管理组来组织资源。