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

CloudTrail 概念

本部分汇总了与 CloudTrail 相关的基本概念。

什么是 CloudTrail 事件?

CloudTrail 中的事件是 Amazon 账户中的活动的记录。此活动可以是用户、角色或可由 CloudTrail 监控的服务所执行的操作。CloudTrail 事件提供通过 Amazon Web Services Management Console、Amazon 开发工具包、命令行工具和其他 Amazon 服务执行的 API 和非 API 账户活动的历史记录。有三类事件可以记录在 CloudTrail 中:管理事件、数据事件和 CloudTrail 见解事件。默认情况下,跟踪将记录管理事件,但不记录数据事件或见解事件。

所有事件类型都使用 CloudTrail JSON 日志格式。

注意

CloudTrail 不记录所有 Amazon 服务和所有事件。有关会为某项特定服务记录哪些 API 的更多信息,请参阅 CloudTrail 支持的服务和集成 中有关该服务的文档。

什么是管理事件?

管理事件提供有关对在您 Amazon 账户内的资源上执行的管理操作的信息。这些也称为控制层面操作。示例管理事件包括:

  • 配置安全性(例如,Amazon Identity and Access Management AttachRolePolicy API 操作)。

  • 注册设备(例如,Amazon EC2 CreateDefaultVpc API 操作)。

  • 配置传送数据的规则(例如,Amazon EC2 CreateSubnet API 操作)。

  • 设置日志记录(例如,Amazon CloudTrail CreateTrail API 操作)。

管理事件还包括在您的账户中发生的非 API 事件。例如,当用户登录您的账户时,CloudTrail 将记录 ConsoleLogin 事件。有关更多信息,请参阅 CloudTrail 捕获的非 API 事件。有关 CloudTrail 为 Amazon 服务记录的管理事件的列表,请参阅 CloudTrail 支持的服务和集成

什么是数据事件?

数据事件提供有关对在资源上或资源内执行的资源操作的信息。这些也称为数据层面操作。数据事件通常是高容量活动。记录以下数据类型:

  • 存储桶和存储桶中的对象上的 Amazon S3 对象级 API 活动(例如,GetObjectDeleteObjectPutObject API 操作)

  • Amazon Lambda 函数执行活动 (Invoke API)

  • 表上的 Amazon DynamoDB 对象级 API 活动(例如,PutItemDeleteItemUpdateItem API 操作)

  • Amazon S3 on Outposts 对象级 API 活动

  • Ethereum 节点上的 Amazon Managed Blockchain JSON-RPC 调用,例如 eth_getBalanceeth_getBlockByNumber

  • Amazon S3 对象 Lambda 接入点 API 活动,例如调用 CompleteMultipartUploadGetObject

  • Amazon Elastic Block Store (EBS) Direct API,例如 Amazon EBS 快照上的 PutSnapshotBlockGetSnapshotBlockListChangedBlocks

  • 接入点上的 Amazon S3 API 活动

  • 流上的 Amazon DynamoDB API 活动

  • 表上的 Amazon Glue API 活动

默认情况下,在您创建跟踪记录时,未记录数据事件。要记录 CloudTrail 数据事件,您必须明确将要为其收集活动的受支持的资源或资源类型添加到跟踪。有关更多信息,请参阅 创建跟踪数据事件

记录数据事件将收取额外费用。有关 CloudTrail 定价的信息,请参阅 Amazon CloudTrail 定价

什么是见解事件?

CloudTrail Insights 事件会捕获您 Amazon 账户中异常的 API 调用率或错误率活动。如果已启用见解事件并且 CloudTrail 检测到异常活动,见解事件将记录到跟踪的目标 S3 存储桶中的不同文件夹或前缀中。在 CloudTrail 控制台上查看见解事件时,您还可以查看见解的类型和事件时间段。Insights 事件提供相关信息,例如关联的 API、错误代码、事件时间和统计数据,以帮助您了解异常活动并对其采取措施。与在 CloudTrail 跟踪记录中捕获的其它类型的事件不同,仅在 CloudTrail 检测到账户的 API 使用情况或错误率记录的变化与账户的典型使用模式有显著差异时,才会记录 Insights 事件。可能生成见解事件的活动的示例包括:

  • 您的账户通常每分钟记录不超过 20 次 Amazon S3 deleteBucket API 调用,但是您的账户一开始就平均每分钟记录 100 次 deleteBucket API 调用。在异常活动开始时记录一个见解事件,并记录另一个见解事件以标记异常活动的结束。

  • 您的账户通常每分钟记录 20 次对 Amazon EC2 AuthorizeSecurityGroupIngress API 的调用,但是您的账户开始记录对 AuthorizeSecurityGroupIngress 的零次调用。在异常活动开始时记录一个见解事件,10 分钟后,当异常活动结束时,将记录另一个见解事件以标记异常活动的结束。

  • 您的账户七天内对 Amazon Identity and Access Management API、DeleteInstanceProfile 记录的 AccessDeniedException 错误通常不到一个。你的账户开始对 DeleteInstanceProfile API 调用每分钟平均记录 12 个 AccessDeniedException 错误。在异常错误率活动开始时记录一个 Insights 事件,并记录另一个 Insights 事件以标记异常活动的结束。

