上次更新时间:2021 年 2 月 2 日
如何使用汇总资源或账户资源来解决 AWS Config 高级查询限制的错误?
解决方法通过高级查询,为您的用例使用以下解决方法。
注意:您必须拥有 SelectResourceConfig 和 SelectAggregateResourceConfig API 的权限才能使用高级查询。有关详细信息,请参阅使用 SQL 编辑器(控制台)进行查询。
Amazon EC2 实例操作系统版本高级查询无法获取所有 AWS 区域中在 Amazon 弹性计算云 (Amazon EC2) 实例中运行的所有操作系统的列表。要查看操作系统,请参阅如何找到我的 EC2 实例正在使用的操作系统平台或版本?
SQL 空值高级查询不支持 SQL 空值,您必须明确包含值。
您可以检索 Amazon EC2 实例的列表,其公有 IP 地址与 SQL BETWEEN 运算符的使用相关联,类似于以下内容:
SELECT
accountId,
resourceId,
configuration.publicDnsName,
configuration.publicIpAddress
WHERE
resourceType = 'AWS::EC2::Instance'
AND (
configuration.publicIpAddress BETWEEN '0.0.0.0'
AND '255.255.255.255'
OR configuration.ipv6Addresses BETWEEN '0:0:0:0:0:0:0:0'
AND 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'
)
嵌套数组查询
高级查询不支持嵌套数组查询。有关详细信息,请参阅高级查询限制。
1.作为解决方法,您可以使用类似于以下内容的自定义查询:
SELECT
configuration.targetResourceId,
configuration.targetResourceType,
configuration.complianceType,
configuration.configRuleList
WHERE
configuration.complianceType = 'NON_COMPLIANT'
AND configuration.configRuleList.configRuleName = 'required-tags'
2.然后,按照说明将输出导出为 JSON。
然后,您可以使用命令行 JSON 处理器 jq 来筛选和查询嵌套数组。有关更多信息和下载 jq,请参阅 JSON 输出格式。