华为云云审计服务CTS实战:操作记录查询与关键事件追溯
一、背景:出了问题,先回答“谁动了什么”
云上资源越来越多,团队成员、自动化脚本、第三方工具都可能通过控制台或 API 修改资源。某天线上服务突然无法访问,排查后发现是安全组的入方向规则被删了——接下来最关键的问题就是:谁、在什么时间、从哪个 IP、通过什么方式做了这个操作?
华为云 云审计服务 CTS(Cloud Trace Service) 正是为此而生。它记录云账号下对各云服务资源的操作事件,提供事件查询、审计转储和关键操作通知能力,可用于安全分析、合规审计、资源变更追踪和问题定位。本文以“追溯安全组规则被删除”为例,完整走一遍 CTS 的使用流程。
二、核心概念
| 概念 | 说明 |
|---|---|
| 事件(Trace) | 一次操作的记录,包含操作人、时间、源 IP、请求与响应等信息 |
| 管理事件 | 对云资源的创建、修改、删除等管理类操作,例如删除安全组规则 |
| 数据事件 | 对数据本身的读写操作,例如 OBS 桶内对象的上传和下载 |
| 追踪器(Tracker) | 事件的采集与转储配置;管理追踪器在开通 CTS 时自动创建 |
| 事件级别 | normal(正常)、warning(警告)、incident(事故),用于快速筛选 |
需要注意:控制台中的事件列表默认只保留最近 7 天的操作记录,若要满足长期审计或合规要求,必须配置转储到对象存储服务 OBS 或云日志服务 LTS。
三、开通 CTS 并确认管理追踪器
- 登录华为云控制台,在服务列表中搜索并进入“云审计服务 CTS”,选择资源所在区域(例如“华北-北京四”)。
- 首次进入时按提示开通服务,系统会自动创建名为
system的管理追踪器,开始记录管理事件。 - 在左侧导航选择“追踪器”,确认
system追踪器状态为“已启用”。 - 如果需要审计 OBS 桶内对象的读写,可额外创建数据追踪器,选择目标桶和要记录的操作类型(读、写或全部)。
提示:CTS 按区域记录事件,多区域部署的业务需要在每个用到的区域分别确认追踪器状态;部分全局服务(如统一身份认证 IAM)的事件通常在默认区域查询。
四、实战:追溯被删除的安全组规则
4.1 在事件列表中筛选
- 进入 CTS 控制台,选择“事件列表”。
- 设置筛选条件:
- 事件类型:管理事件
- 云服务:VPC(安全组归属于虚拟私有云服务)
- 资源类型:安全组规则(security_group_rule)
- 时间范围:选择故障发生前后的时间段
- 也可以直接按“事件名称”筛选
deleteSecurityGroupRule,或按“操作用户”“事件级别”进一步缩小范围。 - 点击查询,找到对应记录后展开,查看事件详情。
4.2 解读审计事件字段
一条事件的详情是 JSON 结构,下面是一个精简示例(数据已脱敏):
{
"trace_id": "6b1f0c2e-xxxx-xxxx-xxxx-0a1b2c3d4e5f",
"trace_name": "deleteSecurityGroupRule",
"trace_type": "ConsoleAction",
"service_type": "VPC",
"resource_type": "security_group_rule",
"resource_name": "sg-web-prod",
"source_ip": "203.0.113.25",
"trace_status": "normal",
"code": "204",
"time": 1793500000000,
"record_time": 1793500001234,
"user": {
"name": "dev-zhang",
"domain": { "name": "demo-account" }
}
}
重点关注以下字段:
user.name:执行操作的 IAM 用户,配合 IAM 权限即可定位责任人;source_ip:请求来源 IP,可判断是否来自公司出口或异常地址;trace_type:ConsoleAction表示控制台操作,ApiCall表示 API/SDK 调用,SystemAction表示系统内部操作;code与trace_status:判断操作是否成功;失败的高危操作同样值得关注,可能是越权尝试;time:操作发生时间(毫秒时间戳),换算后与业务故障时间线对齐。
到这里,“谁在什么时间、从哪里删除了规则”就清楚了。恢复规则后,建议同步检查该用户的权限是否过大,按最小权限原则收敛。
五、配置转储:让审计记录长期保存
7 天的查询窗口对合规审计远远不够,推荐把事件转储到 OBS:
- 在 OBS 中创建专用桶,例如
cts-audit-logs,建议开启服务端加密,并限制只有审计管理员可读。 - 回到 CTS 的“追踪器”页面,对
system追踪器点击“配置”。 - 打开“转储到 OBS”,选择上述桶,并设置文件前缀,例如
prod。 - 视需要开启“事件文件完整性校验”,用于证明转储文件未被篡改。
- 如需在线检索,可同时开启“转储到 LTS”,在云日志服务中用关键词或 SQL 分析历史事件。
转储后,事件文件按区域和日期分目录存放,结构大致如下:
cts-audit-logs/
└── prod/CloudTraces/cn-north-4/2026/11/01/system/VPC/
└── xxxx_CloudTrace_cn-north-4_2026-11-01T10-20-00Z_xxxx.json.gz
可以结合 OBS 生命周期规则,将 30 天前的文件转为低频或归档存储,降低长期保存成本。
六、关键操作通知:高危操作实时告警
事后追溯很重要,但更理想的是“事发即知”。CTS 的关键操作通知可将指定操作通过消息通知服务 SMN 推送出来:
- 在 SMN 中创建主题,例如
cts-critical-ops,添加邮件或短信订阅并完成确认。 - 进入 CTS 控制台“关键操作通知”,点击“创建关键操作通知”。
- 选择操作类型:可选“完整操作”,也可以“自定义操作”,勾选高危事件,例如:
- VPC:
deleteSecurityGroup、deleteSecurityGroupRule - ECS:
deleteServer - IAM:
createCredential(新建访问密钥)、login(控制台登录)
- VPC:
- 指定需要关注的用户或用户组(可选),选择刚创建的 SMN 主题,保存即可。
之后一旦有人执行这些操作,相关人员会第一时间收到通知,大幅缩短发现异常的时间。
七、用命令行与 API 批量查询
需要在脚本中定期巡检时,可以使用华为云命令行工具 KooCLI(hcloud)。凭证请通过 hcloud configure init 交互式配置或使用环境变量,不要把 AK/SK 写进脚本或代码仓库。
# 查询北京四区域最近一段时间内的管理事件(时间为毫秒时间戳)
hcloud CTS ListTraces \
--cli-region="cn-north-4" \
--trace_type="system" \
--service_type="VPC" \
--from=1793433600000 \
--to=1793520000000 \
--limit=50
对应的 REST 接口为:
GET /v3/{project_id}/traces?trace_type=system&service_type=VPC&from=...&to=...&limit=50
返回结果为 JSON,可配合 jq 提取关键字段做日报,例如统计每个用户的删除类操作次数。
八、权限、费用与常见问题
权限建议:
- 查看事件只需授予只读权限(如
CTS ReadOnlyAccess),配置追踪器与通知需要CTS FullAccess; - 审计日志所在 OBS 桶应与业务账号权限隔离,避免操作人删除自己的操作痕迹。
费用说明: CTS 记录管理事件本身通常不额外收费,但转储产生的 OBS 存储、LTS 日志量以及 SMN 短信通知会按各自服务计费,具体以官网价格页为准。
常见问题排查:
- 事件列表查不到记录:确认区域是否选对、时间范围是否超过 7 天,以及该服务是否已对接 CTS。
- OBS 中没有转储文件:检查桶是否存在、CTS 是否获得写入该桶的授权,转储通常有数分钟延迟。
- 数据事件没有记录:数据事件需要单独创建数据追踪器,管理追踪器不会记录对象读写。
- 通知收不到:确认 SMN 订阅已处于“已确认”状态,且关键操作中勾选的事件名称正确。
九、总结
云审计服务 CTS 是云上安全的“黑匣子”:管理追踪器自动记录资源操作,事件列表帮助我们在故障发生后快速回答“谁动了什么”;转储到 OBS/LTS 满足长期留存与合规审计;关键操作通知把高危操作从“事后追溯”变成“实时感知”。建议在账号开通之初就完成转储和通知配置,再结合 IAM 最小权限与云日志服务 LTS 分析,构建一套完整的操作审计与安全追溯体系。
- 点赞
- 收藏
- 关注作者
评论(0)