如何完整复制含元数据的Azure Policy NIST SP 800 171策略定义?
如何完整复制Azure Policy中NIST SP 800-171 R2的策略定义及元数据
核心问题在于门户的「复制」功能和默认CLI操作只会提取策略规则逻辑,不会完整保留原策略计划的层级元数据(比如3.1 访问控制 -> 3.1.1 限制系统访问的嵌套结构)。要实现完整复制,需通过导出原计划完整JSON→修改自定义→重新导入的流程操作:
步骤1:导出原NIST策略计划的完整JSON
- CLI方式:执行命令导出包含全部元数据的计划文件
az policy set-definition show --name "NIST SP 800-171 R2" --subscription <你的订阅ID> --output json > nist-original.json - 门户方式:进入NIST SP 800-171 R2策略计划详情页,点击「导出」按钮,选择JSON格式下载,直接获取完整元数据文件。
步骤2:修改JSON创建自定义版本
打开导出的nist-original.json,做以下修改:
- 修改
name为自定义唯一标识(如Eval-Custom-NIST-SP-800-171-R2),displayName改为你的自定义显示名(如Eval Custom NIST SP 800) - 保留
metadata.categories和每个策略定义的metadata字段,确保原有的层级分类(如3.1 访问控制、3.1.1 限制系统访问)完整不变 - 若只需复制部分策略,直接从原JSON中提取对应策略定义的完整内容(包含元数据),不要单独复制门户里的规则片段
步骤3:导入自定义策略计划
- CLI方式:执行命令导入修改后的JSON
az policy set-definition create --name "Eval-Custom-NIST-SP-800-171-R2" --subscription <你的订阅ID> --definition @nist-custom.json - 门户方式:进入「策略定义」页面,点击「创建」→「自定义策略定义」,选择「策略计划」类型,将修改后的JSON粘贴到「定义」文本框,填写基本信息后保存。
注意事项
- 不要使用门户的单个策略「复制」按钮,该操作会丢失层级元数据
- 导入前校验JSON格式合法性,避免语法错误导致导入失败
- 如需调整策略规则,仅修改
policyRule字段,不要改动metadata中的层级结构内容
内容的提问来源于stack exchange,提问作者Juan
相关产品推荐
相关产品推荐

