将跟踪事件复制到事件数据存储 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将跟踪事件复制到事件数据存储

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

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

在将跟踪事件复制到 CloudTrail Lake 之前,请创建一个事件数据存储或将其准备好。

注意

将跟踪事件复制到 Lake 后,您可能需要关闭跟踪的日志记录,以避免产生额外费用。有关更多信息,请参阅 Amazon CloudTrail 定价

注意事项

复制跟踪事件时,请将以下因素考虑在内。

  • 当您将跟踪事件复制到事件数据存储时,无论目标事件数据存储的事件类型、高级事件选择器或区域的配置如何,CloudTrail 都会复制所有跟踪事件。

  • 在复制跟踪事件之前,请查看事件数据存储的保留期。CloudTrail 仅复制处于事件数据存储保留期内的跟踪事件。例如,如果事件数据存储的保留期为 90 天,则 CloudTrail 将不会复制任何超过 90 天的跟踪事件。

  • 在复制跟踪事件之前,请禁用任何附加到源 S3 存储桶的访问控制列表(ACL),并更新目标事件数据存储的 S3 存储桶策略。有关更新 S3 存储桶策略的更多信息,请参阅 复制跟踪事件所用的 Amazon S3 存储桶策略。有关禁用 ACL 的更多信息,请参阅为您的存储桶控制对象所有权和禁用 ACL

  • CloudTrail 仅从 Gzip 压缩日志文件中复制跟踪事件,这些文件位于源 S3 存储桶中。CloudTrail 不会从未压缩的日志文件或使用除 Gzip 以外的格式压缩的日志文件中复制跟踪事件。

  • 为避免源跟踪和目标事件数据存储之间存在重复事件,请为复制的事件选择一个早于事件数据存储创建时间的时间范围。

  • 默认情况下,CloudTrail 仅复制 S3 存储桶 CloudTrail 前缀中包含的 CloudTrail 事件以及 CloudTrail 前缀中的前缀,而不会检查其他 Amazon 服务的前缀。如果要复制包含在另一个前缀中的 CloudTrail 事件,则必须在复制跟踪事件时选择该前缀。

  • 要将跟踪事件复制到组织事件数据存储,必须使用该组织的管理账户。委托管理员账户无法将跟踪事件复制到组织事件数据存储。

复制跟踪事件所需的权限

在复制试用事件之前,请确保您拥有 IAM 角色和事件数据存储的 S3 存储桶所需的所有权限。如果您选择现有 IAM 角色来复制跟踪事件,则只需要更新 IAM 角色权限。如果您选择创建新的 IAM 角色,CloudTrail 将为此角色提供所有必要权限。

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

复制跟踪事件所需的 IAM 权限

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

如果您选择现有角色,请确保 IAM 角色的策略允许 CloudTrail 将跟踪事件复制到目标事件数据存储。此部分提供所需 IAM 角色权限和信任策略的示例。

以下示例提供了权限策略,允许 CloudTrail 将跟踪事件复制到事件数据存储的 S3 存储桶。使用您配置的相应值替换 myBucketNamemyAccountIDregionprefixeventDataStoreArnmyAccountID 是用于 CloudTrail Lake 的 Amazon 账户 ID,其可能与 S3 存储桶的 Amazon 账户 ID 不同。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailImportBucketAccess", "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetBucketAcl"], "Resource": [ "arn:aws:s3:::myBucketName" ], "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreArn" } } }, { "Sid": "AWSCloudTrailImportObjectAccess", "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": [ "arn:aws:s3:::myBucketName/prefix", "arn:aws:s3:::myBucketName/prefix/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreArn" } } } ] }

以下示例提供了 IAM 信任策略,允许 CloudTrail 代入 IAM 角色以将跟踪事件复制到事件数据存储的 S3 存储桶。使用您的配置的相应值替换 myAccountIDregioneventDataStoreArnmyAccountID 是用于 CloudTrail Lake 的 Amazon 账户 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/eventDataStoreArn" } } } ] }

复制跟踪事件所用的 Amazon S3 存储桶策略

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

在复制跟踪事件之前,必须更新目标事件数据存储的 S3 存储桶策略,以允许 CloudTrail 将跟踪事件复制到存储桶。

您可以将以下语句添加到事件数据存储的 S3 存储桶策略,以授予这些权限。使用您的配置的相应值替换 roleArnmyBucketName

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

用于解密源 S3 存储桶中数据的 KMS 密钥策略

如果源 S3 桶使用 KMS 密钥进行数据加密,请确保 KMS 密钥策略允许 CloudTrail 解密桶中的数据。如果您的源 S3 桶使用多个 KMS 密钥,则必须更新每个密钥的策略,以允许 CloudTrail 解密桶中的数据。更新 KMS 密钥策略允许 CloudTrail 解密源 S3 桶中的数据、运行验证检查,以确保事件符合 CloudTrail 标准,并将事件复制到 CloudTrail Lake 事件数据存储中。

