亚马逊旗下云计算平台 AWS 的 S3 对象存储功能被开发者和企业广泛使用,S3 存储桶可以存储各种文件并设置权限提供公网访问,许多开发者将各类静态文件直接存储在 S3 中进行远程调用。
但这里有个问题,S3 存储桶是收取 HTTP 请求和带宽费用的,收取这部分费用还算是合理,但 S3 的计费规则里甚至对错误请求也会收费。
早前有一名开发者发现自己的 S3 存储桶遭到未经授权的人高频访问,随后开发者直接封禁了对应 IP/UA 的访问,实际访问时将出现 403 之类的错误。
万万没想到啊,之后竟然还是收到了 AWS 的巨额账单,因为 AWS 对 HTTP 403 这类禁止访问的错误请求同样还是收取请求费,也就是说,即便封禁某个 IP 或 UA,这个人继续保持高频恶意请求,就会给开发者产生巨额的费用账单,这可能会让一些开发者一夜破产。
这名开发者针对该问题联系 AWS 进行处理后,AWS 取消了这部分请求费账单,但 AWS 强调这是合理收费,因为本来账单规则里就没有注明 HTTP 403 是免费请求。
这个问题也引起了诸多开发者和企业的担忧,由于 AWS S3 存储桶的名称是自定义的,后面的地址则是固定的,因此甚至可以枚举各种存储桶名称故意刷账单,对开发者和企业来说这种问题几乎无法规避,毕竟已经设置 403 了,设置其他错误代码也无济于事,都是收费的。
到 5 月 13 日 AWS 发布重要的计费公告,宣布自当日起所有区域的个人或企业 AWS 账户产生的未经授权请求不再收费,包括带宽费也被取消。
还有个额外说明是如果发起请求的是所有者自己,那即便是 HTTP 403 也会计算请求费,所以开发者在配置时最好检查 API KEY,尽可能避免使用自己账户直接调用,否则不小心出现 403 那还是得计费。
下面是更新后的 AWS S3 所有不计费的状态码 (所有者访问除外):
- HTTP 301
- HTTP 307
- HTTP 400
- HTTP 403
- HTTP 404
- HTTP 405
- HTTP 409
- HTTP 411
- HTTP 412
- HTTP 5XX
另外如果开发者设置了自定义错误文档或者自定义重定向时,所有请求无论什么状态都继续收取请求费和产生的带宽费。
版权声明:感谢您的阅读,除非文中已注明来源网站名称或链接,否则均为蓝点网原创内容。转载时请务必注明:来源于蓝点网、标注作者及本文完整链接,谢谢理解。