我正在编写 Azure Policy 以检查是否启用了混合使用优势。Microsoft 提供了一个内置策略,该策略将基于 Azure 平台上可用的映像产品针对所有虚拟机。但是,我订阅中的某些 VM 是基于迁移的 VM,因此与现有映像产品没有链接。
我找到了一篇博文(https://artisticcheese.wordpress.com/2019/07/04/proper-azure-policy-to-verify-azure-hybrid-benefit-enabled/),它解释了如何定位虚拟机基于配置的操作系统类型,而不是图像产品。
我从小处着手并创建了以下策略设置:
"if": {
"allOf":[
{
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
{
"field": "Microsoft.Compute/virtualMachines/storageProfile.osDisk.osType",
"equals": "Windows"
}
]
},
"then": {
"effect": "audit"
}
但是,这些设置将我的所有 Windows VM 显示为不符合以下结果:
不合规原因:
当前值不得等于目标值。
字段
Microsoft.Compute/virtualMachines/storageProfile.osDisk.osType
路径
properties.storageProfile.osDisk.osType
当前值
“Windows”
目标值
“Windows”
我在这里解释“等于”运算符是否错误?我原以为这会兼容所有基于 Windows 的虚拟机。