質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.23%

Amazon s3エラーが発生してしまいます(rails)

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 4,549

yamady

score 175

前提わからないこと

夜分遅くに失礼します。
CarrierWaveをHerokuで使うために、Amazon Web ServiceのS3使用を始めました。
ですが、下記のようなエラーが生じました。

Excon::Error::Forbidden in Admin::SpaceImagesController#update
Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => ・・・ The AWS Access Key Id you provided does not exist in our records. ・・・

ググってみると、ポリシーが付与されていないとのことだったのですが、そういうわけでもないみたいで・・・
また、AWS Accesss Key Idが入っていないと表示されていたのですが、入っているはずなんですが・・・

イメージ説明

開発環境:
Ruby on Rails 5.0.0.1

どうすればよろしいでしょうか?

該当するソースコード

config/initilizers/carrierwave.rb

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider: 'AWS',
    aws_access_key_id: 'AWS_ACCESS_KEY',
    aws_secret_access_key: 'AWS_SECRET_KEY',
    region: 'ap-northeast-1'
  }

  case Rails.env
    when 'production'
      config.fog_directory = 'dev-production'
      config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/dev-production'

    when 'development'
      config.fog_directory = 'dev-development'
      config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/dev-development'
  end
end

環境変数はset済みです。

.env

AWS_ACCESS_KEY="XXXXXXXXXXXXXXXXX"
AWS_SECRET_KET="XXXXXXX"
>> require 'dotenv'
=> false
>> Dotenv.load
=> {"AWS_ACCESS_KEY"=>"XXXXXXXXXXXXXXXXX", "AWS_SECRET_KET"=>"XXXXXXX"}

>> puts ENV['AWS_ACCESS_KEY']
XXXXXXXXXXXXXXXXX
=> nil
>> puts ENV['AWS_SECRET_KEY']
{空白}
=> nil
>> 


puts ENV['AWS_SECRET_KEY']で空白だったんですが、これは設定されていないということなのでしょうか・・