这些示例仅用于说明用途。根据您的使用案例,您的结果可能会有所不同。

默认情况下,在您创建跟踪时,见解事件处于禁用状态。要记录 CloudTrail 见解事件,必须在新的或现有的跟踪上显式启用见解事件收集。有关更多信息,请参阅 创建跟踪记录跟踪的见解事件

记录 CloudTrail 见解事件将收取额外费用。有关 CloudTrail 定价的信息,请参阅 Amazon CloudTrail 定价

什么是 CloudTrail 事件历史记录?

CloudTrail 事件历史记录提供过去 90 天的 CloudTrail 事件的可查看、可搜索和可下载记录。您可以使用此历史记录了解您的 Amazon 账户在 Amazon Web Services Management Console、Amazon 开发工具包、命令行工具和其他 Amazon 服务中执行的操作。您可以通过选择要显示的列来在 CloudTrail 控制台中自定义事件历史记录的视图。有关更多信息,请参阅 使用 CloudTrail 事件历史记录查看事件

什么是跟踪?

跟踪是一种配置,可用于将 CloudTrail 事件传送到 Amazon S3 存储桶、CloudWatch Logs 和 CloudWatch Events。您可以使用跟踪来筛选您希望传送的 CloudTrail 事件,使用 Amazon KMS 密钥加密您的 CloudTrail 事件日志文件,并设置日志文件传送的 Amazon SNS 通知。有关如何创建和管理跟踪的更多信息,请参阅为您的 Amazon Web Services 账户 创建跟踪

什么是组织跟踪?

组织跟踪是一种配置,可以将 Amazon Organizations 组织内的管理账户和所有成员账户中的 CloudTrail 事件传送到同一 Amazon S3 存储桶、CloudWatch Logs 和 CloudWatch Events。创建组织跟踪可帮助您为组织定义统一的事件记录策略。

当您创建组织跟踪时,将在属于您的组织的每个 Amazon 账户中创建具有您所指定名称的跟踪。成员账户中拥有 CloudTrail 权限的用户在从其 Amazon 账户登录 Amazon CloudTrail 控制台时,或者当他们运行 describe-trails 等 Amazon CLI 命令时,将能够看到此跟踪(包括跟踪 ARN)(不过成员账户在使用 Amazon CLI 时必须使用组织跟踪的 ARN,而不是名称)。但是,成员账户中的用户将没有足够的权限删除组织跟踪、启用和关闭日志记录、更改要记录的事件类型,或以任何其他方式更改组织跟踪。有关 Amazon Organizations 的更多信息,请参阅 Organizations 术语和概念。有关创建和使用组织跟踪的更多信息,请参阅为组织创建跟踪

您如何管理 CloudTrail?

CloudTrail 控制台

您可以通过 Amazon CloudTrail 控制台使用和管理 CloudTrail 服务。此控制台提供了用于执行许多 CloudTrail 任务的用户界面,这些任务包括:

  • 查看您的 Amazon 账户的近期事件和事件历史记录。

  • 下载过去 90 天事件的已筛选或完整文件.

  • 创建和编辑 CloudTrail 跟踪。

  • 配置 CloudTrail 跟踪,包括:

    • 选择 Amazon S3 存储桶。

    • 设置前缀。

    • 配置至 CloudWatch Logs 的传输。

    • 使用 Amazon KMS 密钥加密。

    • 为日志文件传输启用 Amazon SNS 通知。

    • 为跟踪添加和管理标签。

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

有关 Amazon Web Services Management Console 的更多信息,请参阅。Amazon Web Services Management Console

CloudTrail CLI

Amazon Command Line Interface 是一个可用于从命令行与 CloudTrail 交互的统一工具。有关更多信息,请参阅 Amazon Command Line Interface 用户指南。有关 CloudTrail CLI 命令的完整列表,请参阅可用命令

CloudTrail API

除了控制台和 CLI 之外,您还可以使用 CloudTrail RESTful API 来直接对 CloudTrail 进行编程。有关详细信息,请参阅 Amazon CloudTrail API 参考

