CloudTrail 的工作原理 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

CloudTrail 的工作原理

当您创建 Amazon Web Services 账户 时,您将自动获得 CloudTrail 事件历史记录的访问权限。事件历史记录提供对 Amazon Web Services 区域 中过去 90 天的已记录管理事件的可查看、可搜索、可下载和不可变记录。

要持续记录您的 Amazon Web Services 账户 过去 90 天的事件,请创建跟踪。

CloudTrail 事件历史记录

您可以转到 CloudTrail 控制台中的事件历史记录页面,轻松查看过去 90 天的管理事件。您还可以通过运行 aws cloudtrail lookup-events 命令或 LookupEvents API 操作来查看事件历史记录。您可以针对单个属性筛选事件,来搜索 Event history(事件历史记录)中的事件。有关更多信息,请参阅 使用 CloudTrail 事件历史记录

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

查看事件历史记录页面或运行 lookup-events 命令无需支付 CloudTrail 费用。

CloudTrail 跟踪

跟踪是一种配置,可用于将事件传送到您指定的 Amazon S3 存储桶。您也可以使用 Amazon CloudWatch LogsAmazon EventBridge 传输和分析跟踪中的事件。

跟踪可以记录 CloudTrail 管理事件、数据事件、网络活动事件和 Insights 事件。

注意

网络活动事件是 CloudTrail 的预览版,可能会发生变化。

您可以为您的 Amazon Web Services 账户 创建多区域和单区域跟踪。

多区域跟踪

当您创建多区域跟踪时,CloudTrail 会记录您正在工作的 Amazon 分区中的所有 Amazon Web Services 区域 中的事件,并将 CloudTrail 事件日志文件传输到您指定的 S3 存储桶。如果在创建多区域跟踪后添加了 Amazon Web Services 区域,则会自动包含该新区域,并记录该区域中的事件。推荐的最佳实践是创建多区域跟踪,因为您可记录您账户中的所有区域的活动。使用 CloudTrail 控制台创建的所有跟踪都可以多区域应用。您可以通过使用 Amazon CLI 将单区域跟踪转换为多区域跟踪。有关更多信息,请参阅在控制台中创建跟踪将应用到一个区域的跟踪转换为应用到所有区域

单区域跟踪

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

注意

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

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

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

CloudTrail 一小时内会多次发布日志文件,通常约每 5 分钟发布一次。这些日志文件包含账户中来自支持 CloudTrail 的服务的 API 调用。有关更多信息,请参阅 CloudTrail supported services and integrations

注意

CloudTrail 通常会在 API 调用后平均大约 5 分钟内传输日志。此时间并不能得到保证。

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

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

下表提供了有关您可以对跟踪执行的任务的信息。

任务 描述

记录管理事件

将您的跟踪记录配置为记录只读、只写或所有管理事件。

记录数据事件

您可以使用高级事件选择器来创建精细的选择器,以仅记录那些感兴趣的数据事件。使用高级事件选择器时,您可以根据 eventName 字段进行筛选,以包含或排除特定 API 调用的记录,这有助于控制成本。

记录网络活动事件

配置跟踪以记录网络活动事件。您可以将高级事件选择器配置为根据 eventNameerrorCodevpcEndpointId 字段进行筛选,以仅记录感兴趣的事件。

注意

网络活动事件是 CloudTrail 的预览版,可能会发生变化。

记录 Insights 事件

将跟踪记录配置为记录 Insights 事件,以帮助您识别和应对与管理 API 调用相关的异常活动。

将对 Insights 事件收取额外费用。如果您同时为跟踪和事件数据存储启用 Insights,则需要单独付费。有关更多信息,请参阅 Amazon CloudTrail 定价

查看 Insights 事件

对跟踪记录启用 CloudTrail Insights 后,您可以使用 CloudTrail 控制台或 Amazon CLI 查看最多 90 天的 Insights 事件。

下载 Insights 事件

对跟踪启用 CloudTrail Insights 后,您可以下载 CSV 或 JSON 文件,其中包含您的跟踪过去 90 天的 Insights 事件。

创建并订阅 Amazon SNS 主题

订阅主题以接收有关将日志文件传送至您的存储桶的通知。Amazon SNS 可通过多种方式通知您,包括使用 Amazon Simple Queue Service 以编程方式通知您。

注意

如果您要接收有关从所有区域传送日志文件的 SNS 通知,请为您的跟踪仅指定一个 SNS 主题。如果要以编程方式处理所有事件,请参阅 使用 CloudTrail Processing Library

查看您的日志文件

从 S3 存储桶中查找并下载日志文件。

使用 CloudWatch Logs 监控事件

