

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

# 将跟踪事件复制到事件数据存储
<a name="cloudtrail-copy-trail-to-lake-eds"></a>

**注意**  
Amazon CloudTrail 从 2026 年 5 月 31 日起，Lake 将不再向新客户开放。如果您想使用 CloudTrail Lake，请在该日期之前注册。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [CloudTrail 湖泊可用性变更](cloudtrail-lake-service-availability-change.md)。

您可以将跟踪事件复制到 CloudTrail Lake 事件数据存储中，以创建记录到跟踪的事件的 point-in-time快照。复制跟踪的事件不会干扰跟踪记录事件的功能，也不会以任何方式修改跟踪。

您可以将跟踪事件复制到为事件配置的现有 CloudTrail 事件数据存储中，也可以创建新的 CloudTrail 事件数据存储并选择**复制跟踪事件**选项作为事件数据存储创建的一部分。有关将跟踪事件复制到现有事件数据存储的更多信息，请参阅[使用控制台将跟踪事件复制到现有事件数据存储](cloudtrail-copy-trail-events-lake.md)。有关创建新的事件数据存储的更多信息，请参阅[使用控制台为事件创建 CloudTrail 事件数据存储](query-event-data-store-cloudtrail.md)。

如果您要将跟踪事件复制到组织事件数据存储，则必须使用该组织的管理账户。您不能使用组织的委托管理员账户复制跟踪事件。

