如何 CloudTrail 运作 - AWS CloudTrail

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

如何 CloudTrail 运作

CloudTrail 在您创建AWS账户时在您的账户中处于活动状态。当您的AWS账户中出现活动时,该活动就会记录在 CloudTrail 事件中。您可以前往事件历史记录,在 CloudTrail 控制台中查看过去 90 天记录的 API 活动(管理事件)。AWS 区域

要持续记录 AWS 账户 中的事件,请创建事件数据存储或跟踪。Trails 可以记录 CloudTrail 管理、数据和 Insights 事件的事件。事件数据存储可以记录 CloudTrail 管理和数据事件、 CloudTrail Insights 事件、AWS Config配置项目、AWS Audit Manager证据和集成中的非AWS事件。

要开始使用 CloudTrail,请参阅AWS CloudTrail 教程入门

有关 CloudTrail 定价,请参阅AWS CloudTrail定价。有关 Amazon S3 和 Amazon SNS 定价的信息,请参阅 Amazon S3 定价Amazon SNS 定价

事件历史记录

事件历史记录提供对 AWS 区域 中过去 90 天的已记录管理事件的可查看、可搜索、可下载和不可变记录。您可以前往事件历史记录页面,在 CloudTrail 控制台中轻松查看管理事件。您还可以通过运行 aws cloudtrail lookup-events 命令或 LookupEvents API 操作来查看事件历史记录。您可以针对单个属性筛选事件,来搜索 Event history(事件历史记录)中的事件。有关更多信息,请参阅 处理 CloudTrail 事件历史记录

事件历史记录与您账户中存在的任何跟踪或事件数据存储无关,也不会受到您对跟踪和事件数据存储所做的配置更改的影响。

CloudTrail 湖泊和事件数据存储

您可以创建 CloudTrail Lake 事件数据存储来存档、分析和响应AWS资源的变化。 CloudTrail Lake 将基于行的 JSON 格式的现有事件转换为 Apache ORC 格式。ORC 是一种针对快速检索数据进行优化的列式存储格式。事件将被聚合到事件数据存储中,它是基于您通过应用高级事件选择器选择的条件的不可变的事件集合。如果您选择一年可延期保留定价选项,则可以将事件数据在事件数据存储中最多保留 3653 天(大约 10 年);如果您选择七年保留定价选项,则最多可以保留 2557 天(大约 7 年)。

您可以创建事件数据存储来收集 CloudTrail 管理和数据事件、 CloudTrail Insights 事件、AWS Config配置项目、AWS Audit Manager证据或非AWS事件。您可以使用控制台AWS CLI、或 CloudTrail API 创建事件数据存储。有关使用控制台创建数据存储的详细信息,请参阅 创建事件数据存储。有关使用 AWS CLI 创建数据存储的详细信息,请参阅 使用 AWS CLI 管理 CloudTrail Lake

CloudTrail Lake 允许您通过创建集成来记录来自外部应用程序的事件AWS,包括来自混合环境中任何来源的事件,例如本地或云端托管的内部或 SaaS 应用程序、虚拟机或容器。您可创建与 12 个以上合作伙伴的集成,将 AWS 外部发生的事件记录到事件数据存储中。要创建集成,首先要配置一个通道,通过它来传送事件。无需维护多个日志聚合器和报告工具,即可使用 CloudTrail Lake 来存储、访问、分析、排除故障并对这些数据采取措施。

事件数据存储可以记录来自您的 AWS 账户中当前 AWS 区域 或所有 AWS 区域 区域中的事件。用于记录来自 AWS 外部集成事件的事件数据存储,必须仅适用于单个区域;它们不能是多区域事件数据存储。

要在创建事件数据存储之后对其进行更改,可以运行update-event-data-store命令或使用 CloudTrail Lake 控制台。

如果您已在 AWS Organizations 中创建组织,则可以创建组织事件数据存储,用于记录该组织中所有 AWS 账户的所有事件。组织事件数据存储可以应用于所有 AWS 区域或当前区域。组织事件数据存储必须使用管理账户或委托管理员账户创建,并且在指定为应用于某个组织时,事件数据存储将自动应用于该组织中的所有成员账户。成员账户无法查看组织事件数据存储,也无法对其进行修改或删除。默认情况下,成员账户无权访问组织事件数据存储的日志文件,也不能对组织事件数据存储进行查询。组织事件数据存储不能用于收集来自 AWS 外部的事件。有关更多信息,请参阅 组织事件数据存储

有关如何开始使用 CloudTrail Lake 的更多信息,请参阅本指南与 L AWS CloudTrail ake 合作中的。

CloudTrail 步道

您还可以创建 CloudTrail 跟踪来存档、分析和响应AWS资源中的更改。Trails 可以记录 CloudTrail 管理事件、数据事件和 Insights 事件。

跟踪是一种配置,可用于将事件传送到您指定的 Amazon S3 存储桶。您还可以使用 Amazon L CloudWatch ogs 和 Amazon 在跟踪中交付和分析事件 EventBridge。您可以使用 CloudTrail 控制台AWS CLI、或 CloudTrail API 创建跟踪。

您可为 AWS 账户创建两种类型的跟踪:

应用于所有区域的跟踪

