web-dev-qa-db-ja.com

ステータスコード403:AmazonSESを使用している場合のSignatureDoesNotMatch

新しいAmazonアカウントを作成しました。 SMTP認証情報を作成し、AWS Java SDKを使用してメールを送信しました。しかし、次のエラーで失敗します:

ステータスコード:403、AWSサービス:AmazonSimpleEmailService、AWSリクエストID:xyz、AWSエラーコード:SignatureDoesNotMatch、AWSエラーメッセージ:計算したリクエストの署名が、指定した署名と一致しません。 AWSシークレットアクセスキーと署名方法を確認してください。詳細については、サービスドキュメントを参照してください。

14
Deepak Singhal

電子メールを送信するために提供されるキーは「SMTP資格情報」ではありません。代わりに、キーは取得できるグローバルアクセスキーです http://docs.amazonwebservices.com/ses/latest/GettingStartedGuide/GetAccessIDs.html

21
Deepak

SMTP認証情報はSESAPI(AWS Java SDK)での使用には無効です。SMTP認証情報は、実際にはIAMユーザー用に手動で作成されたものとは異なりますが、AWSのどこにも表示されません。コンソール。違いを確認するには、こちらをご覧ください: http://docs.aws.Amazon.com/ses/latest/DeveloperGuide/using-credentials.html

実際にはグローバルアクセス認証情報を作成する必要はありませんが(セキュリティリークの可能性があります)、次のセキュリティポリシーを使用して新しいIAMユーザーを作成し、そのユーザーの新しい認証情報を作成する必要があります。

{
"Version": "2012-10-17",
"Statement":[{
   "Effect":"Allow",
   "Action":["ses:SendEmail", "ses:SendRawEmail"],
   "Resource":"*"
   }
]
}

PS:おそらく、SES用にすでに作成されているSMTP IAMユーザーに新しい資格情報を追加することもできますが、私はまだこれをテストしていません。

9
Miguel G.