CloudTrail 控制台入门:启用 CloudTrail、选择区域、创建跟踪

说真的,刚开始接触 CloudTrail 的时候,我第一反应是「这玩意儿不就是日志开关吗?打开就行了呗」。结果第一次在生产环境里配完,第二天审计找我要跨区域日志,我一脸懵——根本没打开。后来才明白,CloudTrail 的配置其实藏着不少细节,尤其是区域选择和跟踪类型。这一章咱们就手把手过一遍控制台操作,我把我踩过的坑也一并说出来,你少走点弯路。

3.1 第一步:找到 CloudTrail 控制台

登录 AWS 管理控制台后,在服务搜索框里输入 CloudTrail,回车就进去了。我个人习惯把它固定到常用服务列表里,因为后面审计查日志的时候会频繁用到。

CloudTrail 的仪表盘长什么样?默认会显示最近的事件摘要,还有一个「创建跟踪」的大按钮。嗯,这里要注意——仪表盘上的「事件历史」只能看过去 90 天的管理事件,而且不支持自定义筛选规则。真要拿来做合规审计,必须创建正式的跟踪。

小提示: 如果你刚接触 AWS,可以先看看「事件历史」了解 CloudTrail 的记录格式。但我建议你直接跳到创建跟踪,因为生产环境肯定要用到 S3 存储和 CloudWatch Logs 集成。

3.2 选择区域:全局服务还是单区域?

这是最容易踩坑的地方。CloudTrail 的配置分为两类区域选择:

  • 全局服务事件(Global Service Events):像 IAM、CloudFront、Route 53 这类全局服务,默认只记录在 us-east-1 区域。你要是不专门勾选「应用到所有区域」,这些日志就丢了。
  • 区域事件:EC2、S3、Lambda 等区域性服务,可以按需选择单个或多个区域。

我记得有一次帮客户做合规排查,发现他们只开了 ap-northeast-1 的跟踪,结果 IAM 策略变更的记录根本没抓到。后来补上全局事件,整整补了三个月的数据。所以我的建议是——除非你有非常明确的合规隔离需求,否则直接选择「应用到所有区域」。

场景 推荐区域选择 原因
单账号简单审计 全部区域 + 全局服务 不漏事件,省心
多账号集中审计 全部区域 + 全局服务 方便跨账号聚合
数据主权受限 指定区域 日志必须留在特定地域
只关注管理事件 单区域 + 排除全局 减少存储成本
曾经踩过的坑: 我曾在新建跟踪时勾选了「应用到所有区域」,但忘了同时勾选「全局服务事件」。结果 IAM 的日志还是丢了。这两个选项是独立的,千万记得都打开。

3.3 创建跟踪:一步一步来

好了,现在开始实际创建。点击「创建跟踪」按钮,会进入一个表单页面。我来拆解几个关键字段:

3.3.1 跟踪名称

随便起,比如 company-audit-trail。但我建议你用组织+用途+环境的命名方式,比如 prod-all-regions-global。后期日志多了,从文件名就能看出归属。

3.3.2 存储位置

CloudTrail 默认把日志写入 S3 桶。这里有三个选项:

  • 创建新 S3 桶:最省事,CloudTrail 自动帮你建好并配置桶策略。
  • 使用现有 S3 桶:需要自己确保桶策略允许 CloudTrail 写入。我曾经因为桶策略写错,导致日志丢了三天,查了半天才发现是 Deny 规则优先级太高。
  • 现有 S3 桶(来自其他账号):多账号场景用,但桶策略要跨账号授权。
我的经验: 生产环境建议用「创建新 S3 桶」,让 CloudTrail 自动配置。后期如果要迁移,再通过 S3 复制功能转到其他桶。省心很多。

3.3.3 日志文件前缀和加密

前缀是可选的,用来给 S3 里的日志文件加路径,比如 prod/cloudtrail/。加密方面,默认使用 SSE-S3,也支持 KMS。如果你有合规要求必须使用自己管理的密钥,可以选 SSE-KMS,但记得给 CloudTrail 加上解密权限。

3.3.4 启用 CloudWatch Logs 集成

这是进阶选项。开启后 CloudTrail 会把日志实时发送到 CloudWatch Logs 日志组,方便你用日志洞察、指标过滤或告警。我个人习惯在跟踪级别就打开,因为后期再改需要重建跟踪,比较麻烦。

不过要注意——CloudWatch Logs 会产生额外费用,而且日志量大的时候,写入限流可能会丢事件。建议设置合理的保留期,比如 30 天,同时 S3 桶里保留更长时间。

3.3.5 管理事件 vs 数据事件 vs 洞察事件

事件类型 记录内容 费用 推荐
管理事件(Management) API 调用(创建、删除、修改资源) 免费(限制 2 个跟踪) 必须启用,默认就勾选
数据事件(Data) S3 对象操作、Lambda 调用等 按日志量计费 按需启用,注意成本
洞察事件(Insight) 异常API活动模式 按洞察事件量计费 安全团队可启用,适合高安全环境

一般来说,审计日志只要求管理事件;数据事件只有极少数场景需要(比如你想监控谁读了某个 S3 文件)。启动数据事件时一定要加前缀或 ARN 过滤器,不然你整个桶的每次 GET 请求都会被记录,一个月账单够你买台服务器的。

3.4 完整的创建流程一览

下面这张图把从登录到创建完成的整个流程串起来了,你可以对照着操作:

CloudTrail 创建跟踪流程 1. 登录控制台 2. 创建跟踪 3. 配置属性 4. 选择区域 5. 设置存储(S3) 6. 创建完成 ⚠️ 避坑提示 • 第3步不要跳过「应用到所有区域」和「全局服务事件」 • 第5步如果用现有S3桶,记得检查桶策略 • 创建后无法修改跟踪类型(管理/数据),建议一步到位

3.5 创建后的检查清单

点击「创建」之后,别急着关页面。我通常会做三件事来确认跟踪正常工作:

  1. 查看跟踪状态:确保状态显示为「正在记录」。
  2. 手动触发一个事件:比如创建一个测试 S3 桶,等 5 分钟再看 S3 桶里有没有出现日志文件。这个动作看着简单,但能直接验证权限和存储都通。
  3. 检查 CloudWatch Logs(如果开启了):确认日志组里有新事件流入。
一个小技巧: 如果日志文件迟迟未生成,先检查 S3 桶策略里的 Principal 是不是 cloudtrail.amazonaws.com,并且 Action 包含了 s3:PutObject。我至少有三次排查都是因为这个原因。

好了,到现在为止你已经掌握了一个完整的 CloudTrail 跟踪创建流程。区域选择、存储配置、事件类型这些要点都过了一遍。我自己刚开始学的时候觉得这玩意儿没什么技术含量,直到因为漏配导致合规问题被老板点名,才意识到每一个选项都是坑——嗯,现在你应该能跳过这些坑了。