Amazon SESのEasy-DKIMのCNAMEレコードを検証できくなった場合の挙動の確認

2024.05.13

CNAMEレコードを削除した場合にDKIMの挙動が気になる

こんにちは、のんピ(@non____97)です。

皆さんはAmazon SESのEasy-DKIMのCNAMEレコードを削除した場合のDKIMの挙動は気になったことはありますか? 私はあります。

ACMの場合は証明書の検証で使用するCNAMEレコードを削除しても、直ちに影響はありません。更新までに有効化しておけば良いです。

では、Amazon SESの場合はどうでしょうか。CNAMEレコードの名前解決ができなくなった瞬間、DKIMの検証に失敗するのでしょうか。

実際にやってみました。

いきなりまとめ

  • 検証をした限りではDKIM検証用のCNAMEレコードを削除しても、DMARC認証をしていなければ直ちに影響はなさそう
    • Amazon SESの第三者署名のみになる点は注意
    • DMARC認証をしている場合はDKIMアライメントが一致しないため、DMARC認証に失敗する
  • CNAMEレコードを削除してしばらくすると、「5日以内にCNAMEレコードを追加しろ」という通知がされる
  • 5日以上放置した場合は、CNAMEレコード追加後に手動でverify-domain-dkimで検証をする必要がある
    • 再検証時にIDを作り直したり、CNAMEレコードを削除前から異なる値に変更する必要はない

やってみた

カスタムネームサーバーを使用するように変更

Amazon SESで使用しているドメインはnon-97.netです。

こちらのドメインはGoogle Domainsで管理しており、ネームサーバーもGoogle Domainsのデフォルトのものを使用しています。

$ dig non-97.net NS +short
ns-cloud-c2.googledomains.com.
ns-cloud-c3.googledomains.com.
ns-cloud-c1.googledomains.com.
ns-cloud-c4.googledomains.com.

DKIM用のCNAMEレコードは以下のように登録されています。

DNSレコード

名前解決できることを確認します。

$ dig jn2dqc3n672rtcdgitvexmchkigsz5jf._domainkey.non-97.net +short
jn2dqc3n672rtcdgitvexmchkigsz5jf.dkim.amazonses.com.

$ dig ut5zt5ke55udeeigd4nkjixqg5geomul._domainkey.non-97.net +short
ut5zt5ke55udeeigd4nkjixqg5geomul.dkim.amazonses.com.

$ dig xmfvbay5xqcvnd2pcfkjyahikdqizuc3._domainkey.non-97.net +short
xmfvbay5xqcvnd2pcfkjyahikdqizuc3.dkim.amazonses.com.

それでは、Google Domainsにてカスタムネームサーバーを使用するように変更します。これにより、CNAMEレコードの名前解決ができなくなり、検証に失敗するはずです。

カスタムネームサーバーへの切り替え

カスタムネームサーバーに切り替え後、名前解決ができなくなったことを確認します。

$ dig non-97.net NS +short

$ dig jn2dqc3n672rtcdgitvexmchkigsz5jf._domainkey.non-97.net +short

$ dig ut5zt5ke55udeeigd4nkjixqg5geomul._domainkey.non-97.net +short

$ dig xmfvbay5xqcvnd2pcfkjyahikdqizuc3._domainkey.non-97.net +short

Amazon SESでIDの状態を確認します。DKIM周りのエラーは発生していません。

カスタムネームサーバー切り替え後のSES

この状態でテストメールを送信します。

テストEメールの送信

受信したメールを確認します。

受信したメールの確認

DKIM自体はパスしていますね。

メールのソースは以下のとおりです。

Delivered-To: <宛先メールアドレス>
Received: by 2002:a05:6130:f05:b0:7f1:9217:3e21 with SMTP id ct5csp1732738uab;
        Sun, 12 May 2024 19:56:36 -0700 (PDT)
