实验室 02b - 通过 Azure Policy 管理治理

实验室简介

在本实验室中,你将了解如何实施组织的治理计划。 你将了解 Azure 策略如何确保在整个组织中强制实施可操作的决策。 了解如何使用资源标记来改进报告功能。

本实验室需要 Azure 订阅。 订阅类型可能会影响此实验室中功能的可用性。 你可更改区域,但这些步骤是使用“美国东部”编写的**

预计用时:30 分钟

实验室方案

你的组织的云足迹在过去一年里已大幅增长。 在最近的一次审核中,你发现大量资源没有定义所有者、项目或成本中心。 为了改进组织中 Azure 资源的管理,你决定实施以下功能:

  • 应用资源标记以将重要元数据附加到 Azure 资源

  • 使用 Azure 策略强制对新资源使用资源标记

  • 使用资源标记更新现有资源

  • 使用资源锁保护所配置的资源

交互式实验室模拟

你可能会发现几个交互式实验室模拟可用于本主题。 通过模拟,可按照自己的节奏点击浏览类似的方案。 交互式模拟与本实验室之间存在差异,但许多核心概念是相同的。 不需要 Azure 订阅。

  • 管理资源锁。 添加资源锁并测试以进行确认。

  • 创建 Azure 策略。 创建一个 Azure 策略,用以限制可以放置资源的位置。 创建一个新资源并确保强制实施该策略。

  • 通过 Azure 策略管理治理。 通过 Azure 门户创建和分配标记。 创建一个要求进行标记的 Azure 策略。 修正不符合要求的资源。

体系结构关系图

任务体系结构的示意图。

工作技能

  • 任务 1:通过 Azure 门户创建和分配标记。
  • 任务 2:通过 Azure 策略强制进行标记。
  • 任务 3:通过 Azure 策略应用标记。
  • 任务 4:配置并测试资源锁。

任务 1:通过 Azure 门户分配标记

在此任务中,你将通过 Azure 门户创建标记并将标记分配给 Azure 资源组。 标记是 Microsoft 架构设计良好的框架和云采用框架概述的治理策略的关键组成部分。 标记可以让你快速识别资源所有者、自动废止日期、组联系人以及你的组织认为重要的其他名称/值对。 对于此任务,你将分配一个标记来标识资源角色(“Infra”表示“Infrastructure”)。

  1. 登录 Azure 门户 - https://portal.azure.com

  2. 搜索并选择 Resource groups

  3. 从“资源组”中,选择“+ 创建”。**

    设置
    订阅名称 用户的订阅
    资源组名称 az104-rg2
    位置 美国东部

    注意: 对于本课程中的每个实验室,你都将创建新的资源组。 这样,你可以快速查找和管理实验室资源。

  4. 选择“下一页:** 标记”并创建一个新标记。

    设置
    名称 Cost Center
    000
  5. 选择“查看 + 创建”,然后选择“创建”。

任务 2:通过 Azure 策略强制实施标记。

在此任务中,你将向资源组分配内置的要求资源采用标记及其值策略并评估结果。 Azure 策略可用来强制实施配置,在本例中,可用来对你的 Azure 资源进行治理。

  1. 在 Azure 门户中,搜索并选择Policy

  2. 在“创作”边栏选项卡中,选择“定义”。**** 花一点时间浏览可供使用的内置策略定义列表。 注意,你还可以搜索定义。

    策略定义的屏幕截图。

  3. 单击表示“要求资源采用标记及其值”内置策略的条目。** 花点时间查看定义。

  4. 在“要求资源采用标记及其值”内置策略定义边栏选项卡中,单击“分配”。

  5. 通过单击省略号按钮指定“作用域”并选择以下值。** 完成后,单击“选择”。**

    设置
    订阅 用户的订阅
    资源组 ** az104-rg2

    注意:你可以在管理组、订阅或资源组级别分配策略。 你还可以指定排除项,例如个别订阅、资源组或资源。 在此场景中,我们希望对资源组中的所有资源进行标记。

  6. 通过指定以下设置(其他设置保留默认值)来配置分配的基本属性:

    设置
    分配名称 Require Cost Center tag with Default value
    说明 Require Cost Center tag with default value for all resources in the resource group
    策略强制执行 已启用

    注意:“分配名称”中自动填充了所选的策略名称,但可以更改它。 “说明”是可选的**。 请注意,你随时可以禁用策略。

  7. 单击“下一步”,并将“参数”设置为以下值:

    设置
    标记名称 Cost Center
    标记值 000
  8. 单击“下一步”,查看“修正”选项卡。保持“创建一个托管标识”复选框为未选中状态。

  9. 单击“查看 + 创建”,然后单击“创建”。

    注意:现在,你将尝试在资源组中创建一个 Azure 存储帐户,从而验证新策略分配是否已生效。 你将创建存储帐户,但不添加所需的标记。

    注意:策略生效可能需要 5 到 10 分钟。

  10. 在门户中,搜索并选择 Storage Account,然后选择“+ 创建”**

  11. 在“创建存储帐户”边栏选项卡的“基本信息”选项卡上,完成配置。****

    设置
    资源组 ** az104-rg2
    存储帐户名称 ** 3 到 24 个小写字母和数字的全局唯一组合,以字母开头
  12. 选择“查看”,然后单击“创建”。

  13. 你应收到一条说明验证失败的消息。 查看消息以确定失败原因。 验证该错误消息指出该策略不允许资源部署。

    “被策略禁用”错误的屏幕截图。

注意:通过单击“原始错误”选项卡,你可以找到有关错误的更多详细信息,包括角色定义的名称“要求存在值为 Default 的 Cost Center 标记”。**** 部署失败,因为你尝试创建的存储帐户没有名为“Cost Center”且值设为“Default”的标记。****

任务 3:通过 Azure Policy 应用标记

在此任务中,我们将使用新策略定义来修正所有不符合要求的资源。 在此场景中,我们将使资源组的任何子资源继承资源组上定义的“Cost Center”标记。**

  1. 在 Azure 门户中,搜索并选择Policy

  2. 在“创作”部分中,单击“分配”。

  3. 在分配列表中,单击表示“要求存在值为 Default 的 Cost Center 标记”策略分配的行中的省略号图标,然后使用“删除分配”菜单项删除分配****。

  4. 单击“分配策略”,通过单击省略号按钮并选择以下值指定“范围”:

    设置
    订阅 你的 Azure 订阅
    资源组 az104-rg2
  5. 要指定“策略定义”,请单击省略号按钮,然后搜索并选择 Inherit a tag from the resource group if missing**

  6. 选择“添加”,然后为分配配置剩余的“基本信息”属性。****

    设置
    分配名称 Inherit the Cost Center tag and its value 000 from the resource group if missing
    说明 Inherit the Cost Center tag and its value 000 from the resource group if missing
    策略强制执行 已启用
  7. 单击“下一步”两次,将“参数”设置为以下值 :

    设置
    标记名称 Cost Center
  8. 单击“下一步”,然后在“修正”选项卡上配置以下设置(其他设置保留默认值):

    设置
    创建修正任务 enabled
    待修正的策略 从资源组继承标记(如果缺少此标记)

    注意:此策略定义包括“修改”效果。 因此,需要一个托管标识。

    “策略修正”页面的屏幕截图。

  9. 单击“查看 + 创建”,然后单击“创建”。

    注意:若要验证新策略分配是否有效,你将在同一资源组中创建另一个 Azure 存储帐户,但不显式添加所需的标记。

    注意:策略生效可能需要 5 到 10 分钟。

  10. 搜索并选择 Storage Account,然后单击“+ 创建”。**

  11. 在“创建存储帐户”边栏选项卡的“基本信息”选项卡上,验证所用资源组是否已应用策略,指定以下设置(其他设置保留默认值),然后单击“查看” :

    设置
    存储帐户名称 ** 3 到 24 个小写字母和数字的全局唯一组合,以字母开头
  12. 验证这次验证是否通过,然后单击“创建”。

  13. 预配新存储帐户后,单击“转到资源”。**

  14. 在“标记”边栏选项卡上,请注意,值为“000”的“Cost Center”标记已自动分配给资源。****

    你知道吗?** 如果在门户中搜索并选择“标记”,则可以查看具有特定标记的资源。**

任务 4:配置并测试资源锁

在此任务中,你将配置并测试资源锁。 锁可防止资源被删除或修改。

  1. 搜索并选择你的资源组。

  2. 在“设置”边栏选项卡中,选择“锁”。****

  3. 选择“添加”并完成资源锁信息。** 完成后,选择“确定”**。

    设置
    锁名称 rg-lock
    锁类型 ** 删除(请注意只读选择项)
  4. 导航到资源组的“概述”边栏选项卡并选择“删除资源组”。****

  5. 在“输入资源组名称以确认删除”文本框中,提供资源组名称“az104-rg2”。** 请注意,你可以复制并粘贴资源组名称。

  6. 注意警告:删除此资源组及其依赖资源是永久性操作,且无法撤消。 选择“删除”。

  7. 你应该会收到一个拒绝删除通知。

    删除失败消息的屏幕截图。

    注意: 如果要删除资源组,则需要移除该锁。

清理资源

如果使用自己的订阅,需要一点时间删除实验室资源**。 这将确保资源得到释放,并将成本降至最低。 删除实验室资源的最简单方法是删除实验室资源组。

  • 在 Azure 门户中,选择资源组,选择“删除资源组”,输入资源组名称,然后单击“删除”****
  • Remove-AzResourceGroup -Name resourceGroupName(使用 Azure PowerShell)。
  • az group delete --name resourceGroupName(使用 CLI)。

使用 Copilot 扩展学习

Copilot 可帮助你了解如何使用 Azure 脚本工具。 Copilot 还可以帮助了解实验室中未涵盖的领域或需要更多信息的领域。 打开 Edge 浏览器并选择“Copilot”(右上角)或导航到copilot.microsoft.com。 花几分钟时间尝试这些提示。

  • 用于在资源组上添加和删除资源锁的 Azure PowerShell 和 CLI 命令是什么?
  • 以表格形式列出 Azure 策略和 Azure RBAC 之间的差异,并包括示例。
  • 强制执行 Azure 策略并修正不符合资源的步骤是什么?
  • 如何获取带有特定标记的 Azure 资源的报表?

通过自定进度的培训了解详细信息

  • 设计企业治理策略。 使用 RBAC 和 Azure Policy 来限制对 Azure 解决方案的访问,并确定哪种方法适合你的安全目标。

关键结论

恭喜你完成本实验室的内容。 下面是本实验室的主要内容。

  • Azure 标记是由键-值对组成的元数据。 标记描述环境中的特定资源。 尤其是,Azure 中的标记使你能够以逻辑方式标记资源。
  • Azure Policy 可为资源建立多种约定。 策略定义描述了资源符合性条件以及在满足某个条件时所产生的效果。 条件将资源属性字段或值与所需值进行比较。 有许多内置策略定义,并且你可以自定义策略。
  • Azure Policy 修正任务功能用于根据定义和分配使资源符合要求。 不符合修改或 deployIfNotExist 定义分配的资源,可以使用修正任务变为合规。
  • 你可以在订阅、资源组或资源上配置资源锁。 锁可以防止资源被用户意外删除和修改。 锁会替代任何用户权限。
  • Azure Policy 是一种部署前安全做法。 RBAC 和资源锁是部署后安全做法。