BETA

【Rails】CarrierWave + S3 でユーザ画像の投稿 2

投稿日:2019-12-08
最終更新:2019-12-08

前回の続きで、CarrierWaveを使ってS3に接続します。
今回はAWS側の設定を行います。

*前回
https://sunnydayservice.qrunch.io/entries/RhF0dkbocJtm4K8h

参考

基本的なとこ
https://qiita.com/junara/items/1899f23c091bcee3b058
エラー
https://codeday.me/jp/qa/20190301/345651.html
https://qiita.com/siruku6/items/a3a9021913749247d92b

全体イメージ

IAMユーザを作成し、使用予定のS3のバケットと紐づけます。そして、IAMユーザのアクセスキーとシークレットキーを取得し、Ralisのcarrierwave.rb に記述します。

S3の設定

S3の設定から行います。S3では、バケットの作成と、アクセス権の設定を行います。

バケットの作成は簡単なので説明を省きます。

外部接続との設定を見ていきましょう!
アクセス権限のタブを開き、編集ボタンを押します。

すると、以下の外面が出てきます。
1番上のチェックを外すと、投稿できるようになります。
2番目のチェックを外すと、閲覧できるようになります。
このように設定を変更すると、外部からのアクセスが出来るようになります。

S3のファイルに悪意のあるファイルを投稿して、AWS内にウイルスを発生させる方法があるようなので、セキュリティには十分注意しなければいけません。。。。

IAMの設定

IAMでは、ユーザを作成し、S3のポリシーと紐づけて、アクセスを出来るようにします。

ユーザの作成

IAMのダッシュボードを開き、ユーザタブを開きます。

プログラムによるアクセス のみ追加します。画像の投稿をするだけなので、AWS マネジメントコンソールへのアクセス は不必要でしょう。

この画面が出てきたら、既存のポリシーを直接アタッチ から、AmazonS3FullAccess を選択します。

そして、ユーザの作成を行います。

各種キーの取得

ユーザの作成が完了したら、作成したユーザのページを開き、認証情報タブを選択します。

ここで、アクセスキーの作成を行うことが出来ます。
アクセスキーの作成が成功したら、CSVファイルでキーを保存できるので、保存しておきましょう!
(ここで、Rails側の設定に追記出来ます。)

追加の作業

作成したユーザと、AdministratorAccess ポリシーを紐づけます。
ポリシータグを選択し、AdministratorAccess を検索します。

ポリシーのアタッチボタンを選択します。

作成したユーザを選択し、ポリシーのアタッチを行います。

これで、画像の投稿が出来るようになりました。

まとめ

できた!楽しい!

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

初学者の成長が垣間見れます

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう