如何 CloudTrail 运作 - AWS CloudTrail

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

如何 CloudTrail 运作

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

要持续记录 AWS 账户 过去 90 天内的事件,请创建跟踪或 CloudTrail Lake 事件数据存储。

CloudTrail 事件历史记录

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

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

查看事件历史记录页面或运行lookup-events命令不 CloudTrail 收取任何费用。

CloudTrail 湖泊和事件数据存储

您可以创建事件数据存储来记录CloudTrail 事件(管理事件、数据事件)、CloudTrailInsights 事件AWS Audit Manager 证据AWS Config 配置项目外部的事件 AWS

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

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

默认情况下,事件数据存储中的所有事件都由加密 CloudTrail。配置事件数据存储时,可以选择使用自己的数据存储 AWS KMS key。使用自己的 KMS 密钥会产生加密和解密 AWS KMS 费用。在将事件数据存储与 KMS 密钥关联后,将无法移除或更改 KMS 密钥。有关更多信息,请参阅 使用密 AWS KMS 钥加密 CloudTrail 日志文件 (SSE-KMS)

下表提供了有关可以在事件数据存储上执行的任务的信息。

任务 描述

查看湖泊仪表板

您可以使用 CloudTrail Lake 仪表板对收集管理事件、S3 数据事件或 Insights 事件的事件数据存储中的事件进行可视化。

日志管理事件

将事件数据存储配置为记录只读、只写或所有管理事件。默认情况下,事件数据存储日志管理事件。

记录数据事件

配置您的事件数据存储以记录数据事件。您可以使用高级事件选择器对、和resources.ARN字段进行筛选 eventNamereadOnly,以仅记录那些感兴趣的事件。

记录见解事件

将事件数据存储配置为记录 Insights 事件,以帮助您识别和应对与管理 API 调用相关的异常活动。有关更多信息,请参阅 记录 Insights 事件

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

复制跟踪事件

您可以将跟踪事件复制到新的现有的事件数据存储中,以创建记录到跟踪的事件的 point-in-time 快照。

在事件数据存储上启用联合

您可以联合事件数据存储以在数据目录中查看与事件数据存储相关的元数据,并使用 Amazon Athena 对事件数据运行 SQL 查询。 AWS Glue 存储在 AWS Glue 数据目录中的表元数据让 Athena 查询引擎知道如何查找、读取和处理您要查询的数据。

在事件数据存储上停止或启动事件摄取

您可以在收集 CloudTrail 管理和数据事件或 AWS Config 配置项目的事件数据存储上停止和启动事件摄取。

与外部的事件源创建集成 AWS

您可以使用 La CloudTrail ke 集成从外部记录和存储来自混合环境中任何来源的 AWS用户活动数据,例如本地或云端托管的内部或 SaaS 应用程序、虚拟机或容器。有关可用集成合作伙伴的信息,请参阅 AWS CloudTrail Lake 集成。

在 CloudTrail 控制台中查看 Lake 示例查询

CloudTrail 控制台提供了许多示例查询,可以帮助您开始编写自己的查询。

创建或编辑查询

中的查询 CloudTrail 是用 SQL 编写的。您可以在 L CloudTrail ake E ditor 选项卡上生成查询,方法是从头开始用 SQL 编写查询,或者打开已保存的查询或示例查询并对其进行编辑。

将查询结果保存到 S3 存储桶

运行查询时,您可以将查询结果保存到 S3 存储桶。

下载已保存的查询结果

您可以下载包含已保存的 L CloudTrail ake 查询结果的 CSV 文件。

验证已保存的查询结果

在将 CloudTrail 查询结果 CloudTrail 传送到 S3 存储桶后,您可以使用查询结果完整性验证来确定查询结果是被修改、删除还是未更改。

有关 CloudTrail Lake 的更多信息,请参阅与 L AWS CloudTrail ake 合作

CloudTrail 湖泊事件数据存储和查询会产生费用。创建事件数据存储时,您可以选择要用于事件数据存储的定价选项。定价选项决定了摄取和存储事件的成本,以及事件数据存储的默认和最长保留期。在 Lake 中运行查询时,您需要按扫描的数据量付费。有关 CloudTrail 定价和管理 Lake 成本的信息,请参阅AWS CloudTrail 定价管理 CloudTrail 湖泊成本

CloudTrail 步道

跟踪是一种配置,可用于将事件传送到您指定的 Amazon S3 存储桶。您还可以使用 Amazon L CloudWatch ogs 和 Amazon 在跟踪中交付和分析事件 EventBridge。

Trails 可以记录 CloudTrail 管理事件、数据事件和 Insights 事件。

您可以为创建两种类型的跟踪 AWS 账户:多区域跟踪和单区域跟踪。

多区域跟踪

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

单区域跟踪

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

注意

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

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

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

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

注意

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

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

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

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

任务 描述

记录管理事件

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

记录数据事件

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

记录见解事件

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

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

查看洞察活动

在跟踪上启用 CloudTrail Insights 后,您可以使用 CloudTrail 控制台或查看最多 90 天的 Insights 事件 AWS CLI。

下载洞察活动

在跟踪上启用 CloudTrail Insights 后,您可以为跟踪下载包含最多 90 天的 Insights 事件的 CSV 或 JSON 文件。

将追踪事件复制到 CloudTrail Lake

您可以将现有跟踪事件复制到 CloudTrail Lake 事件数据存储中,以创建记录到跟踪的事件的 point-in-time 快照。

创建并订阅 Amazon SNS 主题

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

注意

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

查看您的日志文件

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

使用 CloudWatch 日志监控事件

您可以将跟踪配置为向 L CloudWatch ogs 发送事件。然后,您可以使用 CloudWatch 日志来监控您的账户中是否有特定 API 调用和事件。

注意

如果您配置适用于所有区域的跟踪以将事件发送到 CloudWatch 日志日志组,则会将来自所有区域的事件 CloudTrail 发送到单个日志组。

启用日志加密

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

启用日志文件完整性

日志文件完整性验证可帮助您验证日志文件自 CloudTrail 交付以来是否保持不变。

与其他人共享日志文件 AWS 账户

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

汇总来自多个账户的日志

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

使用合作伙伴解决方案

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

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

CloudTrail 洞察活动

AWS CloudTrail Insights 通过持续分析 CloudTrail 管理事件,帮助 AWS 用户识别和响应与 API 调用和 API 错误率相关的异常活动。 CloudTrail Insights 会分析您的 API 调用量和 API 错误率的正常模式(也称为基线),并在呼叫量或错误率超出正常模式时生成 Insights 事件。针对 write 管理 API 生成的 API 调用量的 Insights 事件,以及针对 readwrite 管理 API 生成的 API 错误率的 Insights 事件。

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

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

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

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

查看跟踪的 Insights 事件

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

首次在跟踪上启用 CloudTrail Insights 后,如果检测到异常活动,则最长可能需要 36 小时 CloudTrail 才能交付第一个 Insights 事件。

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

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

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

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

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

CloudTrail 频道

CloudTrail 支持两种类型的频道

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

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

服务相关通道

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

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