You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AWS S3存储桶访问日志配置及未知IE访问源排查技术问询

AWS S3存储桶访问日志配置及未知IE访问源排查技术问询

嗨,我完全懂你面对这种无文档遗留系统的无奈——看着这些截断的IE访问记录,却拿不到关键的IP、身份信息来排查,确实让人头大。下面给你一步步梳理怎么解决这个问题,以及你关心的各种信息能不能获取到:

一、先搞定S3服务器访问日志,拿到核心访问细节

S3自带的**服务器访问日志(Server Access Logging)**是最直接的方式,能给你补上现在缺失的IP和请求者身份信息。配置起来很简单:

  • 登录AWS控制台,找到你的media.myapp存储桶,切换到「属性」标签页,找到「服务器访问日志」选项
  • 启用日志记录,指定一个单独的存储桶来存放日志(推荐用单独桶,避免日志循环写入原桶),记得目标桶和原桶要在同一区域(这里是eu-central-1),还可以设置日志前缀方便管理
  • 保存配置后,后续的访问请求会在几分钟到几小时内生成日志文件,日志里的每条记录会包含:
    • source-ip:访问的公网IP地址,这正是你需要的关键信息
    • requester:如果是IAM用户/角色发起的请求,会显示对应的ARN;如果是匿名访问,这个字段为空
    • 还有你已经看到的用户代理(UA)、请求类型(REST.GET.OBJECT)、TLS版本这些信息

举个日志条目的简化示例(你实际看到的是空格分隔的文本格式):

2024-05-20T12:34:56Z eu-central-1 media.myapp 192.0.2.1 arn:aws:iam::123456789012:user/legacy-app-user REST.GET.OBJECT object-key TLSv1 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; ...)

二、用CloudTrail追踪更详细的IAM身份与API操作

如果需要更深入的身份追踪(比如确认是哪个IAM账号/角色发起的请求),AWS CloudTrail会更合适:

  • 打开CloudTrail控制台,创建一个新的追踪,勾选包含S3服务的所有API操作
  • 配置日志存储桶(同样建议单独桶),之后所有针对S3的API调用都会被记录下来
  • 你可以在CloudTrail的「事件历史」里搜索REST.GET.OBJECT操作,或者用Athena分析日志,能查到:
    • 请求的源IP
    • 调用者的完整IAM身份(用户/角色的名称、ARN)
    • 请求的时间、目标对象路径等细节

三、关于MAC地址的说明

这里要给你提个醒:MAC地址是局域网层面的标识,互联网上的请求不会把MAC地址传递到S3,所以你没办法从S3的日志或者CloudTrail里获取到这个信息。公网IP是你能拿到的最准确的网络定位依据,结合UA里的系统版本(比如Windows NT 6.1对应Windows 7,Windows NT 6.0对应Windows Vista),可以大致推断设备类型。

排查小建议

等你拿到IP后,可以先看看是不是公司内部的IP段(毕竟是遗留基础设施,大概率是旧的内部系统还在使用IE7访问);另外检查下media.myapp桶的Bucket Policy和ACL,看看有没有开放了匿名访问,或者允许特定IP段的访问,避免非预期的外部请求。

备注:内容来源于stack exchange,提问作者Dimitrios Desyllas

火山引擎 最新活动