【AWSデプロイ】S3設定にてExcon::Error::Forbiddenエラーが発生する
はじめに
Railsでポートフォリオ作成しAWSにてデプロイ後、S3を使って画像をアップロードする設定を行っていましたが、本番環境にてS3にアップロードされない事態が発生。
環境
・Rails 6.0.0
・Ruby 2.6.5
・Unicorn 5.4.1
状況
S3の設定をおこない、ローカル環境で無事にS3にアップロードされたことを確認。
本番環境の環境変数をevnに設定してデプロイをおこなったが
画像投稿を行ってもS3にアップロードされなかった。
問題解決のために行ったこと
まずはどのようなエラーが起こっているか確認するため
config/environments/production.rb
を
config.consider_all_requests_local = true
に変更。
これにより、ローカルの時のようにエラー文が画面に表示されるようになります。
するとExcon::Error::Forbiddenというエラーが発生していることが判明。
どうやら環境変数の設定がうまくいっていないよう・・・
sudo vim /etc/environmentにて入力内容を確認
AWS_ACCESS_KEY_ID='#####アクセスキー######'
AWS_SECRET_ACCESS_KEY='##########シークレットアクセスキー##########'
入力ミスはしていなさそう・・・
env | grep AWSで確認
env | grep AWS
AWS_ACCESS_KEY_ID=#####アクセスキー######
AWS_SECRET_ACCESS_KEY=##########シークレットアクセスキー##########'
あれ??
シークレットアクセスキーの最後に’がついている・・?なんで?
もう一度sudo vim /etc/environmentで丁寧に確認してみると・・
AWS_ACCESS_KEY_ID='#####アクセスキー######'
AWS_SECRET_ACCESS_KEY='##########シークレットアクセスキー##########'
図で表現できませんが、
AWS_SECRET_ACCESS_KEY='##########シークレットアクセスキー##########'の最後に
スペースが一つ入っていました・・・
AWS_SECRET_ACCESS_KEY='##########シークレットアクセスキー##########' を
AWS_SECRET_ACCESS_KEY='##########シークレットアクセスキー##########'に直す。
変更を反映させるために一度ログアウトし入り直す。
env | grep AWSで確認
env | grep AWS
AWS_ACCESS_KEY_ID=#####アクセスキー######
AWS_SECRET_ACCESS_KEY=##########シークレットアクセスキー##########
これでもう一度画像投稿を行ったところ、
無事S3にアップロードされました。
さいごに
スペース一つに数日間悩まされました。
ネットで同じような事例がなく、かなり遠回りをしたので
同じような状況で苦しんでいる人の助けになればと思い投稿しました。
Author And Source
この問題について(【AWSデプロイ】S3設定にてExcon::Error::Forbiddenエラーが発生する), 我々は、より多くの情報をここで見つけました https://qiita.com/mosa_mosa_makura/items/5b8f5ca073c0ced6d2b5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .