Azure Policy定义评估异常:Recovery Services Vault合规性审计问题
Azure Policy 修正指南:Recovery Services Vault 软删除合规审计
问题分析
你遇到的误判问题,大概率是Policy规则中的属性路径错误或逻辑条件逻辑错误导致的。Recovery Services Vault的软删除配置属性路径和数据类型有明确规范,以下是修正后的正确规则及常见错误说明。
正确的Policy规则定义
{ "mode": "Indexed", "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.RecoveryServices/vaults" }, { "anyOf": [ { "field": "properties.softDeleteSettings.state", "notEquals": "Enabled" }, { "field": "properties.softDeleteSettings.retentionPeriodInDays", "notEquals": 14 } ] } ] }, "then": { "effect": "Audit" } }, "parameters": {} }
关键修正点
- 属性路径修正:
Azure资源模型中,软删除状态的正确路径是properties.softDeleteSettings.state,保留天数是properties.softDeleteSettings.retentionPeriodInDays。你提到的softDeleteRetentionPeriodInDays是错误的属性名,这会导致Policy无法正确读取配置值。 - 逻辑条件修正:
用allOf确保仅针对Recovery Services Vault进行评估;用anyOf包裹两个不合规条件——只要软删除未启用 或 保留天数不是14天,就触发审计。如果之前误用allOf包裹这两个条件,会导致只有两个条件同时不满足才会被标记,与需求不符。 - 数据类型匹配:
retentionPeriodInDays是数值类型,直接写14而非字符串"14",字符串比较会导致已配置14天的Vault被误判为不合规。
常见错误排查
- 检查属性路径是否完全匹配资源模型:可通过Azure资源管理器查看目标Vault的JSON定义,确认软删除配置的属性结构。
- 验证逻辑运算符:确保不合规条件用
anyOf组合,避免逻辑反向。 - 测试规则:使用Azure门户的Policy测试功能,选择已正确配置的Vault,实时查看评估结果,快速定位问题。
内容的提问来源于stack exchange,提问作者Vegas588
相关产品推荐
相关产品推荐

