了解策略

已完成

使用 Azure Policy 将策略应用到资源涉及以下大致步骤:

  • 策略定义。 创建策略定义。
  • 策略分配。 将定义分配给资源范围。
  • 修正。 查看策略评估结果并解决任何不合规问题。

策略定义

策略定义指定要评估的资源以及要对其执行的操作。 例如,可以防止 VM 在向公共 IP 地址公开的情况下进行部署。 还可以包含一个特定的硬盘,用于部署 VM,以控制成本。 策略是以 JavaScript 对象表示法 (JSON) 格式定义的。

下面的示例定义了一个策略,该策略限制了可部署资源的位置:

{
    "properties": {
        "mode": "all",
        "parameters": {
            "allowedLocations": {
                "type": "array",
                "metadata": {
                    "description": "The list of locations that can be specified when deploying resources",
                    "strongType": "location",
                    "displayName": "Allowed locations"
                }
            }
        },
        "displayName": "Allowed locations",
        "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
        "policyRule": {
            "if": {
                "not": {
                    "field": "location",
                    "in": "[parameters('allowedLocations')]"
                }
            },
            "then": {
                "effect": "deny"
            }
        }
    }
}

下面列出了示例策略定义:

  • 允许的存储帐户 SKU(拒绝):确定正在部署的存储帐户是否在 SKU 大小集内。 其效果是拒绝所有不符合定义的 SKU 大小集的存储帐户。
  • 允许的资源类型(拒绝):定义可以部署的资源类型。 其效果是拒绝所有不属于此定义列表的资源。
  • 允许的位置(拒绝):限制新资源的可用位置。 其效果是用于强制执行异地符合性要求。
  • 允许的虚拟机 SKU(拒绝):指定可以部署的虚拟机 SKU 集。
  • 将标记添加到资源(修改):如果部署请求未指定,则应用所需的标记及其默认值。
  • 不允许的资源类型(拒绝):禁止部署资源类型的列表。

策略分配

需要分配策略定义(无论是自定义还是内置)。

策略分配是指在特定作用域内分配策略定义。 作用域的范围涵盖管理组到资源组。

子资源将继承应用到其父资源的任何策略分配。

这意味着,如果将策略应用到资源组,则会将其用于该资源组内的所有资源。

但是,你可以定义子范围,以便从策略分配中排除资源。

可以通过以下方式分配策略:

  • Azure 门户。
  • Azure CLI。
  • PowerShell。

补救

发现资源未遵循 deployIfNotExists,或“修改”策略条件可通过修正设置为合规状态

修正指示 Azure Policy 运行 deployIfNotExists 效果或现有资源上的策略的标记操作

若要最大程度地减少配置偏移,可以使用自动批量修正来使资源保持合规性,而不是逐个修正。

可在 Azure Policy 网页上了解有关 Azure Policy 的详细信息。