使用 ARM 模板创建策略分配以识别不合规的资源

若要了解 Azure 中的符合性,第一步是确定资源的状态。 本快速入门逐步讲解如何使用 Azure 资源管理器模板(ARM 模板)创建策略分配,以识别未使用托管磁盘的虚拟机。 此过程结束时,你可以成功识别哪些虚拟机未使用托管磁盘。 这些虚拟机不符合策略分配要求。

ARM 模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 该模板使用声明性语法,使你可以声明要部署的内容,而不需要编写一系列编程命令来进行创建。

如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。

部署用于将 Azure Policy 分配给 Azure 的 ARM 模板的按钮。

先决条件

如果没有 Azure 订阅,请在开始前创建一个试用版订阅帐户。

查看模板

在本快速入门中,我们将创建一个策略分配,并分配一个名为“审核不使用托管磁盘的 VM”的内置策略定义。 有关可用内置策略的部分列表,请参阅 Azure Policy 示例

本快速入门中使用的模板来自 Azure 快速启动模板

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "policyAssignmentName": {
      "type": "string",
      "defaultValue": "[guid(parameters('policyDefinitionID'), resourceGroup().name)]",
      "metadata": {
        "description": "Specifies the name of the policy assignment, can be used defined or an idempotent name as the defaultValue provides."
      }
    },
    "policyDefinitionID": {
      "type": "string",
      "metadata": {
        "description": "Specifies the ID of the policy definition or policy set definition being assigned."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "[parameters('policyAssignmentName')]",
      "apiVersion": "2019-09-01",
      "properties": {
        "scope": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', resourceGroup().name)]",
        "policyDefinitionId": "[parameters('policyDefinitionID')]"
      }
    }
  ]
}

该模板中定义了以下资源:

部署模板

备注

Azure Policy 服务是免费的。 有关详细信息,请参阅 Azure Policy 概述

  1. 选择下图登录到 Azure 门户并打开模板:

    部署用于将 Azure Policy 分配给 Azure 的 ARM 模板的按钮。

  2. 选择或输入以下值:

    名称
    订阅 选择 Azure 订阅。
    资源组 选择“新建”,指定名称,然后选择“确定”。 在屏幕截图中,资源组名称为 mypolicyquickstart<Date in MMDD>rg
    位置 选择区域。 例如,中国北部
    策略分配名称 指定策略分配名称。 如果需要,可以使用策略定义显示名称。 例如,“审核不使用托管磁盘的 VM”。
    资源组名称 指定要将策略分配到的资源组名称。 本快速入门使用默认值 [resourceGroup().name]resourceGroup() 是检索资源组的模板函数。
    策略定义 ID 指定 /providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a
    我同意上述条款和条件 (选择)
  3. 选择“购买”。

其他某些资源:

验证部署

选择页面左侧的“符合性”。 然后找到所创建的“审核未使用托管磁盘的 VM”策略分配。

“策略符合性”页上符合性详细信息的屏幕截图。

如果存在与此新分配不相符的任何现有资源,这些资源会在“不符合的资源”下显示。

有关详细信息,请参阅合规工作原理

清理资源

删除创建的分配,请执行以下步骤:

  1. 选择“Azure Policy”页面左侧中的“符合性”(或“分配”)并找到你创建的“审核未使用托管磁盘的 VM”策略分配。

  2. 右键单击“审核不使用托管磁盘的 VM”策略分配并选择“删除分配”。

    使用上下文菜单从“符合性”页中删除分配的屏幕截图。

后续步骤

在本快速入门中,我们在某个范围分配了一个内置策略定义并评估了其合规性报告。 策略定义可验证范围内的所有资源都符合策略,并可标识不符合策略的资源。

要了解有关分配策略以验证新资源是否符合要求的详细信息,请继续以下教程: