使用AWS Config自定义Guard策略筛选无标签EC2实例失败求助
修正AWS Config自定义Guard策略筛选无标签EC2实例
原策略的问题在于使用了%all_resources全局资源集合判断,导致所有EC2实例被作为一个整体评估,而非逐个检查,因此出现全合规或全不合规的错误结果。以下是修正后的策略:
rule instances_without_any_tags { # 匹配无标签或标签为空的EC2实例 Resources.Properties.Tags not exists OR Resources.Properties.Tags == [] }
关键调整说明
- 移除了不必要的
all_instances集合定义:当你在Config规则中指定资源类型为"AWS EC2 Instance"时,Guard会自动遍历每个EC2实例资源,无需额外定义集合。 - 改为单个实例级别的检查:规则会逐一判断每个实例的Tags属性——要么该属性完全不存在,要么Tags是一个空数组(部分场景下资源会返回空标签数组而非无此属性)。
- 规则判定逻辑:满足上述任一条件的实例会被标记为不合规(若需将无标签实例标记为合规,可将逻辑改为
Resources.Properties.Tags exists AND Resources.Properties.Tags != [])。
验证步骤
- 在AWS Config控制台创建规则时,确认资源类型选择"AWS EC2 Instance"。
- 触发规则评估后,带有效标签的实例会显示合规,无标签/标签为空的实例会显示不合规,符合实际资源状态。
内容的提问来源于stack exchange,提问作者Sarat Kota
相关产品推荐
相关产品推荐

