@zundan zundaさんに、この件のご意見をお聞きしたい。S3 Bucketの名前って悪意があるひとには知られちゃまずいってことになりそうなのですが、どう思われますか。
https://social.hyuki.net/@hyuki/112362844203237452
@hyuki ざっと読んだ限りでは、悪意のあるひとからのPUTリクエストが課金されるレイヤーまで届いている理由がわかりませんでした。例えば弊ぼっちではS3を使っていてバケットへの書き込みにはIAMユーザーのクレデンシャルが必要なようにしてあります: https://github.com/zunda/mastodon/wiki/CreateInstanceOnHeroku#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B9%E3%83%88%E3%82%A2%E3%81%AE%E8%A8%AD%E5%AE%9A 弊ぼっちではS3バケットから直接メディアを持っていってもらうようにしてあるので、この設定でIAMユーザー以外からのPUTリクエストにお金がかかる場合にはMediumの記事をかかれた方と同じような事態に陥ることになります。どきどき。
@zundan
お返事ありがとうございます。バケット名が一般に知られるというのは普通にあることだと思うので、そこにAccess Deniedになるアクセスされたときに課金されるのはとてもまずいはずですよね。
@hyuki やっと読み直しました。
> S3 charges you for unauthorized incoming requests
と書いてありましたね。さらにリダイレクトにもお金がかかるともありました。
今回は「オープンソースのツール」のデフォルトの設定が原因によってクライアント側が分散したことによって時間あたりの金額が大きくなりましたが、記事にある通り、意図的に攻撃して金銭的な被害を及ぼすこともできそうです。
S3で、読むリクエストよりも書くリクエストの方が値段が高いのは、実際のコストを反映しているからだと思っていました。権限不足で実際には書かないリクエストのコストは読むリクエストと同じくらいだろうと思うので、値段も同じくらいに安くなると良さそうに思います。