当您创建适用于所有区域的跟踪时,会 CloudTrail 记录每个区域的事件并将 CloudTrail 事件日志文件传送到您指定的 S3 存储桶。如果您在创建应用到所有区域的跟踪后又添加了一个区域,则该新区域会自动包括在内,该区域中的事件也将被记录。推荐的最佳实践是创建多区域跟踪,因为您可记录您账户中的所有区域的活动。您使用 CloudTrail 控制台创建的所有跟踪都是多区域的。您可以使用 AWS CLI 将单区域跟踪更新为记录所有区域。有关更多信息,请参阅 在控制台中创建跟踪将应用到一个区域的跟踪转换为应用到所有区域

应用于一个区域的跟踪

当您创建适用于一个区域的跟踪时,仅 CloudTrail 记录该区域的事件。然后,它 CloudTrail 会将事件日志文件传送到您指定的 Amazon S3 存储桶。您只能使用 AWS CLI 创建单区域跟踪。如果您创建其他单个跟踪,则可以让这些跟踪将 CloudTrail 事件日志文件传输到相同的 Amazon S3 存储桶或单独的存储桶。这是您使用AWS CLI或 CloudTrail API 创建跟踪时的默认选项。有关更多信息,请参阅 使用创建、更新和管理跟踪 AWS Command Line Interface

注意

对于这两种类型的跟踪,您可以在任何区域中指定 Amazon S3 存储桶。

从 2019 年 4 月 12 日开始,跟踪只能在其记录事件的 AWS 区域中查看。如果您创建记录所有 AWS 区域中事件的跟踪,则它会显示在所有 AWS 区域的控制台中。如果您创建仅记录单个 AWS 区域中事件的日志,则可以在该 AWS 区域中查看和管理它。

如果您已在 AWS Organizations 中创建组织,则可以创建组织跟踪,用于记录该组织中所有 AWS 账户的所有事件。组织跟踪可以应用于所有 AWS 区域或当前区域。组织跟踪必须使用管理账户或委托管理员账户创建,并且在指定为应用于某个组织时,组织跟踪将自动应用于该组织中的所有成员账户。成员账户可以查看组织跟踪,但无法对其进行修改或删除。默认情况下,成员账户无权访问 Amazon S3 存储桶中组织跟踪的日志文件。

您可以在创建跟踪后更改其配置,包括是记录一个区域内的事件还是所有区域内的事件。要将单区域跟踪更改为全区域跟踪,或者相反,必须运行 AWS CLI update-trail 命令。您还可以更改它是记录数据还是 CloudTrail Insights 事件。更改有关跟踪是记录一个区域内的事件还是所有区域内的事件的配置将影响记录的事件。有关更多信息,请参阅 使用管理跟踪 AWS CLI (AWS CLI) 和 使用 CloudTrail 日志文件

默认情况下,来自跟踪 CloudTrail 的事件日志文件使用 Amazon S3 服务器端加密 (SSE) 进行加密。您还可以选择使用 AWS Key Management Service (AWS KMS) 密钥加密您的日志文件。您可以将日志文件在 存储桶中存储任意长的时间。您也可以定义 Amazon S3 生命周期规则以自动存档或删除日志文件。如果您想接收有关日志文件传送和验证的通知,可以设置 Amazon SNS 通知。

CloudTrail 每小时发布多次日志文件,大约每 5 分钟发布一次。这些日志文件包含账户中来自支持 CloudTrail 的服务的 API 调用。有关更多信息,请参阅 CloudTrail 支持的服务和集成

注意

CloudTrail 通常在 API 调用后的平均大约 5 分钟内传送日志。此时间并不能得到保证。有关更多信息,请参阅 AWS CloudTrail 服务等级协议

如果您错误配置了跟踪(例如,无法访问 S3 存储桶),则 CloudTrail 会尝试将日志文件重新传送到您的 S3 存储桶,持续 30 天,这些 attempted-to-deliver 事件将按标准费用收费。 CloudTrail 为避免配置错误的跟踪产生费用,您需要删除跟踪。

CloudTrail 捕获用户直接执行的操作或AWS服务代表用户执行的操作。例如,AWS CloudFormation CreateStack 调用会导致对 Amazon EC2、Amazon RDS、Amazon EBS 或其他服务进行其他的 API 调用(根据 AWS CloudFormation 模板的要求)。这是正常的,也是预期的行为。您可以通过 CloudTrail 事件中的invokedby字段来识别操作是否由AWS服务机构执行。

CloudTrail 频道

CloudTrail 支持两种类型的频道

CloudTrail Lake 与 Lake 以外的事件源集成的渠道 AWS

CloudTrail Lake使用渠道将与之合作的外部合作伙伴或您自己的来源的非AWS活动带 CloudTrail入La CloudTrail ke。在创建通道时,您可以选择一个或多个事件数据存储,用于存储来自通道来源的事件。只要将目标事件数据存储设置为记录活动事件,即可根据需要更改通道的目标事件数据存储。当您为来自外部合作伙伴的活动创建通道时,您需要向合作伙伴或来源应用程序提供通道 ARN。附加到该通道的资源策略允许来源通过该通道传输事件。有关更多信息,请参阅《AWS CloudTrail API 参考》中的 创建与 AWS 外部事件源的集成CreateChannel

服务相关通道

AWS服务可以创建与服务相关的渠道来代表您接收 CloudTrail 事件。创建服务相关通道的 AWS 服务为该通道配置高级事件选择器,并指定该通道是适用于所有区域还是适用于单个区域。

您可以使用CloudTrail 控制台AWS CLI查看由AWS 服务创建的任何 CloudTrail 服务相关频道的相关信息。