以下示例提供了 KMS 密钥策略,该策略允许 CloudTrail 解密源 S3 桶中数据。使用您的配置的相应值替换 roleArnmyBucketNamemyAccountIDregioneventDataStoreArnmyAccountID 是用于 CloudTrail Lake 的 Amazon 账户 ID,其可能与 S3 存储桶的 Amazon 账户 ID 不同。

{ "Sid": "AWSCloudTrailImportDecrypt", "Effect": "Allow", "Action": "kms:Decrypt", "Principal": { "AWS": "roleArn" }, "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::myBucketName/*" }, "StringEquals": { "aws:SourceAccount": "myAccountID", "aws:SourceArn": "arn:aws:cloudtrail:region:myAccountID:eventdataStore/eventDataStoreArn" } } }

将跟踪事件复制到事件数据存储

按照以下步骤将跟踪事件复制到事件数据存储库。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 CloudTrail 控制台:https://console.aws.amazon.com/cloudtrail

  2. 在 CloudTrail 控制台的左侧导航窗格中选择 Lake

  3. Lake 页面上,选择 Event data stores(事件数据存储)选项卡。

  4. 选择 Copy trail events(复制跟踪事件)。

  5. Copy trail events(复制跟踪事件)页面,在 Event source(事件源)下选择您想复制的跟踪。默认情况下,CloudTrail 仅复制 S3 存储桶 CloudTrail 前缀中包含的 CloudTrail 事件以及 CloudTrail 前缀中的前缀,而不会检查其他 Amazon 服务的前缀。如果要复制另一个前缀中包含的 CloudTrail 事件,请选择 Enter S3 URI(输入 S3 URI),然后选择 Browse S3(浏览 S3)以浏览到该前缀。如果跟踪的源 S3 桶使用 KMS 密钥进行数据加密,请确保 KMS 密钥策略允许 CloudTrail 解密数据。如果您的源 S3 桶使用多个 KMS 密钥,则必须更新每个密钥的策略,以允许 CloudTrail 解密桶中的数据。有关更新 KMS 密钥策略的更多信息,请参阅 用于解密源 S3 存储桶中数据的 KMS 密钥策略

  6. (可选)对于 Event source(事件源),请选择复制事件的时间范围。如果您选择时间范围,则 CloudTrail 会先检查前缀和日志文件名,以验证名称是否包含所选开始日期和结束日期之间的日期,然后再尝试复制跟踪事件。您可以选择 Relative range(相对范围)或者 Absolute range(绝对范围)。为避免源跟踪和目标事件数据存储之间存在重复事件,请选择一个早于事件数据存储创建时间的时间范围。

    • 如果您选择 Relative range(相对范围),您可以选择复制过去 5 分钟、30 分钟、1 小时、6 小时或自定义范围内记录的事件。CloudTrail 会复制此所选时间段内记录的事件。

    • 如果您选择 Absolute range(绝对范围),您可以选择特定的开始和结束日期。CloudTrail 会复制在选定的开始日期和结束日期之间发生的事件。

  7. 对于 Delivery location(送达位置),请从下拉列表中选择目标事件数据存储。事件数据存储的 S3 存储桶策略必须授予 CloudTrail 访问权限,以将跟踪事件复制到存储桶中。有关更新 S3 存储桶策略的更多信息,请参阅 复制跟踪事件所用的 Amazon S3 存储桶策略

  8. 对于 Permissions(权限),请从以下 IAM 角色选项中进行选择。如果您选择现有的 IAM 角色,请验证 IAM 角色策略是否提供了必要的权限。有关更新 IAM 角色权限的更多信息,请参阅 复制跟踪事件所需的 IAM 权限

    • 选择 Create a new role (recommended)(创建新角色(推荐))以创建新的 IAM 角色。对于 Enter IAM role name(输入 IAM 角色名称),输入角色的名称。CloudTrail 会自动为此新角色创建必要的权限。

    • 选择 Use a custom IAM role(使用自定义 IAM 角色)可使用未列出的自定义 IAM 角色。对于 Enter IAM role ARN(输入 IAM 角色 ARN),输入 IAM ARN。

    • 选择 Use an existing role(使用现有角色)可从下拉列表中选择一个现有 IAM 角色。

  9. 选择 Copy events(复制事件)。

  10. 系统将提示您进行确认。如果您已准备好确认,请选择 Copy trail events to Lake(将跟踪事件复制到 Lake),然后选择 Copy events(复制事件)。

  11. Copy details(复制详情)页面中,您可以查看复制状态并检查是否复制失败。跟踪事件复制完成后,如果复制未出错,则 Copy status(复制状态)将设置为 Completed(已完成),否则如果出错了,则设置为 Failed(失败)。

    注意

    事件复制详细信息页面上显示的详细信息不是实时的。Prefixes copied(已复制的前缀)等详细信息的实际值可能高于页面上显示的值。CloudTrail 会在事件复制过程中逐步更新详细信息。

  12. 如果 Copy status(复制状态)为 Failed(失败),则要先修复 Copy failures(复制失败)中显示的所有错误,然后选择 Retry copy(重试复制)。当您重试复制时,CloudTrail 会在出错的位置恢复复制。

有关查看跟踪事件复制详细信息的更多信息,请参阅 事件复制详细信息