Amazon SESでドメイン検証するやり方2選
Amazon SESを使うには使うドメインを所有していることをAWSに示す必要があります。
その方法として現在どんなものがあるか紹介します。
Contents
①DKIM
Domain Keys Identified Mailというメールに署名をつける仕組みで、これを行うためにドメインのDNSで公開鍵を配布する必要があります。これでついでにドメインの所有も確認できる、というものです。
こちらの方式が推奨されています。
設定方法
SESでドメインのidentityをeasy DKIMで作成すると以下のような画面ができてます。
View DNS recordsのところにある3つのcnameを使いたいドメインのDNSに設定すればOKです。
identityの作成後72時間以内にDNSの設定をする必要がある、と書いてあるのですが72時間後でも大丈夫です。
というのも72時間経過した後は認証のretryボタンが出現し、何度でもretryすることができます。retry時も設定すべきcnameの値が変化するなんてことはないです。retryしたらまた72時間AWSが定期的にDNSにレコードが適切に設定されているか確認しにいきます。
この確認する間隔は公開されていませんが、体感は30分もあればという感じでした。
②レガシーtxtレコード
使っているDNSサービスでホスト名にアンダーバーが使えない、等の理由でDKIM関連のレコードが登録できない場合は以前使われていた手法が使えます。
SESのドメインの画面にいくと、以下のような表示がでます。この赤枠で囲った、「download the record set as a .csv」というところをクリックするとtxtレコードが入ったcsvファイルがダウンロードできます。
開くと以下のような2レコードが格納されています。
この下のほうをDNSに登録してあげればOKです。もちろん2つとも登録しても大丈夫ですが、片方でもOKです。
ruriwo.comの場合、実際にdigコマンドを打つと以下のようになっています。
DNSに登録したあと、そのままだとAWSに認証されせんでした。明示的に以下のコマンドを打つ必要があるみたいです。コマンドを打てば数秒で認証されました。
aws ses verify-domain-identity --domain "ruriwo.com"
認証されたかどうかは以下のコマンドで確認できます。
$ aws ses get-identity-verification-attributes --identities "ruriwo.com"
{
"VerificationAttributes": {
"ruriwo.com": {
"VerificationStatus": "Success",
"VerificationToken": "D35XUJLhn+y9XWfTqGkyBlczaiVxK4yB3hwb6HBWB2Q="
}
}
}