buto > /dev/null

だいたい急に挑戦してゴールにたどり着かずに飽きる日々です

not authorized to perform: ses:SendEmailは寝かせて直る!

3日前にAWS Lambdaでメール送信(SES)をしてみるため以下ステップを実行

  1. メール宛先アドレスをSES認証

  2. 公式ガイドをコピペしてSES送信関数を作成

  3. テスト実行

こちらのエラーが発生してメールは送信されませんでした。。

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:*"
            ]
        }
    ]
}