问:什么是 AWS CloudTrail?
AWS CloudTrail 是一种 Web 服务,可记录您账户上进行的活动,并将日志文件传送到您的 Amazon S3 存储桶。

问:CloudTrail 有哪些优势呢?
CloudTrail 可通过记录账户上执行的操作来提供对用户活动的可见性。CloudTrail 可记录每个操作的详细信息,包括请求的发出方、使用的服务、执行的操作、操作的参数,以及 AWS 服务返回的响应元素。这些信息能够帮助您追踪 AWS 资源的变更情况,帮助您排查操作问题。CloudTrail 便于您确保与内部策略和监管标准的合规性。有关更多详细信息,请参阅 AWS 合规性白皮书“Security at scale: Logging in AWS”。

问:哪些人应该使用 CloudTrail?
具有以下需求的客户应该使用 CloudTrail:需要跟踪资源变更情况、回答有关用户活动的简单问题、证明合规性、进行故障排除或执行安全分析。


问:假如我是一名新 AWS 客户或现有 AWS 客户,尚未设置 CloudTrail,我是否需要启用或进行什么设置才能查看账户活动?
不需要。您无需进行任何操作即可开始查看账户活动。您可以访问 CloudTrail 控制台或使用 AWS CloudTrail 控制台和 AWS CLI 查看过去 7 天的账户活动。

问:CloudTrail 事件历史记录是否会显示账户中的所有账户活动?
AWS CloudTrail 将仅显示您要查看的当前地区在过去 7 天的 CloudTrail 事件历史记录结果,您可以在此处查看支持的 AWS 服务。这些事件仅限于包含创建、修改和删除 API 调用的管理事件和账户活动。要获取账户活动 (包括所有管理事件、数据事件和只读活动) 的完整记录,您需要配置 CloudTrail 跟踪。

问:我可以使用哪些搜索筛选条件来查看账户活动?
您可以指定时间范围以及一项下列属性: 事件名称、 用户名称、 资源名称、 事件源、 事件 ID 和资源类型。

问:如果我没有配置跟踪,是否可以使用查找事件 CLI 命令?
可以。您可以访问 CloudTrail 控制台或使用 CloudTrail API/CLI 查看过去 7 天的账户活动。

问:通过设置 CloudTrail 并创建跟踪,我可以获得哪些额外的 CloudTrail 功能?
通过设置 CloudTrail 跟踪您可以发送您的 CloudTrail 事件到 Amazon S3,、 Amazon CloudWatch Logs 和 Amazon CloudWatch Events。这让您能够利用多种功能来帮助归档、分析和响应 AWS 资源中发生的更改。

问:我是否可对账户中的用户进行访问限制,阻止其查看 CloudTrail 事件历史记录?
可以。CloudTrail 与 AWS Identity and Access Management (IAM) 集成,让您可以控制对 CloudTrail 和 CloudTrail 所需的其他 AWS 资源的访问,包括限制查看和搜索账户活动的权限。为此,您可以从用户 IAM 策略中删除“cloudtrail:LookupEvents”,然后系统将阻止 IAM 用户查看账户活动。

问:在账户创建时启用 CloudTrail 事件历史记录是否会产生相关成本?
使用 CloudTrail 事件历史记录查看或搜索账户活动不会产生任何成本。

问:是否可以关闭账户的 CloudTrail 事件历史记录功能?
对于您创建的任何 CloudTrail 跟踪,您都可以停止日志记录或删除跟踪,该操作将同时停止向 S3 存储桶传送账户活动 (您指定为跟踪配置的一部分),也将停止向 CloudWatch Logs 传送 (如经过配置)。过去 7 天的账户活动仍将存储并显示在 CloudTrail 控制台中,您可以通过 AWS CLI 进行查看。 


问:CloudTrail 支持哪些服务?
AWS CloudTrail 可记录来自大多数 AWS 服务的账户活动和服务事件。有关支持的服务的列表,请在此处参阅 CloudTrail 支持的服务。

问:是否能够记录从 AWS 管理控制台进行的 API 调用?
是的。CloudTrail 会记录从任何客户端进行的 API 调用。AWS 管理控制台、AWS 软件开发工具包、命令行工具和更高级别的 AWS 服务都会调用 AWS API,因此,上述调用均会予以记录。

问:我的日志文件在传送到我的 Amazon S3 存储桶之前,它们会在哪里进行存储和处理?
带有地区终端节点 (EC2、RDS 等) 的服务的活动信息将在执行操作并向您的 Amazon S3 存储桶相关的地区传送该操作的同一地区进行存储和处理。带有单个终端节点 (IAM、STS 等) 的服务的操作信息将在终端节点所在的地区进行存储,在配置 CloudTrail 跟踪并向您的 Amazon S3 存储桶相关的地区传送该跟踪的同一地区进行处理。


问:什么是将跟踪应用到所有地区?
将一个跟踪应用到所有地区是指在一个分区内的所有地区创建相同的跟踪。您可以在 aws-cn 分区中应用跟踪到所有地区。但每当一个新的地区在 aws-cn 分区中启动, CloudTrail 会自动创建与您原跟踪相同设置的一个跟踪在新地区中。

有关地区和分区的更多详细信息,请参阅 Amazon 资源名称和 AWS 命名空间页面。

问:将一个跟踪应用到所有地区有什么好处?
您只需调用一次 API 或单击几次鼠标,即可在分区内跨所有的地区来创建和管理跟踪。您将在一个 S3 存储桶或 CloudWatch Logs 日志组中收到在您的 AWS 账户中跨所有地区进行的账户活动的记录。当 AWS 发布新地区时,您无需执行任何操作即可收到包含新地区的事件历史记录的日志文件。

问:如何将一个跟踪应用到所有地区?
在 CloudTrail 控制台中,在跟踪配置页面选择 “yes” 以将其应用到所有地区。如果您使用的是 SDK 或 AWS CLI,请将 “IsMultiRegionTrail” 设为 “true”。

问:将一个跟踪应用到所有地区后会怎么样?
将一个跟踪应用到所有地区之后,CloudTrail 会通过复制相关跟踪配置在所有地区创建一个新跟踪。CloudTrail 会记录和处理每个地区中的日志文件,并将包含所有 AWS 地区的账户活动的日志文件传送到单个 S3 存储桶和单个 CloudWatch Logs 日志组。如果您指定了一个可选的 SNS 主题,CloudTrail 会将针对所有已发送日志文件的 SNS 通知发送到一个 SNS 主题中。

问:我可以将一个现有的跟踪应用到所有地区吗?
是。您可以将一个现有跟踪应用到所有地区。在您将一个现有的跟踪应用到所有地区后,CloudTrail 会在所有地区为您创建一个新跟踪。如果您之前在其他地区创建过跟踪,则可通过 CloudTrail 控制台查看、编辑和删除这些跟踪。

问:CloudTrail 将相关跟踪配置复制到所有地区需要多长时间?
通常情况下,将相关跟踪配置复制到所有地区只需不到 30 秒。


问:我可以在一个 AWS 地区中创建多少个跟踪?
在一个 AWS 地区中,您最多可以创建五个跟踪。一个应用到所有地区的跟踪会出现在每个地区中,并算作每个地区的一个跟踪。

问:CloudTrail 是否支持资源级别的权限?
可以。使用资源级别的权限,您可以编写精细访问控制策略,以允许或拒绝特定用户对特定跟踪的访问。有关更多详细信息,请查看 CloudTrail 文档


问:活动日志文件可以存储多长时间?
您可以对应用于 CloudTrail 日志文件的保留策略进行控制。默认情况下,您可以无限期存储这些日志文件。您可以使用 Amazon S3 对象生命周期管理规则来定义您自己的保留策略。例如,您可以删除旧日志文件或将这些文件归档至 Amazon Glaicer


问:一个事件中包含了哪些信息?
一个事件可包含相关活动的信息:请求的发出方、使用的服务、执行的操作、操作的参数,以及 AWS 服务返回的响应元素。有关更多详细信息,请参阅用户指南中的 CloudTrail Event Reference 部分。

问:CloudTrail 传送一个 API 调用事件需要多长时间?
一般情况下,CloudTrail 会在 API 调用后 15 分钟内传送事件。

