了解策略
使用 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 的详细信息。