为什么执行自定义规则后评估结果仍然是无数据?

更新时间:
复制 MD 格式

自定义规则被触发后,函数计算中的函数对资源进行评估,并调用配置审计的PutEvaluations接口,将评估结果返回给配置审计。当您执行自定义规则后,评估结果仍然显示为“无数据”的排查方法如下:

  • 通过操作审计排查

    通过操作审计控制台事件查询功能,查看PutEvaluations接口的调用事件。

    当您执行自定义规则后,如果存在PutEvaluations接口的调用记录,则说明规则执行成功,该规则无匹配资源;反之,说明规则执行失败。

    说明

    地域选择华东2(上海)

  • 通过函数计算排查

    如果您已启用函数的日志功能,则可以查看PutEvaluations接口的调用记录。关于如何启用函数的日志功能,请参见配置日志

    当您执行自定义规则后,请先在函数代码页签中打印日志,再在调用日志页签中查看PutEvaluations接口的调用记录。如果存在PutEvaluations接口的调用记录,则说明规则执行成功,该规则无匹配资源;反之,说明规则执行失败。

  • 排查条件规则的featurePath配置

    如果您使用的是条件规则(即创建规则时选择基于条件自定义),规则的featurePath通过JSONPath表达式从目标资源的配置信息中提取特定字段值,再与预期值进行比较。当featurePath指定的JSONPath在目标资源的配置中不存在对应节点或返回空时,评估结果显示为无数据。

    例如,您创建了一条条件规则检查安全组是否存在SourceCidrIp0.0.0.0/0的入方向规则,featurePath配置为$.Permissions.Permission[?(@.SourceCidrIp=='0.0.0.0/0')].SourceCidrIp。如果某个安全组的入方向规则中不存在SourceCidrIp0.0.0.0/0的条目,JSONPath过滤表达式返回空,该安全组的评估结果即为无数据;而存在该条目的安全组则显示为不合规。

    无数据不代表资源不合规,而是表示规则无法从该资源的配置信息中提取到用于比较的值。创建条件规则前,通过资源详情页或API确认目标资源的配置结构中包含featurePath所引用的字段。