亚马逊AWS对象存储(S3)删除荒唐的错误响应计费 避免开发者一夜破产

亚马逊旗下云计算平台 AWS 的 S3 对象存储功能被开发者和企业广泛使用,S3 存储桶可以存储各种文件并设置权限提供公网访问,许多开发者将各类静态文件直接存储在 S3 中进行远程调用。

但这里有个问题,S3 存储桶是收取 HTTP 请求和带宽费用的,收取这部分费用还算是合理,但 S3 的计费规则里甚至对错误请求也会收费。

亚马逊AWS对象存储(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

另外如果开发者设置了自定义错误文档或者自定义重定向时,所有请求无论什么状态都继续收取请求费和产生的带宽费。


这是一个从 https://www.landiannews.com/archives/104034.html 下的原始话题分离的讨论话题