如何在 Azure 中克隆内置的 Initiative 定义策略?

How to clone a built-in Initiative definition policy in Azure?

如何在 Azure 中克隆内置计划定义策略?

我希望能够 add/remove 来自内置“[预览]:审核 NIST SP 800-53 R4 控件并部署特定 VM 扩展以支持审核要求”计划策略的策略。

我在 Azure 控制台或 PowerShell 中看不到执行此操作的任何选项。我想避免手动添加 798 个单独的策略。

根据我的测试,您可以使用该命令将策略导出到 json 文件。

$source = Get-AzPolicySetDefinition -Id "/providers/Microsoft.Authorization/policySetDefinitions/cf25b9c1-bd23-4eb6-bd2c-f4f3ac644a5f"
$source.Properties.policyDefinitions | ConvertTo-Json -Depth 3 | Out-File C:\Users\joyw\Desktop\definitions.json

您可以在 json 文件中 add/remove 策略,然后按照此 link 中的示例 2 创建新的自定义策略集定义。

示例:

New-AzPolicySetDefinition -Name "joytest123" -PolicyDefinition C:\Users\joyw\Desktop\definitions.json -Parameter '{ "logAnalyticsWorkspaceIdforVMReporting": { "type": "String" }, "listOfResourceTypesWithDiagnosticLogsEnabled": { "type": "Array" }, "listOfMembersToExcludeFromWindowsVMAdministratorsGroup": { "type": "String" }, "listOfMembersToIncludeInWindowsVMAdministratorsGroup": { "type": "String" }}'

注意:与内置的集合定义不同,自定义策略集合定义中有一个500限制,因此您需要删除策略以在至少500,否则会报错。如果您需要使用其他策略,您可以使用两个 json 文件创建两个集合定义。

创建集合定义后,您可以使用 New-AzPolicyAssignment 或在门户中分配它。