大麦云服 大麦云服 立即咨询

亚马逊云国际站 AWS亚马逊云如何查看操作日志

亚马逊aws / 2026-04-17 17:14:36

你有没有过这种经历——一觉醒来,EC2实例没了,RDS数据库挂了,S3里昨天还在的财务报表文件凭空消失……你抓着咖啡杯盯着控制台发呆,心里默念:"到底是谁干的?是我?是同事?还是那个刚入职、连IAM策略都分不清的实习生?"

别慌。AWS不是黑箱,它早给你悄悄记了一本“小账本”——CloudTrail操作日志。它不光记“谁干了啥”,还记“啥时候干的”“从哪儿干的”“用的啥IP”“传了啥参数”。说白了,就是AWS版《福尔摩斯探案集》,而你,就是那个刚拿到放大镜的华生。

第一步:确认——你的日志,真的开了吗?

很多人的第一反应是冲进CloudTrail控制台狂点“查看事件”,结果页面空空如也,像走进一家打烊的便利店。先别怀疑人生,大概率是你家的日志“还没上户口”——CloudTrail默认不自动开启

打开AWS控制台 → 搜索“CloudTrail” → 进入服务页。如果看到“您尚未创建跟踪”的大字报,恭喜,你成功卡在了起跑线。别急着新建,先问自己三个问题:

  • 亚马逊云国际站 只看当前区域?比如你在东京建了个Lambda,却在弗吉尼亚查日志——相当于去北京派出所调上海的监控,注定扑空。
  • 要管全账号,还是只盯某几个服务?比如你只想审计S3删除动作,没必要让EC2重启、Route53改DNS这些日志塞满存储桶。
  • 日志存哪儿?S3桶有没有开版本控制?(划重点!)没开版本控制的S3桶,一旦日志被覆盖或误删,就真·石沉大海了——这事儿我亲眼见过,一位运维小哥删库后发现日志桶也没开版本,当场给咖啡机鞠了一躬。

✅ 正确姿势:创建多区域跟踪(Multi-Region Trail),勾选“将事件传递到CloudWatch Logs”(方便实时告警),S3目标桶务必提前开启版本控制+生命周期策略(比如保留90天,避免账单爆炸)。

第二步:找日志——不是“搜索”,是“钓鱼”

日志开了≠能马上破案。CloudTrail每秒可能产生成百上千条事件,直接翻页等于在太平洋里捞针。记住口诀:时间 + 资源 + 动作 + 账号四要素齐飞。

举个真实案例:客户反馈“生产环境的ALB监听器突然失效”。我们没瞎猜,而是这样钓:

  1. 锁定时间:ALB出问题的时间点前后15分钟(网络延迟、时区误差得留余量);
  2. 锁定资源:ALB的ARN(arn:aws:elasticloadbalancing:ap-northeast-1:123456789012:loadbalancer/app/my-prod-alb/xxx);
  3. 锁定动作:关键词搜 ModifyListenerDeleteListener
  4. 锁定身份:一看是arn:aws:iam::123456789012:user/devops-lee,再一看IP是公司VPN出口段——真相大白:Lee同学凌晨三点写脚本时把--listener-arns参数写错了,批量覆盖了监听器。

💡 小技巧:在CloudTrail事件列表页,点击右上角“创建CloudTrail事件查询”,它会自动生成结构化查询语句。比如你想查所有Delete*开头的操作:
{ "eventSource": "ec2.amazonaws.com", "eventName": "Delete*" }
比手动翻页快十倍,且支持正则(DeleteSnapshot|DeleteVolume)。

第三步:读日志——别被JSON吓退,重点看这五行

点开一条事件,密密麻麻的JSON看得人头皮发紧。其实90%的破案线索藏在这五处:

字段看啥例子 & 人话解读
userIdentity.arn谁干的arn:aws:sts::123456789012:assumed-role/ProdAdminRole/i-0abc123 → 是某个EC2实例用角色干的,不是真人
sourceIPAddress从哪儿干的203.0.113.45 → 查企业防火墙日志,确认是否异常出口;127.0.0.1?警惕本地代理或恶意脚本
requestParameters干了啥细节{"bucketName":"finance-reports","key":"Q3-2024.xlsx"} → 明确删的是哪个文件,不是“随便删删”
errorCode/errorMessage失败原因AccessDenied + Not authorized to perform sts:AssumeRole → 权限配置漏了,不是代码bug
eventID唯一身份证复制这个ID,在CloudTrail控制台右上角“按事件ID搜索”,秒定位原始记录(比Ctrl+F靠谱一万倍)

第四步:防患未然——别等删库才想起日志

最后送你三条血泪经验:

  • 日志≠摆设,要联动:把CloudTrail投递到CloudWatch Logs后,立刻配一个告警规则——比如只要出现DeleteBucketTerminateInstances,立刻钉钉/邮件轰炸负责人。别让“事后诸葛亮”变成“事前稻草人”。
  • 定期“洗日志”:每月初导出上月关键事件(用AWS CLI:aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteBucket --start-time $(date -d 'last month' +%Y-%m-%d)T00:00:00Z),做成PDF发给安全组,既留痕又促整改。
  • 新人入职第一课,不是学Lambda,是学查日志:让他们亲手删一个测试S3对象,再教他们从日志里找回操作者、时间、IP——比讲一百遍IAM策略都管用。

所以,下次再遇到“神秘消失”的资源,别先骂AWS,先泡杯茶,打开CloudTrail,输入时间戳,点下搜索键——那本AWS偷偷写的《嫌疑人X的献身》,正静静躺在S3里等你翻开第一页。

(P.S. 如果你试了还是找不到日志,请检查:①跟踪是否处于“运行中”状态(不是“已停止”);②S3桶策略是否允许CloudTrail写入;③是不是在错误区域的CloudTrail里找跨区域事件。这三个坑,我替你们都踩过了。)

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系