AWS CloudTrail
AWS CloudTrail 是亚马逊云服务(AWS)提供的一项日志管理服务,主要用于记录和监控 AWS 账户中的所有 API 活动,包括用户操作、AWS 服务之间的交互以及来自控制台、CLI、SDK 等渠道的请求。它会捕获这些活动的详细信息,如操作类型、发起者身份、时间、资源影响等,并将日志数据以事件形式存储在 Amazon S3 桶中,同时支持与 Amazon CloudWatch 等服务集成以实现实时告警和分析。CloudTrail 可以帮助用户满足合规审计需求、追踪资源变更、排查安全问题,以及实现对 AWS 环境的全面可见性和治理,是保障云环境安全性和可追溯性的核心工具之一。
观测云
观测云是一个统一实时监测平台,它提供全面的系统可观测性解决方案,帮助用户快速实现对云平台、云原生、应用及业务的监控需求。观测云的核心功能包括:基础设施监测,日志采集和分析,用户访问监测(RUM),应用性能监测(APM),服务可用性监测(拨测),安全检测(SIEM),智能监控等等。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用服务的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。
AWS CloudTrail 日志采集
1、日志采集方式
- 将 AWS CloudTrail 日志写入 S3 存储桶
- S3 触发 Event 调用 Lambda 函数,通过 Datait 或者 DataWay 将数据上报到观测云平台(推荐通过 DataWay 直接上传,本文将主要介绍这种方式)

2、配置开通 CloudTrail
要将 AWS CloudTrail 日志写入 S3 存储桶,可按以下步骤配置开通:
- 创建 S3 存储桶:在 AWS 管理控制台进入 S3 服务,创建一个专用存储桶(建议使用唯一名称并启用版本控制),确保桶策略允许 CloudTrail 写入日志(可在创建跟踪时自动生成策略)。
- 创建 CloudTrail 跟踪:进入 CloudTrail 控制台,点击"创建跟踪",设置跟踪名称,选择"应用于所有区域"或指定区域。
- 配置日志存储:在"存储位置"中选择"现有 S3 存储桶"或创建新桶,指定存储桶名称。
- 设置高级选项(可选) :如启用多区域跟踪、配置日志文件验证、设置 CloudWatch Logs 集成等。
- 完成创建 :确认配置后点击"创建跟踪",系统会自动向指定 S3 存储桶授予必要权限,后续 CloudTrail 捕获的 API 活动日志将写入该桶(路径格式通常为
AWSLogs/<账户ID>/CloudTrail/<区域>/<年份>/<月份>/<日期>/)。
配置完成后,可在 S3 存储桶中查看生成的日志文件,这些文件以 JSON 格式存储,包含详细的 API 调用记录。
3、创建 Lambda 函数
- 打开 Lamba 控制台的函数页面。
- 选择创建函数
- 选择从头开始创作
- 输入函数名称
- 设置
运行时选项为Python 3.10 - 在 Execution Role(执行角色)中,Lambda 创建执行角色,该角色授予函数上载日志到 Amazon CloudWatchlogs 的权限。在您调用函数时,Lambda 函数担任执行角色,并使用该执行角色为 Amazon 软件开发工具包创建凭证和从事件源读取数据,lambda 权限如下:
yaml
logs: CreateLogGroup
logs: CreateLogStream
logs: PutLogEvents
lambda: * AmazonS3ReadOnlyAccess
-
点击创建函数 8. 在 GitHub 中拉取同步代码至下方代码源中将
lambda-forward.py内容复制到lambda-function.py中 -
在将
lambda-function.py相同目录下新建setting.py、datakit.py、dataway.py文件,并将 GitHub 中相应文件代码复制进去 -
添加环境变量,以下是必要的配置
- DATAKIT_IP: datakit 部署的 ip 地址,上报数据源为 datakit
- DATAKIT_PORT: datakit 服务端口,上报数据源为 datakit
- DATAWAY_URL: dataway URL (Eg: xx-openway.xxx.com) 上报数据源为 dataway
- WORKSPACE_TOKEN: 工作空间
Token,上报数据源为 dataway
注意:上报数据源 datakit 与 dataway 必选一个,选择 datakit 请配置DATAKIT_IP, 选择 dataway 请配置DATAWAY_URL、WORKSPACE_TOKEN
- 如果 datakit 端口不是默认的 9529 可添加环境变量 DATAKIT_PORT 填写为正确的端口地址(
此变量非必填) - 点击
Deploy发布
4、配置 Lambda 触发器
- 点击
添加触发器 - 设置
选择一个源为S3 - 选择需要监听的
bucket - 选择要触发 Lambda 函数的事件 Event types
- 同意 我承认不推荐对输入和输出使用相同的 S3 bucket,并且这种配置可能导致递归调用、增加 Lambda 使用和增加成本
- 点击添加
5、查看 CloudTrail 日志
在观测云的日志查看器,可以通过 source:cloudtrail 来进行搜索。
CloudTrail 日志解析
事件类型
CloudTrail 会记录管理事件、数据事件、网络活动事件和 Insights 事件。例如:
- 管理事件:也称为控制面板操作,是对 AWS 账户中的资源执行的管理操作,例如创建、修改或删除 Amazon S3 存储桶、启动或终止 Amazon EC2 实例等。同时,还包括非 API 事件,如用户登录账户的控制台登录事件。
- 数据事件:即数据层面操作,是对资源本身或在资源内执行的操作,通常是高容量活动。例如 Amazon S3 对象级别 API 操作(如 GetObject 和 PutObject)、Amazon Lambda 函数调用 API、Amazon DynamoDB 项目级别 API 操作等,可记录对特定 DynamoDB 表中项目的创建、读取、更新或删除操作。
- 网络活动事件:用于记录使用 VPC 端点从私有 VPC 到 AWS 服务执行的 API 操作,包括成功通过 VPC 端点策略的 AWS API 调用和被拒绝访问的调用。VPC 端点所有者可通过该日志查看因 VPC 端点策略而被拒绝的操作日志,或确定数据边界之外的行为者是否尝试访问 S3 存储桶中的数据。
- 洞察事件:CloudTrail Insights 会持续分析 CloudTrail 管理事件,当检测到与写入 API 调用相关的异常活动时,会记录 Insights 也就是洞察事件,并将其传送到目标 S3 存储桶、CloudWatch Events 或 CloudWatch Logs 组,以便用户跟踪和响应异常情况。
事件的详细信息可以参考 AWS 文档:docs.aws.amazon.com/zh_cn/awscl...
日志字段解析
观测云已内置了 CloudTrail 日志解析,可以在【日志】 - 【Pipelines】 - 【Pipeline 官方库】 - 选择 CloudTrail ,添加类型为 中心 Pipeline,保存即可,对新上报数据生效。

日志解析之后,可在查看器中查看扩展字段,并可以根据这些字段快速搜索,或聚类分析。例如:每个 CloudTrail 事件日志都包含一个 userIdentity 元素,描述执行操作的用户或服务。在该元素中,type 字段描述请求是由哪种类型的用户或服务发出的,以及该用户或服务用于发出请求的凭据级别。CloudTrail userIdentity 类型主要包括以下几类:
- Root:该请求是使用您的主 AWS 账户凭证发出的。如果您为 AWS 账户设置了别名,则该别名将显示在此处。
- IAMUser:该请求是使用 IAM 用户的凭证发出的。
- FederatedUser:该请求是由用户通过联合令牌提供的临时安全凭证发出的。
- AWSAccount:该请求是由第三方 AWS 账户发出的。
- AWSService:该请求是由 AWS 服务账户发出的。许多 AWS 服务都使用服务账户代表您执行自动化操作。
- AssumedRole:该请求是使用通过 AWS 安全令牌服务 (STS) AssumeRole 操作获取的临时凭证发出的。
有关 CloudTrail 事件记录字段的详细信息描述,可以参考 AWS 的文档:docs.aws.amazon.com/zh_cn/awscl...
场景视图
登录观测云控制台,点击【场景】->【新建仪表板】,输入 "CloudTrail", 选择 "AWS CloudTrail 日志分析视图",点击 "确定" 即可添加视图。
为了有效地进行安全审计、故障排查和合规性监控,AWS CloudTrail 日志分析视图重点关注基于以下资源类型的日志非常重要,因为大多数威胁都源自这些地方。您也可以根据自身的业务需求进行调整配置。
- 用户账户
- 存储桶
- 网络组件




同时,对于一些进行了日志条件配置的视图,您可以点击视图 -> 查看相关日志,可以直接跳转到日志查看器,进行相关日志的查看:

SIEM 安全监测
针对 CloudTrail 日志的监控告警,可以通过 SIEM (安全信息和事件管理)。观测云的 SIEM 通过高性能日志分析引擎,帮助您从海量日志数据中即时识别潜在的攻击行为:异常登录、配置变更、跨账户访问等安全问题。观测云 SIEM 功能的核心理念是将安全事件视为一种特殊的、需要被观测的数据。它整合了 AWS CloudTrail 等多个数据源,并利用其强大的数据处理和分析能力,提供了一站式的安全监控和分析平台。
观测云提供了丰富的、基于最佳实践的内置安全规则,即官方检测库,涵盖了多种常见的安全威胁场景:
- 高危操作监控:例如,监控根用户(Root User)的登录或 API 调用、用户删除关键资源(如数据库、S3 存储桶)等。
- 异常行为检测:例如,检测来自未知 IP 地址的登录、短时间内频繁的 API 调用失败(可能是暴力破解或权限枚举)、或者特定端口被非授权访问等。
- 策略违规检测:例如,监控 AWS IAM 策略的变更、S3 存储桶被设置为公开访问等。
您可以点击【安全监测】-> 安全事件管理 SIEM 下的【检测规则】,点击右上角的【官方检测库】进行添加。

总结
观测云对 AWS CloudTrail 的日志分析是一个端到端的、高度集成的过程:首先,可以通过 S3 存储桶实时、完整地采集日志;接着,利用其强大的能力自动解析原始 JSON 格式,将关键字段转化为可查询的标签;随后,您可以借助内置或自定义的仪表盘对账户活动进行可视化分析,快速掌握全局概览;最后,通过观测云的 SIEM 功能,您利用内置的安全规则和实时告警,将日志从被动查询转变为主动威胁检测,实现从数据到洞察,再到行动的闭环。