ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Amazon SES署名バージョン4対応「Ruby on Rails」

「Ruby on Rails」で開発していたアプリのメール送信処理で以下のようなエラーが出てしまいました。

AWS::SES::ResponseError (InvalidClientTokenId - Signature Version 3 requests are deprecated from March 1, 2021. From that date on, we are progressively rejecting such requests. To resolve the issue you must migrate to Signature Version 4. If you are self-signing your requests, refer to the documentation for Authenticating requests to the Amazon SES API [1] with Signature Version 4 [2]. If you are not self-signing your requests, simply update your SDK/CLI to the latest version. [1] https://docs.aws.amazon.com/ses/latest/DeveloperGuide/using-ses-api-authentication.html [2] https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html):

なんとなく署名バージョンを4に移行させる必要があるそうです。
署名バージョン3のリクエストは2021年3月1日から非推奨...

対応

「Gemfile」を更新

  • 対応前
gem "aws-ses", "~> 0.6.0", :require => 'aws/ses'
  • 対応後
gem "aws-ses-v4", require: "aws/ses"

「aws-ses-v4」はgem「aws-ses」を署名バージョン4に対応させたgemとのことです。
AWSが推奨している「aws-sdk-rails」というのもあるみたいなので、こちらも時間があるときに検証してみようと思う。