

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

# 为 S3 数据事件创建事件数据存储
<a name="tutorial-lake-S3"></a>

您可以创建事件数据存储来记录 CloudTrail 事件（管理事件、数据事件）、[CloudTrail Insights 事件](query-event-data-store-insights.md)、[AWS Audit Manager 证据](https://docs.aws.amazon.com/audit-manager/latest/userguide/evidence-finder.html#understanding-evidence-finder)、[AWS Config 配置项目](query-event-data-store-config.md)或[非AWS 事件](event-data-store-integration-events.md)。

在为数据事件创建事件数据存储时，可以选择要记录数据事件的 AWS 服务 和资源类型。有关 AWS 服务 该日志数据事件的信息，请参阅[数据事件](logging-data-events-with-cloudtrail.md#logging-data-events)。

本教练向您展示如何为 Amazon S3 数据事件创建事件数据存储。在本教程中，我们将选择自定义日志选择器模板来仅在从特定 S3 存储桶中删除对象时记录事件，而不记录所有 Amazon S3 数据事件。

**为 CloudTrail 数据事件创建事件数据存储**

1. 登录 AWS 管理控制台 并打开 CloudTrail 控制台，网址为[https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/)。

1.  在导航窗格中，在 **Lake** 下，选择**事件数据存储**。

1. 选择**创建事件数据存储**。

1. 在 “**配置事件数据存储**” 页面的 “**常规详细信息**” 中，为您的事件数据存储命名，例如*s3-data-events-eds*。作为最佳实践，请使用可快速识别事件数据存储用途的名称。有关 CloudTrail 命名要求的信息，请参见[CloudTrail 资源、S3 存储桶和 KMS 密钥的命名要求](cloudtrail-trail-naming-requirements.md)。

1. 选择您要用于事件数据存储的**定价选项**。定价选项决定了摄取和存储事件的成本，以及您的事件数据存储的默认和最长保留期。有关更多信息，请参阅 [AWS CloudTrail 定价](https://aws.amazon.com/cloudtrail/pricing/) 和[管理 CloudTrail 湖泊成本](cloudtrail-lake-manage-costs.md)。

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

1. 指定事件数据存储的保留期。**一年可延期保留定价**选项的保留期可以介于 7 天到 3653 天（大约 10 年）之间，**七年期保留定价**选项的保留期可以介于 7 天到 2557 天（约七年）之间。

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

1. （可选）在**加密**中，选择是否要使用自己的 KMS 密钥加密事件数据存储。默认情况下，事件数据存储中的所有事件都 CloudTrail 使用为您 AWS 拥有和管理的 KMS 密钥进行加密。

   要使用自己的 KMS 密钥进行加密，请选择**使用我自己的 AWS KMS key**。选择 “**新**建” 为您 AWS KMS key 创建，或选择 “**现有” 以使用现**有 KMS 密钥。在**输入 KMS 别**名中，按格式指定别名`alias/`*MyAliasName*。使用自己的 KMS 密钥需要您编辑 KMS 密钥策略以允许对 CloudTrail 日志进行加密和解密。有关更多信息，请参阅[为以下各项配置 AWS KMS 密钥策略 CloudTrail](create-kms-key-policy-for-cloudtrail.md)。 CloudTrail 还支持 AWS KMS 多区域密钥。有关多区域密钥的更多信息，请参阅 *AWS Key Management Service 开发人员指南*中的[使用多区域密钥](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。

   使用自己的 KMS 密钥会产生加密和解密 AWS KMS 费用。在将事件数据存储与 KMS 密钥关联后，将无法移除或更改 KMS 密钥。
**注意**  
要为组织事件数据存储启用 AWS Key Management Service 加密，必须使用管理账户的现有 KMS 密钥。

1. （可选）如果您想使用 Amazon Athena 对事件数据进行查询，请在 **Lake 查询联合身份验证**中选择**启用**。通过联合身份验证，您可以在 AWS Glue [数据目录](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro)中查看与事件数据存储相关的元数据，并在 Athena 中对事件数据运行 SQL 查询。存储在 AWS Glue 数据目录中的表元数据让 Athena 查询引擎知道如何查找、读取和处理您要查询的数据。有关更多信息，请参阅 [联合事件数据存储](query-federation.md)。

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

   1. 选择是要创建新角色还是使用现有 IAM 角色。[AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/how-it-works.html) 使用此角色管理联合事件数据存储的权限。使用 CloudTrail 控制台创建新角色时， CloudTrail 会自动创建一个具有所需权限的角色。如果您选择现有角色，请确保该角色的策略提供[所需的最低权限](query-federation.md#query-federation-permissions-role)。

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

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

1. （可选）选择**启用资源策略**以向您的事件数据存储添加基于资源的策略。基于资源的策略可让您控制哪些主体可以对您的事件数据存储执行操作。例如，您可以添加基于资源的策略，允许其他账户中的根用户查询此事件数据存储并查看查询结果。有关示例策略，请参阅 [事件数据存储的基于资源的策略示例](security_iam_resource-based-policy-examples.md#security_iam_resource-based-policy-examples-eds)。

   基于资源的策略包括一个或多个语句。策略中的每条语句都定义了支持或拒绝访问事件数据存储的[主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)以及主体可以对事件数据存储资源执行的操作。

   事件数据存储的基于资源的策略支持以下操作：
   +  `cloudtrail:StartQuery` 
   +  `cloudtrail:CancelQuery` 
   +  `cloudtrail:ListQueries` 
   +  `cloudtrail:DescribeQuery` 
   +  `cloudtrail:GetQueryResults` 
   +  `cloudtrail:GenerateQuery` 
   +  `cloudtrail:GenerateQueryResultsSummary` 
   +  `cloudtrail:GetEventDataStore` 

   对于[组织事件数据存储](cloudtrail-lake-organizations.md)， CloudTrail 创建[基于资源的默认策略，该策略](cloudtrail-lake-organizations.md#cloudtrail-lake-organizations-eds-rbp)列出了允许委派管理员帐户对组织事件数据存储执行的操作。此策略中的权限来自 AWS Organizations中的委派管理员权限。在组织事件数据存储或组织发生更改后（例如，注册或删除了 CloudTrail 委托管理员帐户），此策略会自动更新。

1. （可选）在**标签**中，将一个或多个自定义标签（键值对）添加到事件数据存储中。标签可以帮助您识别 CloudTrail 事件数据存储。例如，您可以附加名称为 **stage**、值为 **prod** 的标签。您可以使用标签来限制对事件数据存储的访问。您还可以使用标签来跟踪事件数据存储的查询和摄取成本。

   有关如何使用标签跟踪成本的信息，请参阅[为 CloudTrail Lake 事件数据存储创建用户定义的成本分配标签](cloudtrail-budgets-tools.md#cloudtrail-lake-manage-costs-tags)。有关如何使用 IAM 策略根据标签授权对事件数据存储的访问，请参阅[示例：拒绝基于标签创建或删除事件数据存储的访问权限](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-eds-tags)。有关如何在中使用标签的信息 AWS，请参阅《[标记 AWS 资源用户指南](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)*》中的为 AWS 资源添加标签*。

1.  选择**下一步**以配置事件数据存储。

1.  在**选择事件**页面上，保留**事件类型**的默认选择。  
![\[选择事件数据存储的事件类型\]](http://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/images/lake-event-type.png)

1. 对于**CloudTrail 事件**，选择**数据事件**并取消选择**管理事件**。有关数据事件的更多信息，请参阅 [记录数据事件](logging-data-events-with-cloudtrail.md)。  
![\[为事件 CloudTrail 数据存储选择数据事件\]](http://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/images/cloudtrail-events-data.png)

1. 保留**复制跟踪事件**的默认设置。您可以使用此选项将现有的跟踪事件复制到事件数据存储。有关更多信息，请参阅 [将跟踪事件复制到事件数据存储](cloudtrail-copy-trail-to-lake-eds.md)。

1. 如果这是组织事件数据存储，请选择**为我组织中的所有账户启用**。除非您在 AWS Organizations中配置了账户，否则此选项将不能进行更改。

1.  对于**其他设置**，请保留默认选择。默认情况下，事件数据存储会收集所有人的事件， AWS 区域 并在创建事件时开始摄取事件。

1. 对于**数据事件**，请进行下列选择：

   1. 在**资源类型**中，选择 **S3**。资源类型用于标识记录数据事件的 AWS 服务 和资源。

   1. 在**日志选择器模板**中，选择**自定义**。选择**自定义**可定义自定义事件选择器来按 `eventName`、`resources.ARN` 和 `readOnly` 字段进行筛选。有关这些字段的信息，请参阅 *AWS CloudTrail API 参考[AdvancedFieldSelector](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)*中的。

   1. （可选）在**选择器名称**中，输入用于标识选择器的名称。选择器名称是高级事件选择器的描述性名称，例如 “记录特定 S3 存储桶 DeleteObject 的 API 调用”。选择器名称在高级事件选择器中列为 `Name`，展开 **JSON 视图**即可查看该名称。  
![\[显示高级事件选择器的扩展 JSON 视图\]](http://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/images/json-view-selector-name.png)

   1. 在**高级事件选择器**中，我们将构建自定义事件选择器来按 `eventName` 和 `resources.ARN` 字段进行筛选。事件数据存储的高级事件选择器的工作方式与应用于跟踪记录的高级事件选择器相同。有关如何构建高级事件选择器的详细信息，请参阅[使用高级事件选择器记录数据事件](logging-data-events-with-cloudtrail.md#creating-data-event-selectors-advanced)。

      1. 对于**字段**，选择 **eventName**。对于**运算符**，选择 **equals**。对于**值**，请输入 **DeleteObject**。选择 **\$1 字段**以按其他字段进行筛选。

      1. 对于**字段**，选择 **resources.ARN**。对于 “**操作员**”，选择**StartsWith**。在**值**中，输入存储桶的 ARN（例如，arn: aws: s3::）。*amzn-s3-demo-bucket*有关如何获取 ARN 的信息，请参阅**《Amazon Simple Storage Service 用户指南》中的 [Amazon S3 资源](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html)。  
![\[S3 数据事件配置\]](http://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/images/eds-data-events.png)

1. 选择**下一步**以查看您的选择。

1. 在**查看并创建**页面上，审核您的选择。选择**编辑**以对这节进行更改。当您准备好创建事件数据存储时，选择**创建事件数据存储**。

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

   从现在开始，事件数据存储将捕获与其高级事件选择器匹配的事件。除非选择复制现有跟踪事件，否则在创建事件数据存储之前发生的事件不会出现在该事件数据存储中。

现在，您可以对事件数据存储运行查询。有关如何查看和运行示例查询的信息，请参阅 [使用 CloudTrail 控制台查看示例查询](lake-console-queries.md)。

有关 CloudTrail Lake 的更多信息，请参阅[与 L AWS CloudTrail ake 合作](cloudtrail-lake.md)。