如何克隆 Azure 中的内置计划定义策略?
Posted
技术标签:
【中文标题】如何克隆 Azure 中的内置计划定义策略?【英文标题】:How to clone a built-in Initiative definition policy in Azure? 【发布时间】:2020-03-09 21:00:59 【问题描述】:我希望能够从内置的“[预览]:审核 NIST SP 800-53 R4 控制并部署特定的 VM 扩展以支持审核要求”倡议策略中添加/删除策略。
我在 Azure 控制台或 PowerShell 中看不到执行此操作的任何选项。我想避免手动添加 798 个单独的策略。
【问题讨论】:
【参考方案1】:根据我的测试,您可以使用该命令将策略导出到 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" '
注意:与内置集定义不同,自定义策略集定义中存在500
的限制,因此您需要将策略删除到至少500
,否则您会出错。如果您需要使用其他策略,您可以使用两个 json 文件创建两个集合定义。
创建集合定义后,您可以使用New-AzPolicyAssignment
或在门户中分配它。
【讨论】:
不确定我是否遗漏了什么。我将策略导出到definitions.json
,然后将策略分成两半以对抗 500 限制,但出现错误。 New-AzPolicySetDefinition:InvalidPolicySetDefinitionGroups:策略集定义“CustomNIST1”请求无效。引用了以下组名,但策略集中不存在:'NIST_SP_800-53_R4_IA-2(1),NIST_SP_800-53_R4_IA-2(2),NIST_SP_800-53_R4_SI-2,NIST_SP_800-53_R4_AC-4,....
@leeman24 您无法删除其他策略中引用的策略,您需要将它们放在同一个 json 文件中。以上是关于如何克隆 Azure 中的内置计划定义策略?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Azure 将不同的 HTML 嵌入到自定义和内置策略的自定义 UI 注册表单中?
如何使用 Terraform 在管理组范围上定义和分配 Azure 策略?