你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:禁止云环境中的资源类型

云治理的一个常见目标是限制环境中允许的资源类型。 企业有许多动机来限制资源类型。 例如,资源类型可能成本高昂,也可能与业务标准和策略相冲突。 Azure Policy 没有为各个资源类型使用多种策略,而是提供了两个内置策略来实现此目标:

名称
(Azure 门户)
说明 效果 版本
(GitHub)
允许的资源类型 此策略可用于指定组织可以部署的资源类型。 只有支持“tags”和“location”的资源类型才会受此策略影响。 若要限制所有资源,请复制此策略并将“mode”更改为“All”。 deny 1.0.0
不允许的资源类型 限制可以在环境中部署的资源类型。 限制资源类型可以降低环境的复杂性和攻击面,同时也有助于管理成本。 仅显示不符合要求的资源的符合性结果。 Audit、Deny、Disabled 2.0.0

在本教程中,你将应用“不允许的资源类型”策略,并通过 Microsoft Azure 门户大规模管理资源类型。

先决条件

如果没有 Azure 订阅,请在开始之前创建一个免费帐户。

分配策略定义

禁用资源类型的第一步是分配“不允许的资源类型”策略定义。

  1. 转到 Azure 门户中不允许的资源类型

    Screenshot of definition details screen for 'Not allowed resource types' policy.

  2. 选择页面顶部的“分配”按钮。

  3. 在“基本信息”选项卡上,选择省略号并选择管理组、订阅或资源组来设置“范围”。 确保所选范围至少有一个子范围。 然后在“范围”页的底部单击“选择”。

    此示例使用 Contoso 订阅。

    注意

    如果将此策略定义分配给根管理组范围,门户可以检测不允许的资源类型,并在“所有服务”视图中禁用这些资源类型,以便门户用户在尝试部署不允许的资源之前了解限制。

  4. 可基于“范围”排除资源。 “排除”从低于“范围”级别的一个级别开始。 “排除”是可选的,因此暂时将其留空

  5. “分配名称”中自动填充了所选的策略定义名称,但可以更改它。 还可以添加可选“说明”来提供有关此策略分配的详细信息。

  6. 让“策略强制”保持“启用”状态。 禁用时,此设置允许测试策略的结果,而不触发效果。 有关详细信息,请参阅强制模式

  7. 系统会根据登录的用户自动填充“分配者”。 此字段是可选字段,因此可输入自定义值。

  8. 选择向导顶部的“参数”选项卡。 本教程跳过“高级”选项卡。

  9. 对于“不允许的资源类型”参数,请使用下拉列表搜索并选择云环境中不允许的资源类型。

  10. 此策略定义没有 modifydeployIfNotExists 效果,因此它不支持修正任务。 本教程跳过“修正”选项卡。

  11. 选择向导顶部的“不合规消息”选项卡。

  12. 将“不合规消息”设置为“不允许使用此资源类型”。 当拒绝某个资源时或在常规评估期间针对不合规资源会显示此自定义消息。

  13. 选择向导顶部的“查看 + 创建”选项卡。

  14. 查看选项,然后在页面底部选择“创建”。

在 Azure 门户中查看禁用的资源类型

此步骤仅适用于已在根管理组范围分配策略的情况。

现在你已经分配内置的策略定义后,接下来请转到所有服务。 Azure 门户了解此策略分配中不允许的资源类型,并在“所有服务”页中禁用它们。 “创建”选项不适用于已禁用的资源类型。

注意

如果将此策略定义分配给根管理组,则用户在首次登录时或登录后策略发生更改时会看到以下通知:

由管理员更改的策略 管理员已更改帐户的策略。 建议刷新门户以使用更新的策略。

Screenshot of disallowed resources in All Services blade.

创建豁免

现在假设允许一个子范围拥有被此策略禁用的资源类型。 让我们在此范围内创建一个豁免,可以在其中部署受限制的资源。

警告

如果将此策略定义分配给根管理组范围,Azure 门户无法从检测更低级别范围的豁免。 策略分配不允许的资源将在“所有服务”列表中显示为已禁用,并且“创建”选项不可用。 但是,你可以使用 Azure CLI、Azure PowerShell 或 Azure 资源管理器模板等客户端在豁免的范围内创建资源。

  1. 在“Azure Policy”页左侧的“创作”下选择“分配” 。

  2. 搜索创建的策略分配。

  3. 选择页面顶部的“创建豁免”按钮。

  4. 在“基本信息”选项卡中,选择“豁免范围”,这是允许使用此策略分配限制的资源的子范围。

  5. 使用所需文本填写“豁免名称”,并将“豁免类别”保留为默认的“豁免”。 不要切换“豁免到期设置”的开关,因为此豁免不会设置为到期。 (可选)添加“豁免说明”,然后选择“查看 + 创建”。

  6. 本教程绕过“高级”选项卡。在“查看 + 创建”选项卡中,选择“创建”。

  7. 若要查看豁免,请选择“Azure Policy”页左侧“创作”下的“豁免”。

现在,子范围可以具有策略不允许的资源类型。

清理资源

如果今后不再使用本教程中的资源,请使用以下步骤删除本教程中创建的所有策略分配或定义:

  1. 在“Azure Policy”页左侧的“创作”下选择“定义”(如果尝试删除分配,则选择“分配”) 。

  2. 搜索要删除的新计划或策略定义(或分配)。

  3. 右键单击定义(或分配)对应的行或选择其末尾的省略号,然后选择“删除定义”(或“删除分配”)。

审阅

在本教程中,你已成功完成以下任务:

  • 分配了“不允许的资源类型”内置策略来拒绝创建不允许的资源类型
  • 在子范围为此策略分配创建了豁免

使用此内置策略,可以指定不允许的资源类型。 另一种限制更大的方法是使用“允许的资源类型”内置策略指定允许的资源类型。

注意

如果 mode 设置为 All 并且策略是在根管理组中分配的,则 Azure 门户的“所有服务”将仅禁用允许的资源类型策略中未指定的资源。 这是因为它检查所有资源类型,而不考虑 tagslocations。 如果希望门户具有此行为,请复制允许的资源类型内置策略,并将其 modeIndexed 更改为 All,然后将其分配给根管理组范围。

后续步骤

若要了解有关策略定义、分配和豁免结构的详细信息,请查看以下文章:

若要查看内置策略示例的完整列表,请查看以下文章: