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

时间:2020-03-09 21:00:59

标签: azure powershell azure-policy

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

我希望能够从内置的“ [预览]:审核NIST SP 800-53 R4控件并部署特定的VM Extensions以支持审核要求”的主动策略中添加/删除策略。

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

1 个答案:

答案 0 :(得分:0)

根据我的测试,您可以使用命令将策略导出到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文件中添加/删除策略,然后按照此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" }}'

enter image description here

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

enter image description here

创建集合定义后,可以使用New-AzPolicyAssignment或在门户网站中对其进行分配。