Amazon Pinpoint のジャーニーとキャンペーンで E メールチャネルを使う際に、Amazon SES API を使ってメール送信されるように変更されるようなので古いプロジェクトでポリシー更新などしてみた

2024.06.13

いわさです。

Amazon Pinpoint では様々なチャネルのエンドポイントへメッセージを送信することが出来るのですが、そのひとつとして E メールを送信することができます。

AWS でアプリケーションから任意の宛先へメールを送信するとなると Amazon SES を使うことが多いと思います。(あるいは特定のケースで Amazon SNS の E メール送信を使う場合も)
単発でメール送信したいだけであれば Amazon SES を使って頂くのがシンプルで良いのですが、メールマーケティングの基盤として使う場合には Amazon Pinpoint を使ったほうが、ジャーニーやキャンペーンあるいはセグメント管理など、様々な E メールマーケティングに適した機能を使うことができて良いのです。

Amazon Pinpoint はこれまでも E メール配信に Amazon SES を使っていました。
しかし先月(先々月?)のアップデートで、サービスロールを使って AWS アカウント内の Amazon SES アイデンティティを明示的に使う方式に変更となりました。

何がどうなるのかというと、今までは Amazon Pinpoint で請求されていたメール送信分の従量課金料金が、Amazon SES として請求されるようになります。
また、Pinpoint 側で使う送信用のロールから Amazon SES の承認ポリシーを使う形になるので、Amazon SES 側で追加のオプション機能などが使いやすくなります。

2024 年 4 月 30 日以降に新規で Amazon Pinpoint を使う方は新しい方式となるため、旧方式と新方式の違いを意識して頂く必要はありません。
私の環境には旧方式の Pinpoint プロジェクトが存在していたので、今回アップグレードを行ってみました。

オーケストレーション送信ロールの設定方法

各プロジェクトの E メールチャネル管理から操作を行います。
E メール送信 ID の構成から編集を行います。

フィードバック転送トグルボタンの下に次のように「オーケストレーション送信ロール」が設定出来るようになっています。
「この E メールチャネルのキャンペーンとジャーニーを有効にする」を ON にして、IAM ロールを設定します。
既存のロールを選択することもできますし、プロジェクトごとに新規ロールの作成も可能です。

Pinpoint プロジェクト側で E メールチャネルを有効化すると、次のポリシーが Amazon SES の指定した承認ポリシーとして自動で追加されるようになっています。
Pinpoint サービスから Amazon SES の API 実行を許可する内容のポリシーですね。

チャネル作成後に Amazon SES の対象アイデンティティを確認してみると、確かに承認ポリシーが追加されていました。
チャネルを追加で有効化する前は承認ポリシーは追加されておらず、今までどおりジャーニーやキャンペーンの実行もできていました。

また、自動作成されたオーケストレーション送信ロールは次のようになっていました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PinpointUsesSESForEmailSends",
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Resource": [
                "arn:aws:ses:ap-northeast-1:123456789012:identity/*",
                "arn:aws:ses:ap-northeast-1:123456789012:configuration-set/*"
            ]
        }
    ]
}

承認ポリシーの更新のみも可能

先ほどは E メールチャネル有効化時に承認ポリシーが自動追加される形でしたが、承認ポリシーの自動追加自体は単独でも行うことができます。
Amazon Pinpoint からも Amazon SES で管理するアイデンティティを参照する機能があります。

こちらを確認してみると E メール送信のためにポリシー更新が必要だよ、というアラートが表示されていますね。

「一部の E メールアドレスでは、ポリシーの更新が必要です。この更新されたポリシーでは、Amazon Pinpoint がユーザーに代わって E メールを送信することを許可します。正しいポリシーを自動的に適用するには、ID を選択し、ポリシーの更新を選択します。」

作成されるポリシーは先程確認したものと同じですね。

追加されました。
よって、各アイデンティティごとに一度だけポリシー更新すれば良くて、あとは個別に Pinpoint プロジェクトごとに送信ロールの設定をしましょう。という形になるようですね。

さいごに

本日は Amazon Pinpoint のジャーニーとキャンペーンで E メールチャネルを使う際に、Amazon SES API を使ってメール送信されるように変更されますという情報を入手したので、内容を整理しました。
また、古いプロジェクトで実際にポリシー更新や送信ロール設定なども行ってみました。

ドキュメントどおりに料金が Amazon SES につけ替わっているかまだ確認できないのと、私が確認した限りではこの移行のデッドラインはまだ設けられていないようです。
いずれアナウンスがあるかもしれませんので、計画的に対応しておくと良いと思います。