not authorized to perform: ses:SendEmailは寝かせて直る!
3日前にAWS Lambdaでメール送信(SES)をしてみるため以下ステップを実行
メール宛先アドレスをSES認証
公式ガイドをコピペしてSES送信関数を作成
テスト実行
こちらのエラーが発生してメールは送信されませんでした。。
not authorized to perform: ses:SendEmail
Lambda関数にSES送信ロールがないということなのでIAMロールでSES送信を許可してみたが、上記エラーが発生する
今度はIAMロールをjson編集でSES送信を許可したが、変わらず…
画面を更新してリトライ、ロール編集してリトライ…と1時間近く頑張ってみたがダメだった
さっきロール見直ししようかな〜と試しに関数を実行すると、成功してメールが送信された!え、なんで
IAMロールの適用に1時間以上掛かることがある!?とは思えないから、関数実行の画面を開き直す必要があったのかも
ちなみにSES送信できたIAMロールはこちら
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ses:SendEmail", "logs:CreateLogGroup" ], "Condition": { "StringLike": { "ses:FromAddress": "メールアドレス" } }, "Resource": [ "arn:aws:ses:ap-northeast-1:xxxxxxx:identity/メールアドレス", "arn:aws:logs:ap-northeast-1: xxxxxxx:*" ] } ] }