AWS CloudTrail
自动记录 AWS 账户内的 API 调用,追踪谁在何时做了什么的审计与安全服务
概述
AWS CloudTrail 是将 AWS 账户内发生的 API 活动作为事件进行记录的服务。管理控制台操作、CLI 命令、SDK 调用、其他 AWS 服务的内部调用等各类操作都是记录对象。默认可免费查看过去 90 天的管理事件,还支持长期保存到 S3 存储桶和通过 CloudTrail Lake 进行查询分析。作为安全事件调查、合规审计和运维故障排查的基础加以利用。
事件类型与记录成本设计
CloudTrail 记录的事件以管理事件、数据事件和 Insights 事件 3 种为代表,此外网络活动事件也会被记录和计费 (截至 2026 年 9 月,事件类型的最新列表请参阅 AWS 官方文档)。管理事件记录 IAM 策略变更、EC2 实例启停、S3 存储桶创建等资源管理操作,可在免费额度内查看 90 天。数据事件记录 S3 对象的 GetObject/PutObject 或 Lambda 函数的 Invoke 等资源内数据操作,但需付费。访问频繁的 S3 存储桶仅读取操作就会产生大量事件,费用会随记录的事件数累积,因此将审计对象限定在敏感数据存储桶的设计很重要。Insights 事件自动检测 API 调用模式的异常 (如调用量相对平常的急增),有助于早期发现未授权访问。
CloudTrail Lake 的 SQL 查询调查
CloudTrail Lake 是可以直接用 SQL 查询事件日志的分析功能。相比将保存在 S3 的日志用 Athena 分析的方式,CloudTrail Lake 可在事件数据存储中保留最长约 10 年 (3,653 天,取决于所选的价格选项) 的事件,并直接用 SQL 搜索 (截至 2026 年 9 月)。需要注意的是,CloudTrail Lake 已于 2026 年 5 月 31 日起停止接受新客户,目前仅现有客户可继续使用 (截至 2026 年 9 月,依据 AWS 官方文档的告知)。Azure 的 Activity Log 需要转发到 Log Analytics 工作区并用 KQL (Kusto Query Language) 分析,而 CloudTrail Lake 无需构建额外基础设施即可执行审计查询,更为便捷。
与 EventBridge 联动的实时检测
CloudTrail 在实务中效果最显著的是与 EventBridge 联动的实时通知。可以将安全组规则变更、IAM 策略变更、根账户登录等安全重要的 API 调用作为触发器,执行 SNS 通知或 Lambda 自动修复。例如,可以构建在检测到 S3 存储桶公共访问被启用后由 Lambda 自动阻止的配置。在事件调查中,标准流程是用 CloudTrail Lake 对相关时间段的 API 调用进行 SQL 查询,确定哪个 IAM 实体从哪个 IP 地址访问了哪个资源。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。