亞馬遜AWS物件儲存(S3)刪除荒唐的錯誤回應計費避免開發者一夜破產
亞馬遜旗下雲端運算平台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
另外如果開發者設定了自訂錯誤文件或自訂重定向時,所有請求無論什麼狀態都繼續收取請求費和產生的頻寬費用。