为 Amazon Config 配置项目创建事件数据存储 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 Amazon Config 配置项目创建事件数据存储

您可以创建事件数据存储以包含 Amazon Config 配置项目,并使用事件数据存储来调查对生产环境的不合规更改。通过事件数据存储,您可以将不合规的规则与跟更改相关的用户和资源关联起来。配置项目表示您的账户中存在的受支持Amazon资源的属性的 point-in-time 视图。 Amazon Config每当它检测到正在记录的资源类型发生变化时,都会创建一个配置项目。 Amazon Config还会在捕获配置快照时创建配置项目。

您可以同时使用Amazon Config和 CloudTrail Lake 来对您的配置项目运行查询。您可以使用 Amazon Config 基于单个 Amazon Web Services 账户 和 Amazon Web Services 区域 的配置属性或跨多个账户和区域的配置属性来查询 Amazon 资源的当前配置状态。相比之下,您可以使用 CloudTrail Lake 跨不同的数据源进行查询,例如 CloudTrail 事件、配置项目和规则评估。 CloudTrail Lake 查询涵盖所有Amazon Config配置项目,包括资源配置和合规性历史记录。

为配置项目创建事件数据存储不会影响现有的 Amazon Config 高级查询,或任何已配置的 Amazon Config 聚合器。您可以使用 Amazon Config 继续使用运行高级查询,以及使用 Amazon Config 继续将历史记录文件传送到您的 S3 桶。

CloudTrail 湖泊事件数据存储会产生费用。创建事件数据存储时,您可以选择要用于事件数据存储的定价选项。定价选项决定了摄取和存储事件的成本,以及事件数据存储的默认和最长保留期。有关 CloudTrail 定价和管理 Lake 成本的信息,请参阅Amazon CloudTrail定价管理 CloudTrail 湖泊成本

限制

以下限制适用于配置项目的事件数据存储。

  • 不支持自定义配置项目

  • 不支持使用高级事件选择器筛选事件

先决条件

在创建事件数据存储之前,请为所有账户和区域设置 Amazon Config 记录。您可以使用 Amazon Systems Manager 的 Quick Setup(快速设置)功能,快速创建由 Amazon Config 支持的配置记录器。

注意

当 Amazon Config 开始记录配置时,我们就会向您收取服务使用费。有关定价的更多信息,请参阅 Amazon Config 定价。有关管理配置记录器的信息,请参阅《Amazon Config 开发人员指南》中的管理配置记录器

此外,建议执行以下操作,但这些操作不是创建事件数据存储所必需的。

  • 设置 Amazon S3 桶以接收配置快照(按需)和配置历史记录。有关快照的更多信息,请参阅《Amazon Config 开发人员指南》中的 Managing the Delivery Channel(管理传送通道)和 Delivering Configuration Snapshot to an Amazon S3 Bucket(将配置快照传送到 Amazon S3 桶)。

  • 指定您希望 Amazon Config 评估所记录资源类型的合规性信息使用的规则。 CloudTrail Lake 的几个 Lake 示例查询Amazon ConfigAmazon Config 规则需要评估Amazon资源的合规性状态。有关 Amazon Config 规则 的更多信息,请参阅《Amazon Config 开发人员指南》中的使用 Amazon Config 规则 评估资源

