CloudTrail 控制台入门:启用 CloudTrail、选择区域、创建跟踪
说真的,刚开始接触 CloudTrail 的时候,我第一反应是「这玩意儿不就是日志开关吗?打开就行了呗」。结果第一次在生产环境里配完,第二天审计找我要跨区域日志,我一脸懵——根本没打开。后来才明白,CloudTrail 的配置其实藏着不少细节,尤其是区域选择和跟踪类型。这一章咱们就手把手过一遍控制台操作,我把我踩过的坑也一并说出来,你少走点弯路。
3.1 第一步:找到 CloudTrail 控制台
登录 AWS 管理控制台后,在服务搜索框里输入 CloudTrail,回车就进去了。我个人习惯把它固定到常用服务列表里,因为后面审计查日志的时候会频繁用到。
CloudTrail 的仪表盘长什么样?默认会显示最近的事件摘要,还有一个「创建跟踪」的大按钮。嗯,这里要注意——仪表盘上的「事件历史」只能看过去 90 天的管理事件,而且不支持自定义筛选规则。真要拿来做合规审计,必须创建正式的跟踪。
3.2 选择区域:全局服务还是单区域?
这是最容易踩坑的地方。CloudTrail 的配置分为两类区域选择:
- 全局服务事件(Global Service Events):像 IAM、CloudFront、Route 53 这类全局服务,默认只记录在
us-east-1区域。你要是不专门勾选「应用到所有区域」,这些日志就丢了。 - 区域事件:EC2、S3、Lambda 等区域性服务,可以按需选择单个或多个区域。
我记得有一次帮客户做合规排查,发现他们只开了 ap-northeast-1 的跟踪,结果 IAM 策略变更的记录根本没抓到。后来补上全局事件,整整补了三个月的数据。所以我的建议是——除非你有非常明确的合规隔离需求,否则直接选择「应用到所有区域」。
| 场景 | 推荐区域选择 | 原因 |
|---|---|---|
| 单账号简单审计 | 全部区域 + 全局服务 | 不漏事件,省心 |
| 多账号集中审计 | 全部区域 + 全局服务 | 方便跨账号聚合 |
| 数据主权受限 | 指定区域 | 日志必须留在特定地域 |
| 只关注管理事件 | 单区域 + 排除全局 | 减少存储成本 |
3.3 创建跟踪:一步一步来
好了,现在开始实际创建。点击「创建跟踪」按钮,会进入一个表单页面。我来拆解几个关键字段:
3.3.1 跟踪名称
随便起,比如 company-audit-trail。但我建议你用组织+用途+环境的命名方式,比如 prod-all-regions-global。后期日志多了,从文件名就能看出归属。
3.3.2 存储位置
CloudTrail 默认把日志写入 S3 桶。这里有三个选项:
- 创建新 S3 桶:最省事,CloudTrail 自动帮你建好并配置桶策略。
- 使用现有 S3 桶:需要自己确保桶策略允许 CloudTrail 写入。我曾经因为桶策略写错,导致日志丢了三天,查了半天才发现是 Deny 规则优先级太高。
- 现有 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 完整的创建流程一览
下面这张图把从登录到创建完成的整个流程串起来了,你可以对照着操作:
3.5 创建后的检查清单
点击「创建」之后,别急着关页面。我通常会做三件事来确认跟踪正常工作:
- 查看跟踪状态:确保状态显示为「正在记录」。
- 手动触发一个事件:比如创建一个测试 S3 桶,等 5 分钟再看 S3 桶里有没有出现日志文件。这个动作看着简单,但能直接验证权限和存储都通。
- 检查 CloudWatch Logs(如果开启了):确认日志组里有新事件流入。
cloudtrail.amazonaws.com,并且 Action 包含了 s3:PutObject。我至少有三次排查都是因为这个原因。
好了,到现在为止你已经掌握了一个完整的 CloudTrail 跟踪创建流程。区域选择、存储配置、事件类型这些要点都过了一遍。我自己刚开始学的时候觉得这玩意儿没什么技术含量,直到因为漏配导致合规问题被老板点名,才意识到每一个选项都是坑——嗯,现在你应该能跳过这些坑了。