X-Google-Smtp-Source: AGHT+IG0z/D0sgrGVH7rUlyk5kP5ohb6BN84+O6Bc3glBrc9H1tUPBSGaZ+gxbjqaNJe/66l4xay
X-Received: by 2002:a37:ef14:0:b0:790:72ef:50cb with SMTP id af79cd13be357-792c75efc2emr959084785a.60.1715568996779;
        Sun, 12 May 2024 19:56:36 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1715568996; cv=none;
        d=google.com; s=arc-20160816;
        b=YdITyZh76Q3O3WSSqj2Ffam+NcbMbxiIAlIAa9A+hFcgZ9LyKgvKinKGVKqahFLsLd
         mZEM7t1FygtEt8Ee1tfFmxFud0j8+KKhuTo+dZQBZqhiufb1yEHS5R8H+bMqVqDF9VI3
         V88ugq7m18SkJJW+P78AFsn+MCk7rURCjG8sw27uZH08dre1rM/mt+fvvpNvH1+pi3fz
         1I1D+dT/SpYxNMyDPHTSpVW3IW/e2IuTXYGh0qmLKfjQL78a8eVOTAGDYk9ggUmH7Zv9
         GLAWpxIfuoXEE595UA/xZpinpImdOZJhCHNgXs9kBumAXIkhShy61eE18jBTKS0Y5kIh
         0nOA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=feedback-id:date:message-id:mime-version:subject:to:from
         :dkim-signature:dkim-signature;
        bh=l7KbOLCUJ9aIjYgbgF2K4zjD2v+wEt/vCvltDzCUwxw=;
        fh=RsXeDY2DPb6hRhIsFcWxCVYee0eiid4hQt4ZLoAWGM8=;
        b=V1OgOWJKqvDlepGI6u+w97wUDIA3nXHEqhPWCynFRlzU4H1o54Ybrg+QALGs6n8Dah
         +TCHEICYEwaRP0PaWMGruXBVS4b/cSzDynfTPCTkpFHvWBySeUSkq8V6m2joGttM28K3
         hvseXqqxMJ8ZIqoTP4yra4i9dCRK9SB2V7zgqg4n8Xgml7tWVN1A9IlflDkNb/Deydxg
         bmGeRipIE3FZaF7t9T6dpLV51xRUMJ2JCgltqUblR1HeT7rts22/kXnv+o2tH298AY9u
         nSStJOquWXXz1wW17P7W4Hl8UvN56QCwbNNXO53ZV6simCoSgs1lkw11dJizqvce0LdC
         rJNw==;
        dara=google.com
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=temperror (dns failure for signature) header.i=@non-97.net header.s=jn2dqc3n672rtcdgitvexmchkigsz5jf header.b=i6++f18O;
       dkim=pass header.i=@amazonses.com header.s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug header.b="hOsA/CBN";
       spf=pass (google.com: domain of 0100018f6fe16da8-9fe46e15-6699-440f-bf5f-94f1e196214c-000000@amazonses.com designates 54.240.8.95 as permitted sender) smtp.mailfrom=0100018f6fe16da8-9fe46e15-6699-440f-bf5f-94f1e196214c-000000@amazonses.com
