0

我正在编写 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 的虚拟机。

4

1 回答 1

0

如果要将非 Windows 资源标记为不兼容,则必须将等于更改为不等于。因此,如果它不等于 Windows,那么它应该是不合规的,因此需要审核。

于 2020-04-10T21:27:17.803 回答