为配置项目创建事件数据存储

  1. 登录Amazon Web Services Management Console并打开 CloudTrail 控制台,网址为 https://console.aws.amazon.com/cloudtrail/

  2. 在导航窗格中,在 Lake 下,选择事件数据存储

  3. 选择 Create event data store(创建事件数据存储)。

  4. Configure event data store(配置事件数据存储)页面上的 General details(一般细节)中,输入事件数据存储的名称。名称为必填项。

  5. 选择您要用于事件数据存储的定价选项。定价选项决定了摄取和存储事件的成本,以及您的事件数据存储的默认和最长保留期。有关更多信息,请参阅 Amazon CloudTrail 定价管理 CloudTrail 湖泊成本

    可用选项如下:

    • 一年可延期保留定价 - 如果您希望每月摄取的事件数据少于 25TB,并且想要灵活的保留期(最长 10 年),一般建议采用此选项。在前 366 天(默认保留期)内,存储包含在摄取定价中,没有额外收费。366 天后,可以按 pay-as-you-go 定价延长保留期。这是默认选项。

      • 默认保留期:366 天

      • 最长保留期:3653 天

    • 七年期保留定价 - 如果您希望每月摄取的事件数据大于 25TB,并且需要最长 7 年的保留期,则建议采用此选项。保留包含在摄取定价中,没有额外费用。

      • 默认保留期:2557 天

      • 最长保留期:2557 天

  6. 指定事件数据存储的保留期。一年可延期保留定价选项的保留期可以介于 7 天到 3653 天(大约 10 年)之间,七年期保留定价选项的保留期可以介于 7 天到 2557 天(约七年)之间。

    CloudTrail Lake 通过检查事件是否在eventTime指定的保留期内来确定是否保留该事件。例如,如果您将保留期指定为 90 天,eventTime则 CloudTrail 会删除超过 90 天的事件。

  7. (可选)要启用使用 Amazon Key Management Service 的加密,请选择使用我自己的 Amazon KMS key。选择 New(新建)将为您创建 Amazon KMS key,选择 Existing(现有)将使用现有 KMS 密钥。在输入 KMS 别名中,按格式指定别名alias/MyAliasName。使用自己的 KMS 密钥需要您编辑 KMS 密钥策略以允许对 CloudTrail日志进行加密和解密。有关更多信息,请参阅为 CloudTrail 配置 Amazon KMS 密钥策略。 CloudTrail 还支持Amazon KMS多区域密钥。有关多区域密钥的更多信息,请参阅 Amazon Key Management Service 开发人员指南中的使用多区域密钥

    使用您自己的 KMS 密钥将产生用于加密和解密的 Amazon KMS 费用。在将事件数据存储与 KMS 密钥关联后,将无法移除或更改 KMS 密钥。

    注意

    要为组织事件数据存储启用 Amazon Key Management Service 加密,必须使用管理账户的现有 KMS 密钥。

  8. (可选)如果您想使用 Amazon Athena 对事件数据进行查询,请在 Lake 查询联合身份验证中选择启用。通过联合身份验证,您可以在 Amazon Glue 数据目录中查看与事件数据存储相关的元数据,并在 Athena 中对事件数据运行 SQL 查询。通过存储在 Amazon Glue 数据目录中的表元数据,Athena 查询引擎可以了解如何查找、读取和处理您要查询的数据。有关更多信息,请参阅 联合事件数据存储

    要启用 Lake 查询联合身份验证,请选择启用,然后执行以下操作:

    1. 选择是要创建新角色还是使用现有 IAM 角色。Amazon Lake Formation 使用此角色管理联合事件数据存储的权限。使用 CloudTrail 控制台创建新角色时, CloudTrail 会自动创建一个具有所需权限的角色。如果您选择现有角色,请确保该角色的策略提供所需的最低权限

    2. 如果您在创建新角色,请输入名称来标识该角色。

    3. 如果您使用现有角色,请选择要使用的角色。角色必须存在于您的账户中。

  9. (可选)在 Tags(标签)部分中,您最多可以添加 50 个标签键对,以帮助您对事件数据存储的访问进行识别、排序和控制。要详细了解如何使用 IAM 策略以根据标签授权对事件数据存储的访问,请参阅示例:拒绝基于标签创建或删除事件数据存储的访问权限。有关如何在 Amazon 中使用标签的更多信息,请参阅《Amazon Web Services 一般参考》中的 Tagging Amazon resources

  10. 请选择 Next(下一步)

  11. 选择事件页面上,选择 Amazon 事件,然后选择配置项目

  12. CloudTrail 将事件数据存储资源存储在您创建该资源的区域中,但默认情况下,在数据存储中收集的配置项目来自您账户中所有启用了录制的区域。(可选)您可以选择 Include only the current region in my event data store(在我的事件数据存储中仅包含当前区域),以便仅包含在当前区域中捕获的配置项目。如果不选择此选项,则您的事件数据存储将包含所有已启用记录的所在区域中的配置项目。

  13. 要让您的事件数据存储收集 Amazon Organizations 组织中所有账户中的配置项目,请选择 Enable for all accounts in my organization(为我的组织中的所有账户启用)。您必须登录到组织的管理账户或委托管理员账户,才能创建为组织收集配置项目的事件数据存储。

  14. 选择 Next(下一步)以查看您的选择。

  15. Review and create(审核和重建)页面上,审核您的选择。选择 Edit(编辑)以对这节进行更改。当您准备好创建事件数据存储时,选择 Create event data store(创建事件数据存储)。

  16. 事件数据存储页面上的事件数据存储表中可以看到新的事件数据存储。

    从此时开始,事件数据存储将捕获配置项目。在创建事件数据存储之前出现的配置项目不会在该事件数据存储中。