Return-Path: <0100018f6fe16da8-9fe46e15-6699-440f-bf5f-94f1e196214c-000000@amazonses.com>
Received: from a8-95.smtp-out.amazonses.com (a8-95.smtp-out.amazonses.com. [54.240.8.95])
        by mx.google.com with ESMTPS id af79cd13be357-792bf365081si920870485a.586.2024.05.12.19.56.36
        for <<宛先メールアドレス>>
        (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
        Sun, 12 May 2024 19:56:36 -0700 (PDT)
Received-SPF: pass (google.com: domain of 0100018f6fe16da8-9fe46e15-6699-440f-bf5f-94f1e196214c-000000@amazonses.com designates 54.240.8.95 as permitted sender) client-ip=54.240.8.95;
Authentication-Results: mx.google.com;
       dkim=temperror (dns failure for signature) header.i=@non-97.net header.s=jn2dqc3n672rtcdgitvexmchkigsz5jf header.b=i6++f18O;
       dkim=pass header.i=@amazonses.com header.s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug header.b="hOsA/CBN";
       spf=pass (google.com: domain of 0100018f6fe16da8-9fe46e15-6699-440f-bf5f-94f1e196214c-000000@amazonses.com designates 54.240.8.95 as permitted sender) smtp.mailfrom=0100018f6fe16da8-9fe46e15-6699-440f-bf5f-94f1e196214c-000000@amazonses.com
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=jn2dqc3n672rtcdgitvexmchkigsz5jf; d=non-97.net; t=1715568995; h=From:To:Subject:MIME-Version:Content-Type:Message-ID:Date; bh=l7KbOLCUJ9aIjYgbgF2K4zjD2v+wEt/vCvltDzCUwxw=; b=i6++f18OBq0cTJyAB4AnLXpe1pvCOs6TR1qeP4OK7NErV4YuiJPIx4TooUUbdRvo F800PPYgPOJkFKFpysy2CpmQOO5xp/ZUACCX/UwEiUCs0i5wnRZE71PSs1trkDxAqkJ MXJpri34QkjKP3w+uPisY49Yj9yqMUquy8Fzy+zY=
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1715568995; h=From:To:Subject:MIME-Version:Content-Type:Message-ID:Date:Feedback-ID; bh=l7KbOLCUJ9aIjYgbgF2K4zjD2v+wEt/vCvltDzCUwxw=; b=hOsA/CBNofw14Va+4mBJPf2TlZGBBcaVIPUVNIDfMq7MfPBdeKRxFMt+h3Rx3259 AapF3Ee0miMKQw8naBztaqLCQNWy6ra5zDUj9Ca13PSqTxGJMseTuDVjJzYPkjdmevJ AdQOni+/RPRafonKuspmQOW5eKAB7ZGQk+3x81aM=
From: dkim-test@non-97.net
To: <宛先メールアドレス>
Subject: DKIM test
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_Part_422987_1179258129.1715568995752"
Message-ID: <<メールID>
Date: Mon, 13 May 2024 02:56:35 +0000
Feedback-ID: <フィードバックID>
X-SES-Outgoing: 2024.05.13-54.240.8.95

------=_Part_422987_1179258129.1715568995752
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

DKIM test
------=_Part_422987_1179258129.1715568995752
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

DKIM test
------=_Part_422987_1179258129.1715568995752--

dkim=temperror (dns failure for signature) header.i=@non-97.net header.s=jn2dqc3n672rtcdgitvexmchkigsz5jf header.b=i6++f18O;とDKIMの作成者署名は失敗しています。Amazon SESの第三者署名のみになる点は注意しましょう。

以下記事で紹介しているようにDMARC認証をしている場合はDKIMアライメントが一致しないため、DMARC認証に失敗すると考えます。

再度検証した場合はどうでしょうか。verify-domain-dkimで検証します。

$ aws ses get-identity-dkim-attributes --identities non-97.net
{
    "DkimAttributes": {
        "non-97.net": {
            "DkimEnabled": true,
            "DkimVerificationStatus": "Success",
            "DkimTokens": [
                "ut5zt5ke55udeeigd4nkjixqg5geomul",
                "xmfvbay5xqcvnd2pcfkjyahikdqizuc3",
                "jn2dqc3n672rtcdgitvexmchkigsz5jf"
            ]
        }
    }
}

$ aws ses verify-domain-dkim --domain non-97.net
{
    "DkimTokens": [
        "ut5zt5ke55udeeigd4nkjixqg5geomul",
        "xmfvbay5xqcvnd2pcfkjyahikdqizuc3",
        "jn2dqc3n672rtcdgitvexmchkigsz5jf"
    ]
}

$ aws ses get-identity-dkim-attributes --identities non-97.net                                                                                                                               
{
    "DkimAttributes": {
        "non-97.net": {
            "DkimEnabled": true,
            "DkimVerificationStatus": "Success",
            "DkimTokens": [
                "ut5zt5ke55udeeigd4nkjixqg5geomul",
                "xmfvbay5xqcvnd2pcfkjyahikdqizuc3",
                "jn2dqc3n672rtcdgitvexmchkigsz5jf"
            ]
        }
    }
}

特に変わりありませんね。

メール送信してもDKIMの検証に成功する結果は変わらずでした。

数時間ほど待っても変わりありません。

ということで、検証をした限りではDKIM検証用のCNAMEレコードを削除しても、DMARC認証をしていなければ直ちに影響はなさそうです。

放置してみる

しばらくそのまま放置していると以下のような通知が来ました。DKIMの検証に必要なCNAMEレコードが存在しないことが明らかになったようです。

Subject: DKIM signing DISABLED for non-97.net in US East (N. Virginia) region

Body: We detected that the DNS records required for the DKIM setup of non-97.net are no longer present in your DNS settings.

To protect your email deliverability, we have temporarily disabled DKIM signing for emails originating from non-97.net. If you use Amazon Pinpoint to send mail through this domain, those emails will also be affected.

If the removal of the DNS records was intentional, you do not need to take any additional action. In 5 days, non-97.net will no longer be considered to be configured for the purpose of DKIM signing.

If it was unintentional, please restore the DNS records to your DNS settings within 5 days. Once we confirm the presence of the DNS records, we will re-enable DKIM signing.

Please note that the settings for individually verified email addresses override domain-level settings. For example, if you enable DKIM signing for a verified domain but disable DKIM signing for a verified email address in that domain, then emails from that email address will not be DKIM-signed.

For DKIM troubleshooting information, see http://docs.aws.amazon.com/ses/latest/DeveloperGuide/DKIM-problems.html .

Please note that this email only relates to the US East (N. Virginia) region.

Thank you for using Amazon Web Services.

5日以内にDNS設定を戻せとも記載されていますね。

5日以上放置しましょう。

すると、ちょうど5日後にDKIMのセットアップを取り消したと通知が来ました。

Subject: DKIM setup REVOKED for non-97.net in US East (N. Virginia) region

Body: 5 days ago, we detected that the DNS records required for the DKIM setup of non-97.net were no longer present. A notice was sent to you at that time.

Since 5 days have elapsed and the DNS records have not been restored, Amazon SES and Amazon Pinpoint will no longer consider non-97.net to be configured for the purpose of DKIM signing. If you wish to re-enable DKIM signing, please reinitiate the DKIM set-up process via the Amazon SES or Amazon Pinpoint console or the API.

For DKIM troubleshooting information, see http://docs.aws.amazon.com/ses/latest/DeveloperGuide/DKIM-problems.html .

Please note that this email only relates to the US East (N. Virginia) region.

Thank you for using Amazon Web Services.

再度DKIMセットアッププロセスを開始しろとも記載されていますね。

Google Domainsでカスタムネームサーバーからデフォルトのネームサーバーに切り替えます。これによりDKIM用のCNAMEレコードの検証ができるようになるはずです。

設定変更して数十分放置しましたが、DKIMの設定未設定のままです。

DKIMが無効

verify-domain-dkimで検証してみましょう。

$ aws ses verify-domain-dkim --domain non-97.net
{
    "DkimTokens": [
        "ut5zt5ke55udeeigd4nkjixqg5geomul",
        "xmfvbay5xqcvnd2pcfkjyahikdqizuc3",
        "jn2dqc3n672rtcdgitvexmchkigsz5jf"
    ]
}

$ aws ses get-identity-dkim-attributes --identities non-97.net
{
    "DkimAttributes": {
        "non-97.net": {
            "DkimEnabled": true,
            "DkimVerificationStatus": "Success",
            "DkimTokens": [
                "ut5zt5ke55udeeigd4nkjixqg5geomul",
                "xmfvbay5xqcvnd2pcfkjyahikdqizuc3",
                "jn2dqc3n672rtcdgitvexmchkigsz5jf"
            ]
        }
    }
}

検証できていそうです。

マネジメントコンソールを確認すると、DKIMの設定成功になっていますね。ちなみに、実行前後でCNAMEレコード名も値も変わりありません。

詳細ページ___Amazon_Simple_Email_Service___us-east-1

DKIMのセットアップが成功したという通知も来ていました。

Subject: DKIM setup SUCCESS for non-97.net in US East (N. Virginia) region

Body: Congratulations! Your DKIM setup for the domain non-97.net is complete. You can now send DKIM-signed emails from any address within this domain through both Amazon SES and Amazon Pinpoint.

Please note that the settings for individually verified email addresses override domain-level settings. For example, if you enable DKIM signing for a verified domain but disable DKIM signing for a verified email address in that domain, then emails from that email address will not be DKIM-signed.

For more information about DKIM, see the Amazon SES Developer Guide at http://docs.aws.amazon.com/ses/latest/DeveloperGuide/dkim.html .

Please note that this email only relates to the US East (N. Virginia) region.

Thank you for using Amazon Web Services.

誤ってCNAMEレコードを削除してしまった場合は早めに再登録を

Amazon SESのEasy-DKIMのCNAMEレコードを一定期間検証できなかった場合の挙動の確認をしました。

検証をした限りではDKIM検証用のCNAMEレコードを削除しても、DMARC認証をしていなければ直ちに影響はなさそうです。ただし、誤ってCNAMEレコードを削除してしまった場合は早めに再登録をしましょう。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!