本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用SQL查询编辑器进行查询 (AWS CLI)
AWS CLI 是一款用于管理您的 AWS 服务的统一工具。只需下载和配置一个工具,您就可以从命令行控制多项 AWS 服务,并使用脚本自动执行这些服务。有关 AWS CLI 和 AWS CLI 工具安装说明的更多信息,请参阅《AWS Command Line Interface 用户指南》中的以下内容。
如有必要,aws configure
请输入配置 AWS CLI 为使用提供高级查询的 AWS
区域。
注意事项
先决条件
如果您使用的是以下 AWS 托管策略之一,则您将拥有运行和保存查询所需的权限:AWSServiceRoleForConfig(服务相关角色)或AWS_ConfigRole。
否则,您必须拥有AWSConfigUserAccess AWS 托管策略中包含的权限。
您可以查询的属性列表
中提供了更新的属性及其数据类型列表GitHub
高级查询和聚合器
要在聚合器上运行查询,请创建聚合器。有关更多信息,请参阅 创建聚合器。
如果您已经设置了聚合器,则在查询范围中,选择聚合器以在该聚合器上运行高级查询。选择聚合器时,请考虑在查询语句中添加 AWS 账户 ID 和 AWS 区域,以便在结果中查看该信息。
查询资源配置数据
使用查询编辑器 (AWS CLI) 查询针对单个账户和区域的资源配置数据
-
打开命令提示符或终端窗口。
-
输入以下命令以查询您的资源配置数据。
aws configservice select-resource-config --expression "
SELECT resourceId WHERE resourceType='AWS::EC2::Instance'
"根据您的查询,输出将如下所示。
{ "QueryInfo": { "SelectFields": [ { "Name": "resourceId" } ] }, "Results": [ "{\"resourceId\":\"
ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}" ] }
使用查询编辑器 (AWS CLI) 查询针对多个账户和区域的资源配置数据
-
打开命令提示符或终端窗口。
-
输入以下命令以查询您的资源配置数据。
aws configservice select-aggregate-resource-config --expression "
SELECT resourceId WHERE resourceType='AWS::EC2::Instance'
" --configuration-aggregator-namemy-aggregator
根据您的查询,输出将如下所示。
{ "QueryInfo": { "SelectFields": [ { "Name": "resourceId" } ] }, "Results": [ "{\"resourceId\":\"
ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}", "{\"resourceId\":\"ResourceId
\"}" ] }注意
在高级查询中使用
AWS::IAM::User
AWS::IAM::Group
AWS::IAM::Role
、、和AWS::IAM::Policy
资源类型时,使用awsRegion = 'global'
。
保存查询
-
打开命令提示符或终端窗口。
-
输入以下命令以保存查询。
aws configservice put-stored-query --stored-query "{\"QueryName\": \"cli-test\", \"Expression\":
\"SELECT *\", \"Description\": \"cli test query\" }" --tags "[{ \"Key\": \"first-tag\", \"Value\": \"\" }, { \"Key\": \"second-tag\", \"Value\": \"non-empty-tag-value\" }]"
-
根据您的查询,输出将如下所示。
{ "QueryArn": "arn:aws:config:eu-central-1:
Account ID
:stored-query/cli-test/query-e65mijt4rmam5pab" }注意
--tags
为可选项。传递标签时,list-stored-queries
或get-stored-query
都不会返回保存的标签。必须使用list-tag-for-resources
检索已保存查询的相关标签。在创建或更新查询时,
--description
是可选的。
查看所有已保存的查询
-
输入以下命令以查看所有已保存查询的列表。
aws configservice list-stored-queries
-
根据您的查询,输出将如下所示。
{ "StoredQueryMetadata": [ { "QueryId": "query-e65mijt4rmam5pab", "QueryArn": "arn:aws:config:eu-central-1:
Account ID
:stored-query/cli-test/query-e65mijt4rmam5pab", "QueryName": "cli-test" }, { "QueryId": "query-rltwlewlqfivadxq", "QueryArn": "arn:aws:config:eu-central-1:Account ID
:stored-query/cli-test-2/query-rltwlewlqfivadxq", "QueryName": "cli-test-2", "Description": "cli test query" } ] } }
获取已保存的查询的详细信息
-
输入以下命令以获取已保存的特定查询的详细信息。
aws configservice get-stored-query --query-name cli-test
-
根据您的查询,输出将如下所示。
{ "StoredQuery": { "QueryId": "query-e65mijt4rmam5pab", "QueryArn": "arn:aws:config:eu-central-1:
Account ID
:stored-query/cli-test/query-e65mijt4rmam5pab", "QueryName": "cli-test", "Description": "cli test query", "Expression": "SELECT *" } }
删除已保存的查询
-
输入以下命令以删除您保存的查询。
aws configservice delete-stored-query --query-name cli-test
如果成功,则命令会运行,而没有附加输出。