导出 Azure Policy 资源
本文介绍了如何导出现有的 Azure Policy 资源。 导出资源很有用,建议将其用于备份,而这也是云治理和处理策略即代码过程中的一个重要步骤。 可以通过 REST API、Azure CLI 和 Azure PowerShell 导出 Azure Policy 资源。
使用 Azure CLI 导出
Azure Policy 定义、计划和分配都可以使用 Azure CLI 导出为 JSON。 上述每条命令都使用一个 name
参数来指定要为哪个对象获取 JSON。 name
属性通常是 GUID,而不是对象的 displayName
。
- 定义 - az policy definition show。
- 计划 - az policy set-definition show。
- 分配 - az policy assignment show。
下面是一个示例,说明如何使用名称 f88a430f-115f-4d00-a92e-0badcd84d36e
获取策略定义的 JSON:
注意
可以使用以下 Azure CLI 命令检查所有策略定义的 Name
和 DisplayName
集合。
az policy definition list --query "[].{Name:name,DisplayName:displayName}" -o table
以下内容中有一个演示。
名称 | 显示名称 |
---|---|
f88a430f-115f-4d00-a92e-0badcd84d36e |
AKS-Monitoring-Addon |
az policy definition show --name 'f88a430f-115f-4d00-a92e-0badcd84d36e'
使用 Azure PowerShell 导出
Azure Policy 定义、计划和分配都可以使用 Azure PowerShell 导出为 JSON。 上述每个 cmdlet 都使用一个 Name
参数来指定要为哪个对象获取 JSON。 Name
属性通常是一个 GUID(全局唯一标识符),而不是对象的 displayName
。
- 定义 - Get-AzPolicyDefinition。
- 计划 - Get-AzPolicySetDefinition。
- 分配 - Get-AzPolicyAssignment。
以下示例演示如何获取名称(如前所述,是一个 GUID)为 f88a430f-115f-4d00-a92e-0badcd84d36e
的策略定义的 JSON:
注意
可以使用以下 Azure PowerShell cmdlet 检查所有策略定义的 Name
和 DisplayName
集合。
Get-AzPolicyDefinition | Select {$_.Name,$_.Properties.DisplayName}
以下内容中有一个演示。
名称 | 显示名称 |
---|---|
f88a430f-115f-4d00-a92e-0badcd84d36e |
AKS-Monitoring-Addon |
Get-AzPolicyDefinition -Name 'f88a430f-115f-4d00-a92e-0badcd84d36e' | ConvertTo-Json -Depth 10
在 Azure 门户中使用 Resource Graph 导出到 CSV
使用 Azure Resource Graph,可以通过复杂的筛选、分组和排序进行大规模查询。 Azure Resource Graph 支持策略资源表,其中包含策略资源,例如定义、分配和豁免。 请查看我们的示例查询。 Resource Graph 资源管理器门户体验允许使用下载到 CSV工具栏选项将查询结果下载到 CSV。
后续步骤
- 在 Azure Policy 示例中查看示例。
- 查看 Azure Policy 定义结构。
- 查看了解策略效果。
- 了解如何以编程方式创建策略。
- 了解如何修正不合规的资源。
- 参阅使用 Azure 管理组来组织资源,了解什么是管理组。