Amazon 开发工具包

作为使用 CloudTrail API 的替代方案,您可以使用某个 Amazon 软件开发工具包。每个软件开发工具包均包含适用于各种编程语言和平台的库和示例代码。这些开发工具包提供了一种简便方法,以使用编程方式访问 CloudTrail。例如,您可以使用开发工具包以加密方式对请求进行签名,管理错误并自动重试请求。有关更多信息,请参阅用于 Amazon Web Services 的工具页面。

为什么要对跟踪使用标签?

标签是客户定义的键和可选值,它们可以分配给 Amazon 资源,例如 CloudTrail 跟踪、用于存储 CloudTrail 日志文件的 Amazon S3 存储桶、Amazon Organizations 组织和组织单位等等。通过将相同的标签添加到跟踪和您用于存储跟踪的日志文件的 Amazon S3 存储桶,您可以更轻松地通过 Amazon Resource Groups 管理、搜索和筛选这些资源。您可以实施标记策略以帮助您持续、高效且轻松地查找和管理您的资源。有关更多信息,请参阅 Amazon 标记策略

如何控制对 CloudTrail 的访问?

Amazon Identity and Access Management 是一项 Web 服务,Amazon Web Services (Amazon) 客户可使用此服务管理用户和用户权限。使用 IAM 为需要对 Amazon CloudTrail 的访问权的任何人创建单独的用户。为您自己创建一个 IAM 用户,授予该 IAM 用户管理权限,并将该 IAM 用户用于您的所有工作。在为访问您的账户的人员创建单独的 IAM 用户时,您可授予每个 IAM 用户一组独特的安全凭证。您还可向每个 IAM 用户授予不同的权限。如有必要,可以随时更改或撤消 IAM 用户的权限。有关更多信息,请参阅 控制 CloudTrail 的用户权限

您如何记录管理和数据事件?

默认情况下,跟踪将记录 Amazon 账户的所有管理事件,但不包含数据事件。您可以选择创建或更新跟踪以记录数据事件。只有与您的跟踪设置匹配的事件才会传送到 Amazon S3 存储桶,也可以传送到 Amazon CloudWatch Logs 日志组。如果事件与跟踪设置不匹配,则跟踪不会记录事件。有关更多信息,请参阅 使用 CloudTrail 日志文件

如何记录 CloudTrail 见解事件?

通过持续分析 CloudTrail 管理事件,Amazon CloudTrail Insights 帮助 Amazon 用户识别和应对异常的 API 调用量或针对 API 调用记录的错误。Insights 事件是异常级别的 write 管理 API 活动,或管理 API 活动返回的异常错误级别。见解事件的详细信息页面将事件显示为异常活动的图表,并显示异常活动的开始和结束时间,以及用于确定活动是否异常的基准。默认情况下,跟踪不记录 CloudTrail 见解事件。在控制台中,您可以选择在创建或更新跟踪时记录见解事件。使用 CloudTrail API 时,您可以通过使用 PutInsightSelectors API 编辑现有跟踪的设置来记录见解事件。记录 CloudTrail 见解事件将收取额外费用。有关更多信息,请参阅记录跟踪的见解事件Amazon CloudTrail 定价

您如何对 CloudTrail 记录的事件运行复杂的查询?

CloudTrail Lake 允许您对事件运行基于 SQL 的精细查询。您不需要在账户中配置跟踪记录即可使用 CloudTrail Lake。事件数据存储是基于您通过应用高级事件选择器选择的条件的不可变的事件集合。您可以在事件数据存储中保存事件数据长达七年。您可以保存 Lake 查询以供将来使用,并查看最多七天的查询结果。CloudTrail Lake 还可以将 Amazon Organizations 中企业的事件存储在事件数据存储中,或者存储来自多个区域和账户的事件。CloudTrail Lake 是审计解决方案的一部分,可帮助您执行安全调查和故障排除。有关更多信息,请参阅 使用 Amazon CloudTrail Lake

如何使用 CloudTrail 执行监控?

CloudWatch Logs、CloudWatch Events 和 CloudTrail

Amazon CloudWatch 是一项 Web 服务,可收集并跟踪指标以监控您的 Amazon Web Services (Amazon) 资源以及在 Amazon 上运行的应用程序。Amazon CloudWatch Logs 是 CloudWatch 的一项专门用来监控日志数据的功能。与 CloudWatch Logs 集成使 CloudTrail 能够将您的 Amazon 账户中包含 API 活动的事件发送到 CloudWatch Logs 日志组。发送到 CloudWatch Logs 的 CloudTrail 事件可以根据您定义的指标筛选条件触发警报。(可选)您可以配置 CloudWatch 警报来发送通知或基于指标筛选条件提取的日志流事件来更改所监控的资源。通过使用 CloudWatch Logs,还可跟踪 CloudTrail 事件以及从操作系统、应用程序或其他 Amazon 服务发送到 CloudWatch Logs 的事件。有关更多信息,请参阅 使用 Amazon CloudWatch Logs 监控 CloudTrail 日志文件

