LoginSignup
6
2

More than 3 years have passed since last update.

AWS S3へのアップロードでSignatureDoesNotMatchにハマった話

Last updated at Posted at 2020-01-28

はじめに

S3に画像ファイルをアップロードする対応を行った際、403ステータスにハマったので記事にします。

前提

開発言語・・・VBScript
送信方式・・・HttpRequest
送信ファイル種別・・・jpg

現象

・Httpステータスが403で返ってくる(SignatureDoesNotMatch)

原因究明

疑ったことその1
・権限がない?またはACL掛かってる?
  →権限はある
  →ACLも掛かってない

疑ったことその2
・レスポンスをよく見てみると、以下が返ってきている
・アクセスキーまたはシークレットアクセスキーが間違っている?
  →間違っていない

Error
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>

疑ったことその3
・ハッシュ化の部分か文字コードがおかしい?
  →きちんとハッシュ化されている
  →文字コードもUTF-8

疑ったことその4
・Signatureの構築内容をもう一度確認する

Upload_To_S3
Dim stringToSign : stringToSign = Replace("PUT\n\n" & contetType & _
                                  "\n\nx-amz-acl:public-read" & _
                                  "\nx-amz-date:" & timestamp & _
                                  "\n/"& bucket_name & "/" & target_directory,_
                                  "\n", vbLf)

・target_directoryに続くファイル名が付いてない
  →これ

原因

・Signatureの内容不備による認証エラー

まとめ

・エラーコードが403だったので、とにかく権限周りを気にしていた
・不備のある認証情報でアクセスしてきたら、AWSは権限不足と判断する(AWS側の立場だとそうするも納得)

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2