本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
查询的当前配置状态Amazon资源
您可以使用Amazon Config查询的当前配置状态Amazon资源基于单个账户和区域的配置属性或多个账户和区域的配置属性。您可以对当前进行临时的、基于属性的查询Amazon资源列表中的资源状态元数据Amazon Config支持。有关受支持的资源类型列表的更多信息,请参阅高级查询支持的资源类型
高级查询功能提供了单一查询终端节点和强大的查询语言以获得当前资源状态元数据,而无需执行特定于服务的描述 API 调用。您可以使用配置聚合器从一个中央账户跨多个账户运行相同的查询,Amazon区域。
Amazon Config 使用结构化查询语言 (SQL) SELECT
语法的一部分来对当前配置项 (CI) 数据执行基于属性的查询和聚合。查询的复杂程度从与标签和/或资源标识符的简单匹配到更复杂的查询(例如查看所有禁用版本控制的 Amazon S3 存储桶)不等。这允许您准确查询所需的当前资源状态,而无需执行Amazon特定服务的 API 调用。
您可以使用高级查询来实现:
-
库存管理;例如,检索特定大小的 Amazon EC2 实例列表。
-
安全和运营智能;例如,检索已启用或禁用特定配置属性的资源的列表。
-
成本优化;例如,确定未连接到任何 EC2 实例的 Amazon EBS 卷列表。
-
合规数据;例如,检索所有合规包及其合规状态的列表。
功能
查询语言支持查询Amazon基于所有 CI 属性的资源Amazon支持的资源类型Amazon Config,包括配置数据、标签和关系。它是 SQL SELECT
命令的一个子集,带有一些限制,如下一节中所述。它支持聚合函数,例如 AVG
、COUNT
、MAX
、MIN
和 SUM
。
注意
高级查询支持支持的资源类型的子集Amazon Config. 有关受支持的资源类型的列表,请参阅高级查询支持的资源类型
限制
作为 SQL SELECT
的一个子集,查询语法有以下限制:
-
不支持
ALL
,AS
,DISTINCT
,FROM
,HAVING
,JOIN
,以及UNION
查询中的关键字。NULL
不支持值查询。 -
不支持查询第三方资源。使用高级查询检索到的第三方资源将配置字段设置为
NULL
. -
不支持使用 SQL 查询解压缩嵌套结构(例如标签)。
-
CIDR 表示法转换为 IP 范围以供搜索。这意味着
"="
和"BETWEEN"
搜索包含所提供的 IP 的任何范围,而不是精确的 IP 范围。要搜索精确的 IP 范围,您需要添加其他条件以排除该范围之外的 IP。例如,若要搜索其 10.0//0//0/0/0/0/0/0/0/0/0/0/0/0/0/0/SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup' AND configuration.ipPermissions.ipRanges BETWEEN '10.0.0.0' AND '10.0.0.255' AND NOT configuration.ipPermissions.ipRanges < '10.0.0.0' AND NOT configuration.ipPermissions.ipRanges > '10.0.0.255'
对于 192.168.0.2/32,您可以使用类似的方式进行搜索:
SELECT * WHERE resourceType = 'AWS::EC2::SecurityGroup' AND configuration.ipPermissions.ipRanges = '192.168.0.2' AND NOT configuration.ipPermissions.ipRanges > '192.168.0.2' AND NOT configuration.ipPermissions.ipRanges < '192.168.0.2'
-
在查询对象数组中的多个属性时,将针对所有数组元素计算匹配项。例如,对于具有规则 A 和 B 的资源 R,该资源符合规则 A 但不符合规则 B。资源 R 存储为:
{ configRuleList: [ { configRuleName: 'A', complianceType: 'compliant' }, { configRuleName: 'B', complianceType: 'non_compliant' } ] }
R 将由以下查询返回:
SELECT configuration WHERE configuration.configRuleList.complianceType = 'non_compliant' AND configuration.configRuleList.configRuleName = 'A'
第一个条件
configuration.configRuleList.complianceType = 'non_compliant'
应用于 R 中的所有元素configRuleList,由于 R 有一条规则(规则 B),其中 ComplianceType = 'non_compliance',因此该条件被评估为真。第二个条件configuration.configRuleList.configRuleName
应用于 R 中的所有元素configRuleList,因为 R 有一条规则(规则 A) configRuleName= 'A',计算条件的结果将为 true。由于两个条件都成立,将返回 R。 -
针对所有列的
SELECT
简写形式(也就是SELECT *
)将仅选择 CI 的顶级标量属性。返回的标量属性为accountId
、awsRegion
、arn
、availabilityZone
、configurationItemCaptureTime
、resourceCreationTime
、resourceId
、resourceName
、resourceType
和version
。 -
通配符限制:
-
通配符仅支持属性值,但不支持属性键(例如支持
...WHERE someKey LIKE 'someValue%'
,但不支持...WHERE 'someKey%' LIKE 'someValue%'
)。 -
仅Support 后缀通配符(例如
...LIKE 'AWS::EC2::%'
和...LIKE 'AWS::EC2::_'
支持,但是...LIKE '%::EC2::Instance'
和...LIKE '_::EC2::Instance'
不支持)。 -
通配符匹配的长度必须至少为三个字符(例如
...LIKE 'ab%'
和...LIKE 'ab_'
不允许但是...LIKE 'abc%'
和...LIKE 'abc_'
允许)。
注意
那个”
_
“(单下划线)也被视为通配符。 -
-
聚合限制:
-
聚合函数仅可接受一个参数或属性。
-
聚合函数无法采用其他函数作为参数。
-
GROUP BY
用ORDER BY
引用聚合函数的子句可能只包含单个属性。 -
对于所有其他聚合
GROUP BY
子句最多可包含三个属性。 -
除以下情况外,所有聚合查询均支持分页
ORDER BY
子句具有聚合函数。例如,GROUP BY X, ORDER BY Y
如果不起作用Y
是一个聚合函数。 -
不支持聚合中的
HAVING
子句。
-
区域支持
以下区域支持高级查询:
区域名称 | 区域 | 端点 | 协议 |
---|---|---|---|
美国东部(俄亥俄州) | us-east-2 | config.us-east-2.amazonaws.com | HTTPS |
美国东部(弗吉尼亚州北部) | us-east-1 | config.us-east-1.amazonaws.com | HTTPS |
美国西部(北加利福尼亚) | us-west-1 | config.us-west-1.amazonaws.com | HTTPS |
美国西部(俄勒冈州) | us-west-2 | config.us-west-2.amazonaws.com | HTTPS |
非洲(开普敦) | af-south-1 | config.af-south-1.amazonaws.com | HTTPS |
亚太地区(香港) | ap-east-1 | config.ap-east-1.amazonaws.com | HTTPS |
亚太地区(孟买) | ap-south-1 | config.ap-south-1.amazonaws.com | HTTPS |
亚太地区(首尔) | ap-northeast-2 | config.ap-northeast-2.amazonaws.com | HTTPS |
亚太地区(新加坡) | ap-southeast-1 | config.ap-southeast-1.amazonaws.com | HTTPS |
Asia Pacific (Sydney) | ap-southeast-2 | config.ap-southeast-2.amazonaws.com | HTTPS |
亚太地区(东京) | ap-northeast-1 | config.ap-northeast-1.amazonaws.com | HTTPS |
Canada (Central) | ca-central-1 | config.ca-central-1.amazonaws.com | HTTPS |
中国(北京)* | cn-north-1 | config.cn-north-1.amazonaws.com.cn | HTTPS |
China (Ningxia)* | cn-northwest-1 | config.cn-northwest-1.amazonaws.com.cn | HTTPS |
欧洲(法兰克福) | eu-central-1 | config.eu-central-1.amazonaws.com | HTTPS |
Europe (Ireland) | eu-west-1 | config.eu-west-1.amazonaws.com | HTTPS |
欧洲(伦敦) | eu-west-2 | config.eu-west-2.amazonaws.com | HTTPS |
欧洲(米兰) | eu-south-1 | config.eu-south-1.amazonaws.com | HTTPS |
欧洲(巴黎) | eu-west-3 | config.eu-west-3.amazonaws.com | HTTPS |
欧洲(斯德哥尔摩) | eu-north-1 | config.eu-north-1.amazonaws.com | HTTPS |
中东(巴林) | me-south-1 | config.me-south-1.amazonaws.com | HTTPS |
South America (São Paulo) | sa-east-1 | config.sa-east-1.amazonaws.com | HTTPS |
Amazon GovCloud (美国东部) | us-gov-east-1 | 配置。us-gov-east-1.amazonaws.com | HTTPS |
Amazon GovCloud (美国西部) | us-gov-west-1 | 配置。us-gov-west-1.amazonaws.com | HTTPS |
*保存的查询不适用于中国(北京)和中国(宁夏)区域。
*多账户、多区域、高级查询不适用于中国(北京)和中国(宁夏)区域。