Amazon CloudWatch Events 是一种 Amazon 服务,可提供几乎实时的系统事件流,这些事件描述 Amazon 资源的更改。在 CloudWatch Events 中,您可以创建根据 CloudTrail 记录的任何事件触发的规则。有关更多信息,请参阅使用 Amazon CloudTrail 创建对 Amazon API 调用触发的 CloudWatch Events 规则

见解事件与 CloudWatch 集成。您可以将跟踪上订阅的事件(包括见解事件)传输到 CloudWatch Events 和 CloudWatch Logs。要使用 CloudWatch 控制台或 API 配置 CloudWatch Events,请在 CloudWatch 控制台的 Create rule(创建侧)页面上选择 AWS Insight via CloudTrail 事件类型。

发送 CloudTrail 记录到 CloudWatch Logs 或 CloudWatch Events 的数据要求您至少有一个跟踪。有关如何创建和管理跟踪的更多信息,请参阅创建跟踪

CloudTrail 在区域和全球范围如何工作?

跟踪可适用于所有区域或单个区域。最佳实践是创建应用到您工作所在的 Amazon 分区中所有区域的跟踪。当您在 CloudTrail 控制台中创建跟踪时,这是默认设置。

注意

启用跟踪表示您创建一个跟踪并开始将 CloudTrail 事件日志文件传送到 Amazon S3 存储桶。在 CloudTrail 控制台中,当您创建跟踪时会自动启用日志记录。

将跟踪应用到所有区域有什么好处?

应用到所有 Amazon 区域的跟踪具有以下好处:

  • 跟踪的配置设置一致地应用到所有 Amazon 区域。

  • 您可以在单个 Amazon S3 存储桶中(或者,在 CloudWatch Logs 日志组中)接收来自所有 Amazon 区域的 CloudTrail 事件。

  • 从一个位置管理所有 Amazon 区域的跟踪配置。

  • 您将立即从新的 Amazon 区域接收事件。当启动新的 Amazon 区域时,CloudTrail 会在新区域中使用与原始跟踪相同的设置自动为您创建所有区域跟踪的副本。

  • 您不需要在不常用来监控异常活动的 Amazon 区域中创建跟踪。任何 Amazon 区域中的任何活动都会记录到应用于所有 Amazon 区域的跟踪中。

将一个跟踪应用到所有区域时会发生什么情况?

将一个跟踪应用到所有 Amazon 区域时,CloudTrail 将根据您在特定区域创建的跟踪,在您账户中的所有其他区域中创建配置完全相同的跟踪。

这有以下影响:

  • CloudTrail 将所有 Amazon 区域中的账户活动的日志文件都传送到您指定的单个 Amazon S3 存储桶,并且可选择传输到 CloudWatch Logs 日志组。

  • 如果您为跟踪配置了 Amazon SNS 主题,则会将有关所有 Amazon 区域中的日志文件传送的 SNS 通知发送到此单个 SNS 主题。

  • 如果启用了该项,则将在所有 Amazon 区域为该跟踪启用日志文件完整性验证。有关信息,请参阅 验证 CloudTrail 日志文件完整性

每区域多个跟踪

如果您拥有不同但相关的用户组,例如开发人员、安全人员和 IT 审计人员,您可以为每个区域创建多个跟踪。这可使每个组均接收各自的日志文件副本。

CloudTrail 对每个区域最多支持五条跟踪。应用到所有 Amazon 区域的跟踪在每个区域都计一次跟踪计数。

以下示例是具有五条跟踪的区域:

  • 您在美国西部(加利福尼亚北部)区域创建了两个仅适用于此区域的跟踪。

  • 您在美国西部(加利福尼亚北部)区域创建了另外两个适用于所有 Amazon 区域的跟踪。

  • 您在亚太地区(悉尼)区域创建了一个适用于所有 Amazon 区域的跟踪。此跟踪也作为美国西部(加利福尼亚北部)区域中的跟踪存在。

跟踪出现在各自所在的 Amazon 区域中。记录所有 Amazon 区域中的事件的跟踪出现在每个区域中。您可以在 CloudTrail 控制台的 Trails(跟踪)页面中查看 Amazon 区域中的跟踪列表。有关更多信息,请参阅 更新跟踪。有关 CloudTrail 定价的信息,请参阅 Amazon CloudTrail 定价

