使用 AWS Config 高级查询根据创建日期查找 AWS 资源 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 AWS Config 高级查询根据创建日期查找 AWS 资源

创建者:Inna Saman (AWS)

环境:生产

技术:运营/操作;安全、身份、合规

Amazon Web Services:AWS Config;Amazon EBS;Amazon EC2;Amazon S3;AWS Lambda

Summary

此模式展示如何通过使用 AWS Config 高级查询功能,根据资源的创建日期查找 AWS 资源。

AWS Config 高级查询使用 SQL 子集来查询 AWS 资源的配置状态,以实现库存管理、运营智能、安全性和合规性。您可以使用这些查询在单个 Amazon Web Services account 和 AWS 区域或跨多个账户和区域查找 AWS 资源。通过运行使用该resourceCreationTime属性的查询,您可以根据具体的创建日期返回您的 AWS 资源列表。您可使用以下任一方法来运行 AWS config 高级查询:

  • AWS Config 控制台的 AWS Config 查询编辑器

  • AWS 命令行界面(AWS CLI)

此模式的其他信息部分中的示例查询返回在特定 60 天时间段内创建的 AWS 资源的列表。查询的输出包括有关每个已识别资源的以下信息:

  • 帐户 ID

  • 区域

  • 资源名称

  • 资源 ID

  • 资源类型

  • 标签

  • 创建时间

示例查询还显示了如何使用 "WHERE... IN" 语句将清单列表的范围限定为特定的资源类型。您可使用类似的查询来查找其他也适用于标签的 AWS 资源类型。

注意:要跨多个 Amazon Web Services account 和区域或 AWS Organizations 组织查询资源,必须使用 AWS Config 聚合器。有关更多信息,请参阅 AWS Config 开发人员指南中的多账户多区域数据聚合。全局资源仅记录在其所在区域。例如,AWS Identity and Access Management (IAM) 是一种全球资源,记录在 us-east-1(弗吉尼亚州北部区域)中。

先决条件和限制

先决条件

  • 一个或多个激活 AWS Config 的活跃 Amazon Web Services account,用于记录所有支持的资源类型(默认配置

  • (用于多账户、多区域查询)已激活的 AWS Config 聚合器

限制

  • AWS Config 高级查询结果采用分页形式。当您选择导出时,最多可以从 AWS 管理控制台 中导出 500 个结果。您还可以使用 API 每次检索多达 100 个分页结果。

  • AWS Config 高级查询使用具有其自身语法限制的 SQL 子集。有关更多信息,请参阅 AWS Config 开发人员指南中的查询 AWS 资源当前配置状态中的限制

工具

工具

  • AWS Config 提供 Amazon Web Services account 中资源及其配置方式的详细视图。它可以帮助您确定资源之间的关联方式,以及它们的配置如何随时间变化。

  • AWS 命令行界面(AWS CLI)是一种开源工具,它可帮助您通过命令行 Shell 中的命令与 Amazon Web Services 交互。

操作说明

任务描述所需技能
验证 AWS Config 是否支持您正在查询的资源。

有关 AWS Config 支持的 AWS 资源的完整列表,请参阅 AWS Config 开发人员指南中的支持的资源类型

云管理员
验证配置记录器是否已创建并且正在运行。

按照 AWS Config 开发人员指南中的管理配置记录器中的说明进行操作。

注意:AWS Config 会自动创建默认配置记录器,然后启动默认配置记录器。

云管理员
运行查询。

按照 AWS Config 开发人员指南中的使用 SQL 查询编辑器(控制台)查询使用 SQL 查询编辑器 (AWS CLI) 查询中的说明进行操作。

注意:如果您在运行 AWS CLI 命令时收到错误,请确保您使用的是最新 AWS CLI 版本

用于单个 Amazon Web Services account 以及区域查询

查询编辑器页面上的查询范围部分中,请确保选择仅此账户和区域

用于多账户和多区域查询

查询编辑器页面上的查询范围部分中,确保您创建并选择了 AWS Config 聚合器。有关更多信息,请参阅 AWS Config 开发人员指南中的多账户多区域数据聚合

如果跨多个账户或区域的查询不起作用,请按照 AWS Config 开发人员指南中的多账户多区域数据聚合疑难解答中的说明进行操作。

注意:要根据资源类型修改查询范围,请使用 WHERE resourceType IN (…) 构造。有关示例查询,请参阅其他信息部分中的 AWS Config 高级查询示例

云管理员

其他信息

AWS Config 高级查询示例

以下示例查询返回在特定 60 天时间段内创建的 AWS 资源的列表。有关更多 AWS Config 高级查询示例,请参阅 AWS Config 开发人员指南 中的示例查询

SELECT   accountId,   awsRegion,   resourceName,   resourceId,   resourceType,   resourceCreationTime,   tags WHERE   resourceType IN (     'AWS::CloudFormation::Stack',     'AWS::EC2::VPC',     'AWS::EC2::Volume',     'AWS::EC2::Instance',     'AWS::RDS::DBInstance',     'AWS::ElasticLoadBalancingV2::LoadBalancer',     'AWS::ServiceCatalog::CloudFormationProvisionedProduct',     'AWS::EC2::NetworkInterface',     'AWS::EC2::Subnet',     'AWS::EC2::SecurityGroup',     'AWS::AutoScaling::AutoScalingGroup',     'AWS::Lambda::Function',     'AWS::DynamoDB::Table',     'AWS::S3::Bucket'   )   AND resourceCreationTime BETWEEN '2022-05-23T00:00:00.000Z' AND '2022-07-23T17:59:51.000Z' ORDER BY   accountId ASC,   resourceType ASC

数据隐私和保护

AWS Config 在每个 AWS 区域分别激活。为了遵守监管要求,需要考虑一些特殊因素,例如创建单独的区域聚合器。有关更多信息,请参阅 AWS Config 开发人员指南中的 AWS Config 中的数据保护

IAM 权限

AWS_ AW ConfigRole S 托管策略是运行 AWS Config 高级查询所需的最低权限集。有关更多信息,请参阅 AWS Config 开发人员指南分配至 AWS Config 的 IAM 角色权限部分中的用于获取配置详细信息的 IAM 角色策略