问:CloudTrail 每隔多久会向我的 Amazon S3 存储段传送日志文件?
CloudTrail 大约每隔 5 分钟会向您的 S3 存储段传送日志文件。如果您的账户上没有进行 API 调用,则 CloudTrail 不会传送日志文件。

问:向我的 Amazon S3 存储段传送新的日志文件时,是否会发送通知给我?
是的。您可以启用 Amazon SNS 通知,以便在送达新日志文件时立即采取行动。

问:如果我的账户已启用 CloudTrail,但我的 Amazon S3 存储段未配置正确的策略,会出现什么情况?
CloudTrail 会根据既有的 S3 存储段策略来传送日志文件。如果存储桶策略配置错误,那么 CloudTrail 将无法传送日志文件。


问:什么是数据事件?
数据事件表示对您指定的数据资源执行的 API 活动。如果您为 S3 对象启用数据事件,就会捕获所有 API 活动,包括 CloudTrail 中的 Get Object 和 Get Object ACL 等调用。您可以使用这些事件来满足 IT 审核和合规性要求、执行安全分析、监控 AWS 账户中的特定用户行为模式并发出相关警报,或者立即使用 CloudWatch Events 对任何对象级 API 活动执行操作。

问:如何使用数据事件?
与管理事件类似,由 CloudTrail 记录的数据事件会被传送到 S3 中。启用后,这些事件也可以在 CloudWatch Events 中进行使用。

问:什么是 S3 数据事件?如何记录这些事件?
S3 数据事件表示对 S3 对象执行的 API 活动。要让 CloudTrail 记录这些操作,请在事件选择器中指定一个 S3 存储桶。对指定的 S3 存储桶中的对象所执行的任何 API 操作都会由 CloudTrail 记录下来。


问:我有多个 AWS 账户。但我希望所有账户的日志文件传送到单个 S3 存储桶中。这能实现吗?
是的。您可以配置一个 S3 存储段作为多个账户的目标存储段。有关详细说明,请参阅 AWS CloudTrail 用户指南中的在单个 Amazon S3 存储桶中接收多个来源的 CloudTrail 日志文件部分。


问:什么是 AWS CloudTrail 处理库?
AWS CloudTrail 处理库是一个 Java 库,可以帮助您更轻松地构建读取和处理 CloudTrail 日志文件的应用程序。您可以从 GitHub 下载 CloudTrail 处理库。

问:CloudTrail 处理库可提供哪些功能?
CloudTrail 处理库提供处理以下任务的功能,如不断轮询 SQS 队列、读取和解析 SQS 消息、下载 S3 中存储的日志文件、以容错方式解析和序列化日志文件中的事件。有关更多信息,请前往 CloudTrail 文档的用户指南部分

问:启动使用 CloudTrail 处理库我需要什么软件?
您需要 aws-java-sdk 版本 1.9.3 和 Java 1.7 或更高版本。


问:CloudTrail 是否提供免费套餐?
借助 AWS CloudTrail,您可以免费查看和下载最近 7 天的账户活动来创建、修改和删除支持的服务的操作。

AWS CloudTrail 不会针对创建跟踪收取任何费用,且每个地区内管理事件的第一个副本将免费提供给您的跟踪。您只需为该地区内记录的管理事件的其他副本付费。

问:如果我只有一个跟踪包含管理事件并应用于所有地区,我是否需要付费?
管理事件的第一个副本在每个地区都是免费提供的。

问:如果对包含免费管理事件的现有跟踪启用数据事件,我是否需要付费?
可以。您仅需为数据事件付费。管理事件的第一个副本是免费提供的。


问:AWS 合作伙伴解决方案如何帮助我分析 CloudTrail 记录的事件?

有多个合作伙伴提供了集成解决方案,用于分析 CloudTrail 日志文件。这些解决方案包括变更追踪、故障排查和安全分析等功能。有关更多信息,请参阅 CloudTrail 合作伙伴部分。


问:启用 CloudTrail 是否会影响 AWS 资源的性能,或增加 API 调用的延时?
不可以。启用 CloudTrail 既不会影响 AWS 资源的性能,也不会增加 API 调用的延时。