Amazon Security Token Service 和 CloudTrail

Amazon Security Token Service (Amazon STS) 是一项具有全球性终端节点并且也支持区域特定终端节点的服务。终端节点是作为 Web 服务请求入口点的 URL。例如,https://cloudtrail.us-west-2.amazonaws.com 是 Amazon CloudTrail 服务在美国西部(俄勒冈)区域的入口点。区域性终端节点可帮助减少应用程序中的延迟。

在使用 Amazon STS 特定于区域的终端节点时,该区域中的跟踪仅传输发生在该区域中的 Amazon STS 事件。例如,如果您使用终端节点 sts.us-west-2.amazonaws.com,则 us-west-2 中的跟踪仅传输源自 us-west-2 的 Amazon STS 事件。有关 Amazon STS 区域终端节点的更多信息,请参阅 IAM 用户指南中的在 Amazon 区域中激活和停用 Amazon STS

有关 Amazon 区域终端节点的完整列表,请参阅《Amazon 一般参考》中的 Amazon 区域和终端节点。有关来自全局 Amazon STS 终端节点的事件的详细信息,请参阅全球服务事件

全球服务事件

重要

自 2021 年 11 月 22 日 起,Amazon CloudTrail 将使 Amazon CloudFront 事件仅在已处理事件的区域中可用,即中国(宁夏)区域 cn-northwest-1。对于监控全球服务事件的跟踪,请务必将中国(北京)区域 cn-north-1 的单区域跟踪转换为多区域跟踪,以包括中国(宁夏)区域 cn-northwest-1 的事件。在引用 CloudFront 事件时,还应记得将引用中国(北京)区域 cn-north-1 的查找时间 API 调用的区域更新为中国(宁夏)区域 cn-northwest-1。有关使用 CLI 来更新或创建全球服务事件的跟踪以及更新查找事件的更多信息,请参阅使用 Amazon CLI 查看 CloudTrail 事件使用 update-trail

对于大多数服务,事件被记录在发生操作的区域。对于全球服务,例如 Amazon Identity and Access Management (IAM)、Amazon STS 和 Amazon CloudFront,事件将传送到包含全球服务的任何跟踪。

对于大多数全球服务,事件记录为发生在中国(北京)区域,但有些全球服务事件记录为发生在中国(宁夏)区域。

要避免接收重复的全球服务事件,请注意:

  • 默认情况下,全球服务事件传输到使用 CloudTrail 控制台创建的跟踪中。事件传输到跟踪的存储桶中。

  • 如果您有多个单区域跟踪,可考虑将跟踪配置为只在其中一个跟踪中传输全球服务事件。有关更多信息,请参阅 启用和禁用全球服务事件记录

  • 如果将跟踪配置从记录所有区域改为只记录单个区域,则会自动为该跟踪关闭全球服务事件日志记录。同样,如果将跟踪配置从记录单个区域改为记录所有区域,则会自动为该跟踪打开全球服务事件日志记录。

    有关更改跟踪的全球服务事件日志记录的更多信息,请参阅 启用和禁用全球服务事件记录

例如:

  1. 您在 CloudTrail 控制台中创建了一个跟踪。默认情况下,此跟踪将记录全球服务事件。

  2. 您有多个单区域跟踪。

  3. 您不需要为单区域跟踪包含全球服务。全球服务事件会提交给第一个跟踪。有关更多信息,请参阅 使用 Amazon Command Line Interface 创建、更新和管理跟踪

注意

在使用 Amazon CLI、Amazon 开发工具包或 CloudTrail API 创建或更新跟踪时,您可以指定是包括还是排除跟踪的全球服务事件。您不能从 CloudTrail 控制台中配置全球性服务事件日志记录。

CloudTrail 如何与其他 Amazon 监控服务相关联?

CloudTrail 将另一个维度添加到已由 Amazon 提供的监控功能。这不会更改或替换您可能已在使用的日志记录功能,例如用于 Amazon S3 或 Amazon CloudFront 订阅的功能。Amazon CloudWatch 侧重于性能监控和系统运行状况。CloudTrail 专注于 API 活动。尽管 CloudTrail 不报告系统性能或运行状况,但您可以将 CloudTrail 与 CloudWatch 警报结合使用,从而获得您可能感兴趣的活动的通知。

合作伙伴解决方案

Amazon 与日志记录和分析方面的第三方专家协作以提供利用 CloudTrail 输出的解决方案。有关更多信息,请访问 Amazon CloudTrail 上的 CloudTrail 详细信息页。