事件概述
高级软件工程师Maciej Pocwierz最近揭示了一个严重问题:空的S3存储桶可能导致意外的AWS高额账单。在他的案例中,一天内执行了近1亿次S3 PUT请求,导致账单高达1300美元。
事件详情
Pocwierz在eu-west-1区域创建了一个S3存储桶,并上传了一些文件进行测试。在检查AWS账单页面时,他发现账单达到了1300美元,原因是1亿次S3 PUT请求。通过启用AWS CloudTrail日志,他发现这些请求来自多个账户或AWS外部。
根本原因
事件的根本原因是一个广泛使用的开源工具的默认设置,该工具无意中将同一存储桶名称用于其备份,导致了大量未经授权的请求。此外,一半的请求来自不同区域,未指定区域的S3请求会被重定向到us-east-1,增加了额外费用。
经验教训
- S3存储桶容易受到未经授权的请求攻击,建议为存储桶名称添加随机后缀以增强安全性。
- 在执行请求时明确指定AWS区域,可以避免因重定向而产生的额外费用。
- 暂时将存储桶公开写入的决策揭示了疏忽可能导致数据泄露的潜在风险。
社区反应
Pocwierz的发现引发了社区的广泛讨论。在Reddit和Hacker News的讨论中,社区成员指出存储桶名称不应被设计为秘密,但如果不保密,容易受到账单攻击。AWS首席布道师Jeff Barr回应称,AWS同意客户不应为未发起的未经授权请求付费,并会采取措施解决这一问题。
AWS的解决方案
2024年5月13日,AWS宣布将进行更改,确保客户未发起的未经授权请求不会产生费用。
结论
这一事件揭示了AWS S3存储桶在默认设置下的潜在风险,强调了加强安全措施和明确区域指定的重要性。AWS的响应显示了其在处理账单意外问题上的积极态度,并有望推动平台级别的安全改进。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。