railsチュートリアル13章 AWS S3の設定について 続編
前回の記事でパブリックアクセス設定をオフにすることで、画像のアップロードができるようになったという話をしました。
その後
- パブリックアクセスってなんだ?
- セキュリティ設定をオフにしているけど問題ないんだっけ?
みたいなことが疑問になって色々調べていたらパブリックアクセス設定をそのままに画像をアップロードする方法を見つけました。
それが以下の記事です。
簡単にいうとcarrierwave.rbを以下のようにすることでうまく動作します。
carrierwave.rb
if Rails.env.production? CarrierWave.configure do |config| config.fog_public = false # これを追加 config.fog_credentials = { # Amazon S3用の設定 :provider => 'AWS', :region => ENV['S3_REGION'], # 例: 'ap-northeast-1' :aws_access_key_id => ENV['S3_ACCESS_KEY'], :aws_secret_access_key => ENV['S3_SECRET_KEY'] } config.fog_directory = ENV['S3_BUCKET'] end end
fog_public = falseとすることで、パブリックアクセスでないアクセスにすることでうまくいくという事です。
セキュリティ的にこちらの方が良さそうです。
参考サイト
S3で誤ったデータの公開を防ぐパブリックアクセス設定機能が追加されました | Developers.IO
S3でパブリックアクセス可能なファイルを投稿する - Qiita
あとがき
未だにパブリックアクセス、ACLあたりの概念がよくわかっていません。要勉強です。