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

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

使用控制台为配置项目创建事件数据存储

您可以创建事件数据存储以包含 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 Config。 Amazon Systems Manager

注意

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 的几个示例查询 Amazon Config Amazon 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。选择 “建” 为您 Amazon KMS key 创建,或选择 “现有” 以使用现有 KMS 密钥。在输入 KMS 别名中,按格式指定别名alias/MyAliasName。使用自己的 KMS 密钥需要您编辑 KMS 密钥策略以允许对 CloudTrail日志进行加密和解密。有关更多信息,请参阅为以下各项配置 Amazon KMS 密钥策略 CloudTrail。 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 资源用户指南》中的为 Amazon 资源添加标签

  10. 选择下一步

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

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

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

  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
查找按 Amazon Config 资源类型、账户 ID 和地区分组的资源总数。
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;

有关创建和编辑查询的更多信息,请参阅使用 CloudTrail 控制台创建或编辑查询

配置项目架构

下表描述了与配置项目记录中的架构元素相匹配的必需和可选架构元素。的eventData内容由您的配置项目提供;其他字段由摄取 CloudTrail 后提供。

CloudTrail 中对事件记录内容进行了更详细的描述CloudTrail 录制内容

摄取 CloudTrail 后提供的字段
字段名称 输入类型 要求 描述
eventVersion 字符串 必需

Amazon 事件格式的版本。

eventCategory 字符串 必需

事件类别。对于配置项目,有效值为 ConfigurationItem

eventType 字符串 必需

事件类型。对于配置项目,有效值为 AwsConfigurationItem

eventID 字符串 必需

事件的唯一 ID。

eventTime

字符串

必需

采用通用协调时间(UTC)的事件时间戳,格式为 yyyy-MM-DDTHH:mm:ss

awsRegion 字符串 必需

Amazon Web Services 区域 要将事件分配给哪个。

recipientAccountId 字符串 必需

表示收到此事件的 Amazon Web Services 账户 ID。

附录

附录

可选

显示有关事件延迟原因的信息。如果现有事件中缺少信息,则附录块将包含缺失的信息,以及缺失信息的原因。

eventData 中的字段由您的配置项目提供
字段名称 输入类型 要求 描述
eventData

-

必需 eventData 中的字段由您的配置项目提供。
  • configurationItemVersion

字符串 可选

来自其来源的配置项目的版本。

  • configurationItemCapture时间

字符串 可选

开始配置记录的时间。

  • configurationItemStatus

字符串 可选

配置项目状态。有效值为 OKResourceDiscoveredResourceNotRecorded ResourceDeletedResourceDeletedNotRecorded

  • accountId

字符串 可选

与资源关联 Amazon Web Services 账户 的 12 位数字 ID。

  • resourceType

字符串 可选

Amazon 资源的类型。有关有效资源类型的更多信息,请参阅 Amazon Config API 参考ConfigurationItem中的。

  • resourceId

字符串 可选

资源的 ID(例如,sg-xxxxxx)。

  • resourceName

字符串 可选

资源的自定义名称(如果可用)。

  • arn

字符串 可选

与资源关联的 Amazon 资源名称(ARN)。

  • awsRegion

字符串

可选

资源 Amazon Web Services 区域 所在的位置。

  • availabilityZone

字符串

可选

与资源关联的可用区。

  • resourceCreationTime

字符串

可选

创建资源时的时间戳。

  • 配置

JSON

可选

资源配置的描述。

  • supplementaryConfiguration

JSON

可选

为某些资源类型 Amazon Config 返回的配置属性,用于补充为配置参数返回的信息。

  • relatedEvents

字符串

可选

CloudTrail 事件 ID 列表。

  • relationships

- 可选

相关 Amazon 资源列表。

    • name

字符串

可选

与相关资源的关系的类型。

    • resourceType

字符串

可选

相关资源的资源类型。

    • resourceId

字符串

可选

相关资源的 ID(例如,sg-xxxxxx)。

    • resourceName

字符串

可选

相关资源的自定义名称(如果可用)。

  • 标签

JSON

可选

与资源关联的键值标签的映射。

以下示例显示了与配置项目记录中的架构元素匹配的架构元素的层次结构。

{ "eventVersion": String, "eventCategory: String, "eventType": String, "eventID": String, "eventTime": String, "awsRegion": String, "recipientAccountId": String, "addendum": Addendum, "eventData": { "configurationItemVersion": String, "configurationItemCaptureTime": String, "configurationItemStatus": String, "configurationStateId": String, "accountId": String, "resourceType": String, "resourceId": String, "resourceName": String, "arn": String, "awsRegion": String, "availabilityZone": String, "resourceCreationTime": String, "configuration": { JSON, }, "supplementaryConfiguration": { JSON, }, "relatedEvents": [ String ], "relationships": [ struct{ "name" : String, "resourceType": String, "resourceId": String, "resourceName": String } ], "tags": { JSON } } } }