如何在Azure Policy中使用VM镜像ID?CIS市场镜像适配问题
Azure 内置VM代理策略适配CIS市场镜像问题
问题背景
Azure提供多项内置VM代理相关策略,通过deployIfNotExists效果实现代理安装与配置,典型示例包括:
- 配置Linux虚拟机运行Azure Monitor Agent并关联到数据收集规则
- 配置Windows虚拟机运行Azure Monitor Agent并关联到数据收集规则
我们环境仅使用市场中的CIS镜像,但这类虚拟机始终在策略评估中被忽略。这些内置策略都包含用于指定需纳入评估的镜像ID参数(如listOfWindowsImageIdToInclude或listOfLinuxImageIdToInclude),支持传入镜像ID数组。
问题现象
查看虚拟机的ImageReference属性时,imageId字段始终为空;尽管已从市场查询到对应CIS镜像的ID并添加到策略参数中,策略依然无法对这类虚拟机生效。
根因分析
所有内置策略通过以下逻辑判断是否纳入目标镜像:
"anyOf": [ { "field": "Microsoft.Compute/imageId", "in": "[parameters('listOfLinuxImageIdToInclude')]" }, ]
而市场中的CIS镜像的imageId字段为空,导致策略的匹配条件无法触发,最终虚拟机被排除在评估范围外。
内容的提问来源于stack exchange,提问作者user16896703
相关产品推荐
相关产品推荐

