Amazon SES API へのリクエストの認証 - Amazon Simple Email Service Classic

Amazon SES Classic のユーザーガイドです。更新プログラムや新機能は、推奨している新しい Amazon SES デベロッパーガイドに記述されています。

Amazon SES API へのリクエストの認証

Amazon SES API にアクセスするときは、AWS 署名を使用してリクエストを認証します。リクエストに有効な署名が含まれていない場合、Amazon SES はエラーを返し、リクエストを処理しません。

AWS リクエストの署名の詳細については、AWS 全般のリファレンスの「AWS リクエストの署名」を参照してください。

重要

2020 年 10 月 1 日以降、Amazon SES は署名バージョン 4 を使用して署名されたリクエストのみをサポートします。古いバージョンの AWS 署名を使用する場合は、その日より前に AWS 署名バージョン 4 を導入する必要があります。

認証エラー

E メールを送信しようとしたときに、リクエストで以前のバージョンの AWS 署名が使用されている場合、次の例のようなエラーメッセージが表示されます。

<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> <Error> <Type>Sender</Type> <Code>InvalidClientTokenId</Code> <Message>The security token included in the request is invalid</Message> </Error> </ErrorResponse>

このエラーは、古いバージョンの AWS SDK または AWS CLI を使用するときに表示される可能性があります。このエラーは、古いバージョンの AWS 署名を使用する Amazon SES API に対して直接 HTTPS リクエストを行う場合にも表示される可能性があります。

このエラーメッセージが表示された場合は、セットアップに関連する適切な手順に従って既存の SMTP 認証情報を置き換えて、AWS 署名バージョン 4 を使用するようにリクエストを更新する必要があります。

  • SES コンソールを使用して SMTP 認証情報を生成した場合は、単に新しい認証情報を作成し、既存の認証情報を新しい認証情報に置き換えます。

  • SMTP 認証情報を AWS 認証情報から取得した場合は、AWS 署名バージョン 4 アルゴリズムを使用していることを確認します。この変換がライブラリに依存している場合は、ライブラリに AWS 署名バージョン 4 アルゴリズムを使用する新しいリリースがあるかどうかをチェックし、ライブラリに移行します。それ以外の場合は、AWS 署名バージョン 4 アルゴリズムを使用する別のライブラリから認証情報を派生させるか、SES コンソールを使用して認証情報を生成する必要があります。

AWS 署名バージョン 4 への移行

AWS SDK または AWS CLI を使用する場合は、SDK の最新バージョンまたは AWS CLI にアップデートする必要があります。Amazon SES API に直接の HTTPS リクエストを行う場合は、リクエストのヘッダーを更新して AWS 署名バージョン 4 を使用します。以前のバージョンの AWS 署名を使用する API リクエストは、リクエストヘッダーを調べることで簡単に識別できます。たとえば、 AWS 署名バージョン 3 を使用するリクエストは、次の例のようになります。

X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HMACSHA256,Signature=lBP67vCvGl ...

AWS 署名バージョン 4 を使用するリクエストには、次の情報を含む Authorization ヘッダーが含まれます。

  • 署名に使用したアルゴリズム (AWS4-HMAC-SHA256)

  • 認証情報スコープ (アクセスキー ID を含む)

  • 署名付きヘッダーの一覧

  • 計算された署名。この署名はリクエスト情報に基づいており、AWS シークレットアクセスキーを使用して署名を生成します。署名により、AWS の ID が確認されます。

AWS 署名バージョン 4 を使用する Amazon SES API への呼び出しの例は、「Amazon SES API リクエスト」を参照してください。AWS 署名バージョン 4 の使用については、『AWS 全般のリファレンス』の「署名バージョン 4 の署名プロセス」を参照してください。