以下を参考にしながら Terraform 公式のリソース解説と反復横跳びして確認した。
以下、作業していてつまづいた、注意しておくところ。
SPF 周り
mail_from_domain は必ずサブドメイン指定が必要 (以下 domain に指定しているのはネイキッドドメインなので、公式のサンプル記述のように bounce. サブドメインをつけておくのが丸そう)
# SPF
resource "aws_ses_domain_mail_from" "spf" {
domain = var.domain_name
# MAIL FROM アドレスとして使用するサブドメイン (上記ドメインの) (DMARC 検証に必要)
mail_from_domain = "bounce.${var.domain_name}"
}
DMARC 周り
レコード内に記述する mailto: は、登録時点で受信先がなくても大丈夫そう。 とりあえず作るだけ作っておいて、あとから S3 に受信だけできるようにするか、管理用に rainloop などで管理用の画面用意、とかのほうがいいかもしれない。
# SES: DMARC ドメイン用レコード登録
resource "aws_route53_record" "dmarc" {
zone_id = data.aws_route53_zone.default_zone.zone_id
name = "_dmarc.${var.domain_name}"
type = "TXT"
ttl = "60"
records = [
"v=DMARC1;p=quarantine;pct=25;rua=mailto:dmarcreports@${var.domain_name}"
]
}