示例查询

现在,您可以对新的事件数据存储运行查询。 CloudTrail 控制台上的 “示例查询” 选项卡提供了示例查询供您入门。以下是一些可以针对配置项目事件数据存储运行的示例查询。

描述 查询
通过将配置项目事件数据存储加入事件数据存储,找出哪位用户执行了导致不合规状态的 CloudTrail 操作。
SELECT element_at(config1.eventData.configuration, 'targetResourceId') as targetResourceId, element_at(config1.eventData.configuration, 'complianceType') as complianceType, config2.eventData.resourceType, cloudtrail.userIdentity FROM config_event_data_store_ID as config1 JOIN config_event_data_store_ID as config2 on element_at(config1.eventData.configuration, 'targetResourceId') = config2.eventData.resourceId JOIN cloudtrail_event_data_store_ID as cloudtrail on config2.eventData.arn = element_at(cloudtrail.resources, 1).arn WHERE element_at(config1.eventData.configuration, 'configRuleList') is not null AND element_at(config1.eventData.configuration, 'complianceType') = 'NON_COMPLIANT' AND cloudtrail.eventTime > '2022-11-14 00:00:00' AND config2.eventData.resourceType = 'AWS::DynamoDB::Table'
查找所有 Amazon Config 规则,并返回过去一天内生成的配置项目中的合规性状态。
SELECT eventData.configuration, eventData.accountId, eventData.awsRegion, eventData.resourceName, eventData.resourceCreationTime, element_at(eventData.configuration,'complianceType') AS complianceType, element_at(eventData.configuration, 'configRuleList') AS configRuleList, element_at(eventData.configuration, 'resourceId') AS resourceId, element_at(eventData.configuration, 'resourceType') AS resourceType FROM config_event_data_store_ID WHERE eventData.resourceType = 'AWS::Config::ResourceCompliance' AND eventTime > '2022-11-22 00:00:00' ORDER BY eventData.resourceCreationTime DESC limit 10
查找按资源类型、账户 ID 和区域分组的 Amazon Config 资源总数。
SELECT eventData.resourceType, eventData.awsRegion, eventData.accountId, COUNT (*) AS resourceCount FROM config_event_data_store_ID WHERE eventTime > '2022-11-22 00:00:00' GROUP BY eventData.resourceType, eventData.awsRegion, eventData.accountId
查找在特定日期生成的所有 Amazon Config 配置项目的资源创建时间。
SELECT eventData.configuration, eventData.accountId, eventData.awsRegion, eventData.resourceId, eventData.resourceName, eventData.resourceType, eventData.availabilityZone, eventData.resourceCreationTime FROM config_event_data_store_ID WHERE eventTime > '2022-11-16 00:00:00' AND eventTime < '2022-11-17 00:00:00' ORDER BY eventData.resourceCreationTime DESC limit 10;

有关创建和编辑查询的更多信息,请参阅创建或编辑查询