您可以将跟踪记录配置为将事件发送到 CloudWatch Logs。然后,您可以使用 CloudWatch Logs 监控账户中的特定 API 调用和事件。

注意

如果您将应用于所有区域的跟踪配置为将事件发送到 CloudWatch Logs 日志组,则 CloudTrail 会将所有区域中的事件都发送到单个日志组。

启用日志加密

日志文件加密为您的日志文件提供额外的安全层。

启用日志文件完整性

日志文件完整性验证可帮助您验证日志文件在由 CloudTrail 传送后是否一直保持不变。

与其他 Amazon Web Services 账户 共享日志文件

您可以在账户之间共享日志文件。

聚合多个账户中的日志

您可以将多个账户中的日志文件聚合到单个存储桶中。

使用合作伙伴解决方案

使用与 CloudTrail 集成的合作伙伴解决方案来分析您的 CloudTrail 输出。合作伙伴解决方案提供了一组广泛的功能,例如,更改跟踪、故障排除和安全分析。

通过创建跟踪,您可以从 CloudTrail 免费向您的 S3 存储桶传输一份正在进行的管理事件的副本,但会收取 Amazon S3 存储费用。有关 CloudTrail 定价的更多信息,请参阅 Amazon CloudTrail 定价。有关 Amazon S3 定价的信息,请参阅 Amazon S3 定价

CloudTrail Insights 事件

通过持续分析 CloudTrail 管理事件,Amazon CloudTrail Insights 可帮助 Amazon 用户识别和应对与 API 调用相关的异常活动和 API 错误率。CloudTrail Insights 可分析 API 调用量和 API 错误率的正常模式,又称为基准,当调用量或错误率超出正常模式范围时生成 Insights 事件。针对 write 管理 API 生成的 API 调用量的 Insights 事件,以及针对 readwrite 管理 API 生成的 API 错误率的 Insights 事件。

默认情况下,CloudTrail 跟踪和事件数据存储不记录 Insights 事件。您必须配置您的跟踪或事件数据存储以记录 Insights 事件。有关更多信息,请参阅使用 Amazon Web Services Management Console 记录 Insights 事件使用 Amazon Command Line Interface 记录 Insights 事件

将对 Insights 事件收取额外费用。如果您同时为跟踪和事件数据存储启用 Insights,则需要单独付费。有关更多信息,请参阅 Amazon CloudTrail 定价

查看跟踪和事件数据存储的 Insights 事件

CloudTrail 支持跟踪和事件数据存储的 Insights 事件,但是,查看和访问 Insights 事件的方式存在一些差异。

查看跟踪的 Insights 事件

如果已在跟踪上启用 Insights 事件并且 CloudTrail 检测到异常活动,Insights 事件将记录到跟踪的目标 S3 存储桶中的不同文件夹或前缀中。在 CloudTrail 控制台上查看 Insights 事件时,您还可以查看 Insights 的类型和事件时间段。有关更多信息,请参阅 使用控制台查看跟踪的 CloudTrail Insights 事件

首次对跟踪记录启用 CloudTrail Insights 后,如果检测到异常活动,则 CloudTrail 供传递第一个见解事件可能需要长达 36 个小时。

查看事件数据存储的 Insights 事件

要在 CloudTrail Lake 中记录 Insights 事件,您需要有一个用于记录 Insights 事件的目标事件数据存储和一个用于启用 Insights 事件和记录管理事件的源事件数据存储。有关更多信息,请参阅 使用控制台为 Insights 事件创建事件数据存储

首次对源事件数据存储启用 CloudTrail Insights 后,如果检测到异常活动,则 CloudTrail 将第一个 Insights 事件传输到目标事件数据存储最长可能需要 7 天。

如果已对源事件数据存储启用 CloudTrail Insights 并且 CloudTrail 检测到异常活动,CloudTrail 会将 Insights 事件传递到您的目标事件数据存储中。然后,您可以查询目标事件数据存储以获取有关 Insights 事件的信息,也可以选择性地将查询结果保存到 S3 存储桶。有关更多信息,请参阅使用 CloudTrail 控制台创建或编辑查询使用 CloudTrail 控制台查看示例查询

您可以查看 Insights 事件控制面板来可视化目标事件数据存储中的 Insights 事件。有关 Lake 控制面板的更多信息,请参阅 使用 CloudTrail 控制台查看 CloudTrail Lake 控制面板

CloudTrail 通道

CloudTrail 支持服务相关通道。

服务相关通道

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

您可以使用 CloudTrail 控制台Amazon CLI 查看有关由 Amazon Web Services 服务 创建的任何 CloudTrail 服务相关通道的信息。