はじめに
EC2+Nginx+Unicorn+MysqlでRails6アプリを構築し、S3に画像をアップロードすると「we're sorry, but something went wrong.」が表示されました。ちなみに、S3を確認すると画像は保存されています。少し前までは正常に動作していたのですが・・・
結構悩んだのですが、あっけなく解決しました。
動作環境
・Rails 6.0.4
・Unicorn 6.0.0
・Nginx 1.20.1
・Mysql 8.0.26
・AWS S3
解決方法
原因は、IAMユーザー内の設定が、知らぬ間に変わっていた事でした。(変えた記憶ない・・・)
まず、S3へのアクセス権限を付与しているIAMユーザーを選択します
アクセス権限のポリシーを見ると・・・
S3への権限しか付与した記憶しかなかったのですが、なんだかよくわからないポリシーが付与されています・・・
私の場合、これを削除したら問題なく動作しました!
どうやら、この「AWSCompromisedKeyQuarantineV2」というポリシーは、特定のアクションを制限するポリシーのようです。私の場合、EC2への書き込み、S3への書き込み・アクセス等が制限されていました。自動的に適用されるポリシーなのでしょうか・・・