直接、コードにAWS_ACCESS_KEYと、AWS_SECRET_KEYを打ち込んだところ
エラー表示が変わり、下記のエラーが発生しました。

Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><AWSAccessKeyId>XXXXXXXXXXXXXXXXX</AWSAccessKeyId><StringToSign>AWS4-HMAC-SHA256\n20170529T142602Z\n20170529/ap-northeast-1/s3/aws4_request\n931f72995f13b52e270b97bfb42634a872405fee935bcb45ce2a0ddc28b10d2f</StringToSign><SignatureProvided>9b41642ef3bd14874c1339b0e7ffa4556bfe0a667b9d28e5837a5492b2e8f6ab</SignatureProvided><StringToSignBytes>41 57 53 34 2d 48 4d 41 43 2d 53 48 41 32 35 36 0a 32 30 31 37 30 35 32 39 54 31 34 32 36 30 32 5a 0a 32 30 31 37 30 35 32 39 2f 61 70 2d 6e 6f 72 74 68 65 61 73 74 2d 31 2f 73 33 2f 61 77 73 34 5f 72 65 71 75 65 73 74 0a 39 33 31 66 37 32 39 39 35 66 31 33 62 35 32 65 32 37 30 62 39 37 62 66 62 34 32 36 33 34 61 38 37 32 34 30 35 66 65 65 39 33 35 62 63 62 34 35 63 65 32 61 30 64 64 63 32 38 62 31 30 64 32 66</StringToSignBytes><CanonicalRequest>PUT\n/uploads/space_image/image_1/1/mocha_shibuya_1.jpg\n\ncontent-length:476741\ncontent-type:image/jpeg\nhost:spacehacker-development.s3-ap-northeast-1.amazonaws.com\nx-amz-acl:public-read\nx-amz-content-sha256:387c4996beec3e4ebfdd5e246a268ed284f50d23942eb86256ad654ea456b2a3\nx-amz-date:20170529T142602Z\n\ncontent-length;content-type;host;x-amz-acl;x-amz-content-sha256;x-amz-date\n387c4996beec3e4ebfdd5e246a268ed284f50d23942eb86256ad654ea456b2a3</CanonicalRequest><CanonicalRequestBytes>50 55 54 0a 2f 75 70 6c 6f 61 64 73 2f 73 70 61 63 65 5f 69 6d 61 67 65 2f 69 6d 61 67 65 5f 31 2f 31 2f 6d 6f 63 68 61 5f 73 68 69 62 75 79 61 5f 31 2e 6a 70 67 0a 0a 63 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 3a 34 37 36 37 34 31 0a 63 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 69 6d 61 67 65 2f 6a 70 65 67 0a 68 6f 73 74 3a 73 70 61 63 65 68 61 63 6b 65 72 2d 64 65 76 65 6c 6f 70 6d 65 6e 74 2e 73 33 2d 61 70 2d 6e 6f 72 74 68 65 61 73 74 2d 31 2e 61 6d 61 7a 6f 6e 61 77 73 2e 63 6f 6d 0a 78 2d 61 6d 7a 2d 61 63 6c 3a 70 75 62 6c 69 63 2d 72 65 61 64 0a 78 2d 61 6d 7a 2d 63 6f 6e 74 65 6e 74 2d 73 68 61 32 35 36 3a 33 38 37 63 34 39 39 36 62 65 65 63 33 65 34 65 62 66 64 64 35 65 32 34 36 61 32 36 38 65 64 32 38 34 66 35 30 64 32 33 39 34 32 65 62 38 36 32 35 36 61 64 36 35 34 65 61 34 35 36 62 32 61 33 0a 78 2d 61 6d 7a 2d 64 61 74 65 3a 32 30 31 37 30 35 32 39 54 31 34 32 36 30 32 5a 0a 0a 63 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 3b 63 6f 6e 74 65 6e 74 2d 74 79 70 65 3b 68 6f 73 74 3b 78 2d 61 6d 7a 2d 61 63 6c 3b 78 2d 61 6d 7a 2d 63 6f 6e 74 65 6e 74 2d 73 68 61 32 35 36 3b 78 2d 61 6d 7a 2d 64 61 74 65 0a 33 38 37 63 34 39 39 36 62 65 65 63 33 65 34 65 62 66 64 64 35 65 32 34 36 61 32 36 38 65 64 32 38 34 66 35 30 64 32 33 39 34 32 65 62 38 36 32 35 36 61 64 36 35 34 65 61 34 35 36 62 32 61 33</CanonicalRequestBytes><RequestId>B70928F44D03409B</RequestId><HostId>9VnNDhNleNMuVmrzyrryaGMgHSdB3rxOd2T8KZzLHogWYwe8TG3HAv4xEsgLL/+Jl1oTXR3rMNc=</HostId></Error>" :cookies => [ ] :headers => { "Connection" => "close" "Content-Type" => "application/xml" "Date" => "Mon, 29 May 2017 14:26:03 GMT" "Server" => "AmazonS3" "x-amz-id-2" => "9VnNDhNleNMuVmrzyrryaGMgHSdB3rxOd2T8KZzLHogWYwe8TG3HAv4xEsgLL/+Jl1oTXR3rMNc=" "x-amz-request-id" => "B70928F44D03409B" } :host => "spacehacker-development.s3-ap-northeast-1.amazonaws.com" :local_address => "192.168.0.7" :local_port => 50207 :path => "/uploads/space_image/image_1/1/mocha_shibuya_1.jpg" :port => 443 :reason_phrase => "Forbidden" :remote_ip => "52.219.68.143" :status => 403 :status_line => "HTTP/1.1 403 Forbidden\r\n"

こちらに値するエラーだとは思うのですが、いまいち対処法がわかりません。。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • moonphase

    2017/05/29 10:16

    上記スクリーンショットのIAMユーザーに紐付いたaws_access_key_idが設定されていますか?

    キャンセル

  • yamady

    2017/05/29 11:33

    コメントいただき、ありがとうございます。aws_access_key_idは設定しているはずなのですが・・・ こちらで確認できた環境変数の確認を追記しました。

    キャンセル

回答 1

checkベストアンサー

+1

コードが以下そのままであれば、単にAWS_ACCESS_KEY、AWS_SECRET_KEYという文字がアクセスキー、シークレットキーに設定されているだけではないでしょうか・・・?

    aws_access_key_id: 'AWS_ACCESS_KEY',
    aws_secret_access_key: 'AWS_SECRET_KEY',

S3にアクセス出来るできないという問題への切り分けをするなら、上記コードにハードコーディングでアクセスキー、シークレットキーを一旦設定されてみてはいかがでしょうか。
それで問題なければDotenvの使い方の問題となるため、S3は無関係かと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/29 23:31

    ご回答いただきまして、誠にありがとうございます。
    Dotenvではなく、直書きで試してみたのですが追記のエラーが生じてしまいました。
    やはり、AWS S3側で自分が誤った作業をしてしまったのでしょうか・・

    キャンセル

  • 2017/05/30 10:18

    S3側の問題か、ポリシーの問題か、実装側(ライブラリ含む)の問題かを切り分けるために、以下確認してみてください。
    1. awscli等でアップロードしてみる
    2. IAMのユーザーに全権限を付与してみる
    3. 1と2の組み合わせ

    キャンセル

  • 2017/05/31 15:35

    直書きではできたので、やはりdotenvの問題だったみたいです。
    ありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる