5

Amazon S3でCarrierWaveを使用しようとしています。私はファイルをアップロードしようとすると、rakeタスクを通じて、私はこのエラーを取得:CarrierWaveフォグクレデンシャル、アクセスが拒否されました

rake aborted! 
Expected(200) <=> Actual(403 Forbidden) 

マイCarrierWave初期化子は、次のようになります。

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    provider: 'AWS', 
    aws_access_key_id: MY_AWS_ACCESS_KEY_ID, 
    aws_secret_access_key: MY_AWS_SECRET_ACCESS_KEY 
    } 
    config.fog_directory = MY_BUCKET 
    config.fog_public = true 
end 

私は本当の、ハードコードされたキー/秘密を持っています/私はこれをデバッグしている間にバケット値を設定します。

rakeタスクは、次のようになります、と私はstorage: fileでローカルにアップロードするCarrierWaveアップローダーを設定しているとき、成功している:

Photo.create({ 
    image: File.new('lib/dummy_files/image.jpg') 
}) 

すべてのヘルプははるかに高く評価されます。ありがとう!

答えて

11

これは、新しいAWSアイデンティティ・アクセス管理(IAM)と関係があることを認識しました。新しいIAMユーザーを作成しましたが、そのユーザーに正しい権限を与えていませんでした。以前はユーザーは1人しかいませんでしたが、そのユーザーには管理者権限がありました。これで、ユーザーを作成し、そのユーザーに正しい権限を与え、そのユーザーの資格情報を使用する必要があります。私はこれが誰かを助けることを望む。

+0

ええ、IAMを導入すると、(特に管理者のすべてのデフォルトの資格情報と比較して)状況がより複雑になります。あなたがこれを理解できるとうれしいです。 – geemus

+0

私は同じ問題を抱えており、どこでも解決策を探しました! 共有ありがとう – mhz

+0

ありがとうございました。私はしばらくこのことに苦しんでおり、このコメントは私を助けました。 – marcamillion

10

この答えは、あまりにも私を助けた...具体的には、IAM>ユーザーの下にあります>権限>あなたが最初にそれが下には「ユーザーポリシー」を取得しないユーザー作成時のユーザーポリシー

を添付の許可を」。いったん私はユーザーポリシーを添付して、物事が働いた。

+0

あなたは本当の仲だ!日を助けて節約する。 – noname

+2

私はこれが古かったのを知っていますが、あなたの答えは許可エラーを戦って数時間後に救出されました。将来の失われた魂のためにさらに詳細を提供するために、私のためにそれを修正したポリシーは「AmazonS3FullAccess」と呼ばれました。ありがとう! – ryanc

関連する問題