S3に署名付きURLでアクセスする時にSignatureDoesNotMatch
S3署名付きURLを使ってフロンドエンドからS3上のファイルを取得、更新しようとした時の話。
署名に使う認証情報(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEYとか)を確認したり、AWS_SECRET_ACCESS_KEYにスラッシュが入ってるとうまくいかないという情報を見て何度かユーザー再作成ガチャを引いたり、バケット作り直したり、axiosの記述を疑ったりしましたが、、、
自分の場合は対象のS3バケットにCORSを設定してなかったことが原因でした。
PUT時にヘッダ必要になりますのでAllowedHeadersも忘れずにお願いします(自戒)
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]