LoginSignup
4
3

More than 5 years have passed since last update.

Ruby on Railsのプロジェクト内でAmazon SESを使用する際、IAMの権限エラーが発生する

Last updated at Posted at 2019-03-11

背景

会社プロダクトの招待メールがスパムメール化されるため、AmazonSESを利用した招待メールにすることになったが、その際にIAMエラーがわかりにくかったので投稿しようと思う。

開発環境

Ruby on Rails 5.2.1
Ruby 2.5.1

リージョン

今回使用するリージョンは北部バージニア

米国東部 (バージニア北部) us-east-1 a4b.us-east-1.amazonaws.com HTTPS

ドメイン検証

verify.png

  1. Identity Management > Domains > Verify a New Domain の順に選択
  2. 好きなドメイン名を入力

※詳しいAmazon SESの設定は、この記事を参照すると良い
https://qiita.com/tanakaworld/items/94f1ba66801100f6a44f

Ruby on RailsでSESを設定後、SES経由でメールが送信されていない

それだけでなく、メール自体が送信されない。。
ログを確認すると、下記のようなエラーが。

Error performing ActionMailer::DeliveryJob (Job ID: 0000b1-cc00-0000-b000-11bfe1e1e) from Async(mailers) in 1156.29ms: 
AWS::SES::ResponseError 
(AccessDenied - User `arn:aws:iam::123123123:user/system_app_s3' is not authorized to perform `ses:SendRawEmail' on resource `arn:aws:ses:us-east-1:675052735624:identity/smartcanvas.net'):

原因

ログを確認すると、 AccessDeniedという権限周りっぽいエラーが出ている。。

AccessDenied - User `arn:aws:iam::123123123:user/system_app_s3'

AWS IAM(ポリシー編集)で、 arn:aws:iam に権限がないことが原因みたい。

※Amazon リソースネーム (ARN) は、AWS リソースを一意に識別するもの。
Amazon ARN

解決策

AWS IAM(ポリシー権限)で "ses:SendRawEmail"の追加

Action: [
"ses:SendRawEmail"
]

Eメール送信アクションへのアクセスを許可
Amazon SES へのアクセスの制御

このことにより、SES経由でメールを送信することができ、見事スパムメール対策ができた。

4
3
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
4
3