質問編集履歴

1 追記

yuki_yuki_yukia

yuki_yuki_yukia score 10

2018/11/30 21:46  投稿

Amazon S3 でwebアプリからのアクセスが拒否されてしまう・・・
rails のwebアプリから 画像をs3に入れようと思っています(本番環境)。しかしながらheloku logsで表示されたエラー文で
```
<Code>AccessDenied</Code><Message>Access Denied</Message>
```
と出てしまいます。
IAM でユーザーを作成し、ポリシーで AmazonS3FullAccess を与えています。
###carrier_wave.rb
```
if Rails.env.production?
 CarrierWave.configure do |config|
   config.fog_provider = 'fog/aws' ###
   config.fog_credentials = {
     # Amazon S3用の設定
     :provider             => 'AWS',
     :region               => ENV['S3_REGION'],   
     :aws_access_key_id    => ENV['S3_ACCESS_KEY'],
     :aws_secret_access_key => ENV['S3_SECRET_KEY']
   }
   config.fog_directory    = ENV['S3_BUCKET']
   config.fog_attributes = { cache_control: "public, max-age=#{365.days.to_i}" } ###
 end
 
 # 日本語ファイル名の設定
 CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/ ###
end
```
###image_uploader.rb
```
         .
         .
 if Rails.env.production?
   storage :fog
 else
   storage :file
 end
         .
         .
```
この場合どのようにしたらアクセス権限が拒否されなくなるのでしょうか。
access_key, secret_key は確認済みです。
バケットの方にもポリシーを書かなくてはいけないのでしょうか?。。。
どうしても解決方法が見つからなくて困っています。どうかよろしくお願いします。
どうしても解決方法が見つからなくて困っています。どうかよろしくお願いします。
###追記
![イメージ説明](d7e8133e93aa6d6e8a8a9dad98a2dbd4.png)
バケットが公開されてないからと思ったのですが、ここのアクセスが変わってくれません。変更するにはバケットポリシーの変更が必要なのですがどうすれば変化するのでしょうか。指定したIAMユーザーのみ許可したいのですが...
  • Amazon S3

    268 questions

    Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

  • AWS(Amazon Web Services)

    3718 questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Heroku

    1959 questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

  • Ruby on Rails 5

    5097 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る