困ったときのメモ ver.2.0

主に Ruby on Rails のメモ。など。

「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のアドレスを直にたたくと怒られるようになった。