Simple Email Service(SES)でメールの受信においてルールセットにルールを作成する際に以下のように「送信者への返信」を設定しようとしました。
bounce_action {
・
・
・
sender = "sample@sample.com"
・
・
・
}
しかし、「入力パラメータに無効な値または範囲外の値が指定されました。Identity is not verified: ・・・・」というエラーに遭遇しました。(Terraformでは、「Error creating SES rule: InvalidParameterValue: Identity is not verified: ・・・・」というエラーが出ます。)
今回はその解決法を紹介します。
解決方法
「us-east-1」regionで「検証済みのID」にて「IDの作成」でIDを作成します。そして、作成したID内で表示されているDomainKeys Identified Mail (DKIM)のCNMAEをRoute53に登録します。そうすると、作成したIDの「ステータス」が「検証済み」となります。これにより「送信者への返信」の設定が可能となります。
region毎に検証済みのドメインを作る必要があるようです。
補足:Route53での登録方法
ここではCNMAEの登録方法を説明します。Route53でドメインを取得している前提とします。
以下のとおりホストゾーンを選択します。
そして、CNAMEを登録したいホストゾーン名を選択します。
次に、「レコードを作成」を選択します。
次に、「シンプルルーティング」を選択して「次に」を選択します。
上述した「DomainKeys Identified Mail (DKIM)のCNMAE」3つを入力していきます。「レコード名」の項目は「DomainKeys Identified Mail (DKIM)のCNMAE」の「名前」のドメイン名の直前までをコピペします。
「値/トラフィックのルーティング先」の項目は「DomainKeys Identified Mail (DKIM)のCNMAE」の「値」をコピペします。そして、「シンプルなレコードを定義」をクリックします。これで一つ目のCNAMEの登録が完了です。これをあと2回繰り返して「DomainKeys Identified Mail (DKIM)のCNMAE」を合計3つ登録します。
Terraformだと例えば以下のようになります。
resource "aws_route53_zone" "zone" {
name = "sample.com"
force_destroy = false
}
resource "aws_ses_domain_identity" "ses_us" {
provider = "us-east-1"
domain = "sample.com"
}
resource "aws_ses_domain_dkim" "dkim" {
domain = "sample.com"
}
resource "aws_route53_record" "dkim_record" {
count = 3
zone_id = aws_route53_zone.zone.zone_id
name = "${element(aws_ses_domain_dkim.dkim.dkim_tokens, count.index)}._domainkey.${aws_route53_zone.zone.name}"
type = "CNAME"
ttl = "300"
records = ["${element(aws_ses_domain_dkim.dkim.dkim_tokens, count.index)}.dkim.amazonses.com"]
}
以上でCNAMEの登録完了です。