「Amazon S3」にアップロードしたファイルの権限とかメモ
はじめに
開発用にAWSのアカ使ってS3にアゲてたけど、イヤンな感じなのでIAM使ってみる。
ついでにS3のアドレス直にたたかれないようにする。
AWS IAM
IAMでグループとユーザ作って、Policyを作る。
ズバリな解説 => http://d.hatena.ne.jp/w650/20110614/1308050011
書いてある通り、フルアクセスがやな感じだったので以下の5つに絞っても十分ぽい。
"s3:DeleteObject", "s3:GetObject", "s3:GetObjectAcl", "s3:PutObject", "s3:PutObjectAcl"
よくわからんけど、PutObjectAclもつけないとアップロードできなかったので、検証してないけどGetもついでに。
で、ユーザーのキーとかをメモメモ。
carrierwaveの設定
もちろんfogつかってます。
S3固有のキーとかは環境変数やら定数やら。
「config.fog_public = false」としておけば、外からURLたたいても怒られるようになる。
/config/initializers/carrierwave.rb
CarrierWave.configure do |config| config.fog_credentials = { :provider => 'AWS', :aws_access_key_id => 'キーID', :aws_secret_access_key => '秘密のキー' } config.fog_directory = 'バケット名' config.fog_public = false end
おわり?
サイトからはふつうにアゲて、見れて、消せる。
で、S3のアドレスを直にたたくと怒られるようになった。