CloudTrail 湖泊事件数据存储会产生费用。创建事件数据存储时，您可以选择要用于事件数据存储的[定价选项](cloudtrail-lake-manage-costs.md#cloudtrail-lake-manage-costs-pricing-option)。定价选项决定了摄取和存储事件的成本，以及事件数据存储的默认和最长保留期。有关 CloudTrail 定价和管理 Lake 成本的信息，请参阅[Amazon CloudTrail 定价](https://www.amazonaws.cn/cloudtrail/pricing/)和[管理 CloudTrail 湖泊成本](cloudtrail-lake-manage-costs.md)。

将跟踪事件复制到 CloudTrail Lake 事件数据存储时，会根据事件数据存储提取的未压缩数据量产生费用。

将跟踪事件复制到 CloudTrail Lake 时， CloudTrail 解压缩以 gzip（压缩）格式存储的日志，然后将日志中包含的事件复制到您的事件数据存储中。未压缩数据的大小可能大于 S3 的实际存储大小。要对未压缩数据的大小进行总体估计，可以将 S3 存储桶中日志的大小乘以 10。

您可以通过为复制的事件指定更窄的时间范围来降低成本。如果您计划仅使用事件数据存储来查询复制的事件，则可以关闭事件摄取，以免对将来的事件产生费用。有关更多信息，请参阅 [Amazon CloudTrail 定价](https://www.amazonaws.cn/cloudtrail/pricing/)和[管理 CloudTrail 湖泊成本](cloudtrail-lake-manage-costs.md)。

**场景**

下表描述了复制跟踪事件的一些常见场景，以及如何使用控制台完成每个场景。


| 场景 | 如何在控制台中完成此操作？ | 
| --- | --- | 
| 无需摄取新事件即可分析和查询 CloudTrail Lake 中的历史轨迹事件 | 在创建事件数据存储时，创建[新的事件数据存储](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/query-event-data-store-cloudtrail.html#query-event-data-store-cloudtrail-procedure)并选择**复制跟踪事件**选项。创建事件数据存储时，请取消选择**摄取事件**（程序的步骤 15），以确保事件数据存储仅包含跟踪的历史事件，不包含未来事件。 | 
| 将现有跟踪替换为 CloudTrail Lake 事件数据存储 | 使用与您的跟踪相同的事件选择器创建事件数据存储，以确保事件数据存储与跟踪具有相同的覆盖范围。<br />为避免源跟踪和目标事件数据存储之间存在重复事件，请为复制的事件选择一个早于事件数据存储创建时间的时间范围。<br />创建事件存储后，您可以关闭跟踪的日志记录，避免产生额外费用。 | 

**Topics**
+ [复制跟踪事件的注意事项](#cloudtrail-trail-copy-considerations-lake)
+ [复制跟踪事件所需的权限](#copy-trail-events-permissions)
+ [使用控制台将跟踪事件复制到现有事件数据存储](cloudtrail-copy-trail-events-lake.md)
+ [使用控制台将跟踪事件复制到新的事件数据存储](scenario-lake-import.md)
+ [使用 CloudTrail 控制台查看活动副本详细信息](copy-trail-details.md)

## 复制跟踪事件的注意事项
<a name="cloudtrail-trail-copy-considerations-lake"></a>

复制跟踪事件时，请将以下因素考虑在内。
+  复制跟踪事件时， CloudTrail 使用 S3 [https://docs.amazonaws.cn/AmazonS3/latest/API/API_GetObject.html](https://docs.amazonaws.cn/AmazonS3/latest/API/API_GetObject.html)API 操作检索源 S3 存储桶中的跟踪事件。有些 S3 归档存储类，例如 S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive、S3 Outposts 和 S3 Intelligent-Tiering Deep Archive 层，无法使用 `GetObject` 来访问。要复制存储在这些归档存储类中的跟踪事件，必须先使用 S3 `RestoreObject` 操作还原副本。有关还原已归档的对象的信息，请参阅《Amazon S3 用户指南》**中的[恢复已归档的对象](https://docs.amazonaws.cn/AmazonS3/latest/userguide/restoring-objects.html)。
+  将跟踪事件复制到事件数据存储时， CloudTrail 无论目标事件数据存储的事件类型、高级事件选择器或 Amazon Web Services 区域的配置如何，都会复制所有跟踪事件。
+  在将跟踪事件复制到现有的事件数据存储之前，请确保根据您的应用场景适当配置了事件数据存储的定价选项和保留期。
  + **定价选项：**定价选项决定了摄取和存储事件的成本。有关定价选项的更多信息，请参阅 [Amazon CloudTrail 定价](https://www.amazonaws.cn/cloudtrail/pricing/)和[事件数据存储定价选项](cloudtrail-lake-manage-costs.md#cloudtrail-lake-manage-costs-pricing-option)。
  + **保留期：**保留期限决定事件数据在事件数据存储中保存多长时间。 CloudTrail 仅复制在事件数据存储保留期`eventTime`内的跟踪事件。要确定适当的保留期，请计算要复制的最早事件（以天为单位）和要在事件数据存储中保留这些事件的天数（**保留期** = {{oldest-event-in-days}} \+{{number-days-to-retain}}）的总和。例如，如果您要复制的最早事件已有 45 天，并且您想将事件在事件数据存储中再保留 45 天，则可以将保留期设置为 90 天。
+ 如果您要将跟踪事件复制到事件数据存储中进行调查，并且不想摄取任何未来事件，则可以停止对事件数据存储的摄取。创建事件数据存储时，请取消选择**摄取事件**选项（[程序](query-event-data-store-cloudtrail.md#query-event-data-store-cloudtrail-procedure)的步骤 15），以确保事件数据存储仅包含跟踪的历史事件，不包含未来事件。
+  在复制跟踪事件之前，请禁用附加到源 S3 存储桶的所有访问控制列表 (ACLs)，并更新目标事件数据存储的 S3 存储桶策略。有关更新 S3 存储桶策略的更多信息，请参阅[复制跟踪事件所用的 Amazon S3 存储桶策略](cloudtrail-copy-trail-to-lake.md#cloudtrail-copy-trail-events-permissions-s3)。有关禁用的更多信息 ACLs，请参阅[控制对象的所有权和禁 ACLs 用存储桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/about-object-ownership.html)。
+  CloudTrail 仅复制源 S3 存储桶中的 Gzip 压缩日志文件中的跟踪事件。 CloudTrail 不会从未压缩的日志文件或使用 Gzip 以外的格式压缩的日志文件中复制跟踪事件。
+  为避免源跟踪和目标事件数据存储之间存在重复事件，请为复制的事件选择一个早于事件数据存储创建时间的时间范围。
+  默认情况下， CloudTrail 仅复制 S3 存储桶`CloudTrail`前缀中包含 CloudTrail 的事件和`CloudTrail`前缀中的前缀，而不检查其他 Amazon 服务的前缀。如果要复制其他前缀中包含 CloudTrail 的事件，则必须在复制跟踪事件时选择前缀。
+  要将跟踪事件复制到组织事件数据存储，必须使用该组织的管理账户。您不能使用委托管理员账户将跟踪事件复制到组织事件数据存储。

## 复制跟踪事件所需的权限
<a name="copy-trail-events-permissions"></a>

在复制跟踪事件之前，请确保您拥有 IAM 角色所需的全部权限。如果您选择现有 IAM 角色来复制跟踪事件，则只需要更新 IAM 角色权限。如果您选择创建新的 IAM 角色，请为该角色 CloudTrail 提供所有必要的权限。

如果源 S3 存储桶使用 KMS 密钥进行数据加密，请确保 KMS 密钥策略 CloudTrail 允许解密存储桶中的数据。如果源 S3 存储桶使用多个 KMS 密钥，则必须更新每个密钥的策略 CloudTrail 以允许解密存储桶中的数据。

**Topics**
+ [复制跟踪事件所需的 IAM 权限](#copy-trail-events-permissions-iam)
+ [复制跟踪事件所用的 Amazon S3 存储桶策略](#copy-trail-events-permissions-s3)
+ [用于解密源 S3 存储桶中数据的 KMS 密钥政策](#copy-trail-events-permissions-kms)

### 复制跟踪事件所需的 IAM 权限
<a name="copy-trail-events-permissions-iam"></a>

复制跟踪事件时，您可以选择创建新的 IAM 角色，也可以使用现有 IAM 角色。当您选择新的 IAM 角色时， CloudTrail 会创建一个具有所需权限的 IAM 角色，您无需采取任何进一步的操作。

如果您选择现有角色，请确保 IAM 角色的策略 CloudTrail 允许从源 S3 存储桶复制跟踪事件。此部分提供所需 IAM 角色权限和信任策略的示例。

以下示例提供了权限策略，该策略 CloudTrail 允许从源 S3 存储桶复制跟踪事件。将{{amzn-s3-demo-bucket}}、{{myAccountID}}、{{region}}{{prefix}}、和{{eventDataStoreId}}，替换为适合您的配置的值。{{myAccountID}}是用于 CloudTrail Lake 的 Amazon 账户 ID，可能与 S3 存储桶的 Amazon 账户 ID 不同。

将{{key-region}}{{keyAccountID}}、和{{keyID}}替换为用于加密源 S3 存储桶的 KMS 密钥的值。如果源 S3 存储桶未使用 KMS 密钥进行加密，则可省略 `AWSCloudTrailImportKeyAccess` 语句。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AWSCloudTrailImportBucketAccess",
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:GetBucketAcl"],
      "Resource": [
        "arn:aws:s3:::{{amzn-s3-demo-bucket}}"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{myAccountID}}",
          "aws:SourceArn": "arn:aws:cloudtrail:{{region}}:{{myAccountID}}:eventdatastore/{{eventDataStoreId}}"
         }
       }
    },
    {
      "Sid": "AWSCloudTrailImportObjectAccess",
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": [
        "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{prefix}}",
        "arn:aws:s3:::{{amzn-s3-demo-bucket}}/{{prefix}}/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{myAccountID}}",
          "aws:SourceArn": "arn:aws:cloudtrail:{{region}}:{{myAccountID}}:eventdatastore/{{eventDataStoreId}}"
         }
       }
    },
    {
      "Sid": "AWSCloudTrailImportKeyAccess",
      "Effect": "Allow",
      "Action": ["kms:GenerateDataKey","kms:Decrypt"],
      "Resource": [
        "arn:aws:kms:{{key-region}}:{{keyAccountID}}:key/{{keyID}}"
      ]
    }
  ]
}
```

以下示例提供了 IAM 信任策略，该策略 CloudTrail 允许代入 IAM 角色从源 S3 存储桶复制跟踪事件。将{{myAccountID}}{{region}}、和，替换为{{eventDataStoreArn}}与您的配置对应的值。{{myAccountID}}是用于 CloudTrail Lake 的 Amazon Web Services 账户 ID，可能与 S3 存储桶的 Amazon 账户 ID 不同。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{myAccountID}}",
          "aws:SourceArn": "arn:aws:cloudtrail:{{region}}:{{myAccountID}}:eventdatastore/{{eventDataStoreId}}"
        }
      }
    }
  ]
}
```

### 复制跟踪事件所用的 Amazon S3 存储桶策略
<a name="copy-trail-events-permissions-s3"></a>

默认情况下，Amazon S3 存储桶和对象都是私有的。仅资源所有者（创建存储桶的 Amazon 账户）能够访问存储桶及其包含的对象。资源所有者可以通过编写访问策略来向其他资源和用户授予访问权。

在复制跟踪事件之前，必须更新 S3 存储桶策略 CloudTrail 以允许从源 S3 存储桶复制跟踪事件。

您可以将以下语句添加到 S3 存储桶策略，以授予这些权限。将{{roleArn}}和{{amzn-s3-demo-bucket}}替换为适合您的配置的值。

****

```
{
  "Sid": "AWSCloudTrailImportBucketAccess",
  "Effect": "Allow",
  "Action": [
    "s3:ListBucket",
    "s3:GetBucketAcl",
    "s3:GetObject"
  ],
  "Principal": {
    "AWS": "{{roleArn}}"
  },
  "Resource": [
    "arn:aws:s3:::{{amzn-s3-demo-bucket}}",
    "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
  ]
},
```

### 用于解密源 S3 存储桶中数据的 KMS 密钥政策
<a name="copy-trail-events-permissions-kms"></a>

如果源 S3 存储桶使用 KMS 密钥进行数据加密，请确保 KMS 密钥策略 CloudTrail 提供从启用了 SSE-KMS 加密的 S3 存储桶复制跟踪事件所需的`kms:Decrypt`和`kms:GenerateDataKey`权限。如果源 S3 存储桶使用多个 KMS 密钥，则必须更新每个密钥的策略。更新 KMS 密钥策略 CloudTrail 允许解密源 S3 存储桶中的数据，运行验证检查以确保事件符合 CloudTrail标准，并将事件复制到 CloudTrail Lake 事件数据存储中。

以下示例提供了 KMS 密钥策略，该策略 CloudTrail 允许解密源 S3 存储桶中的数据。将{{roleArn}}、{{amzn-s3-demo-bucket}}、{{myAccountID}}{{region}}、和{{eventDataStoreId}}，替换为适合您的配置的值。{{myAccountID}}是用于 CloudTrail Lake 的 Amazon 账户 ID，可能与 S3 存储桶的 Amazon 账户 ID 不同。

```
{
  "Sid": "AWSCloudTrailImportDecrypt",
  "Effect": "Allow",
  "Action": [
          "kms:Decrypt",
          "kms:GenerateDataKey"
  ],
  "Principal": {
    "AWS": "{{roleArn}}"
  },
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::{{amzn-s3-demo-bucket}}/*"
    },
    "StringEquals": {
      "aws:SourceAccount": "{{myAccountID}}",
      "aws:SourceArn": "arn:aws:cloudtrail:{{region}}:{{myAccountID}}:eventdatastore/{{eventDataStoreId}}"
    }
  }
}
```