The DNS records
SES generates three random tokens for each identity. The hosted zone in the target varies by AWS Region and can differ between identities, so always copy the value SES shows rather than a fixed domain.
Easy DKIM, record 1 of 3 (AWS's example)
Type: CNAME · Host: hirjd4exampled5477y22yd23ettobi._domainkey
hirjd4exampled5477y22yd23ettobi.dkim.us-west-2.amazonses.com
Records 2 and 3 follow the same pattern with their own tokens. AWS warns against an extra leading underscore: _abc123._domainkey is wrong.
BYODKIM: your own key under your own selector
Type: TXT · Host: <selector>._domainkey
p=<your public key>
AWS asks for an RSA key of 1024 to 2048 bits, with the BEGIN/END lines and line breaks removed and the p= prefix kept.
Set it up and turn on signing
- In the SES console, go to Configuration > Identities > Create identity and choose Domain.
- Expand Advanced DKIM settings and choose Easy DKIM, Deterministic Easy DKIM or Provide DKIM authentication token (BYODKIM). For Easy DKIM, pick the DKIM signing key length and keep DKIM signatures: Enabled ticked.
- Click Create identity. Under the identity's Authentication tab, expand Publish DNS records to copy the three CNAMEs, or download them as a .csv. If the domain is in Route 53, SES can publish them for you.
- Create the records at your DNS host. AWS says changes can take up to 72 hours; the identity shows DKIM configuration Successful and status Verified when done.
- To change an existing identity, open its Authentication tab and click Edit in the DomainKeys Identified Mail (DKIM) container.
DMARC alignment
Every SES message also carries a signature with d=amazonses.com, which never aligns with your From domain. Easy DKIM or BYODKIM adds a second signature with your domain, and that is the one DMARC uses. DKIM set on a domain also covers its subdomains. SPF is separate: the default MAIL FROM is a subdomain of amazonses.com, so SPF only aligns if you set a custom MAIL FROM domain.
Key length and rotation
New identities use 2048-bit keys unless you choose 1024, and you can't switch key length more than once in 24 hours (except a first downgrade to 1024). With Easy DKIM, AWS hosts the signing keys, which lets it rotate them without DNS changes; it doesn't publish a schedule. With BYODKIM you rotate your own key as often as you like. Each Region needs its own identity and records unless you use Deterministic Easy DKIM, which gives the same tokens across Regions from a parent identity. Switching an identity between Easy DKIM and BYODKIM can leave mail unsigned while the new status is pending; AWS suggests a subdomain as an intermediate step.
Common mistakes
- Your domain added twice. Many DNS hosts append the zone, turning the name into
<token>._domainkey.example.com.example.com. Enter only<token>._domainkey, or end the full name with a period. - Hardcoding
dkim.amazonses.com. The signing zone differs by Region and identity; copy the target SES returns. - Reusing one Region's records in another Region. Validation records are per Region unless you use Deterministic Easy DKIM.
- Expecting the amazonses.com signature to satisfy DMARC. It passes DKIM but never aligns with your domain.
Check your Amazon SES DKIM key
Enter your domain and the selector from your Amazon SES account. Free, reads public DNS only.
Need your own key pair for this setup? The DKIM Record Generator creates one in your browser.
Frequently asked questions
Why do my SES emails have two DKIM signatures?
SES signs every message with d=amazonses.com. Once Easy DKIM or BYODKIM is set up, it adds a second signature with your domain. Receivers check both, and DMARC uses the one that matches your From domain.
Do I need separate SES DKIM records for each AWS Region?
Yes, with standard Easy DKIM: each Region's identity has its own tokens. Deterministic Easy DKIM generates the same tokens across Regions from a parent identity, so replicas need no extra DNS records.
Can I use my own DKIM key with Amazon SES?
Yes, with BYODKIM. Generate an RSA key pair of 1024 to 2048 bits, publish the public key as a TXT record at <selector>._domainkey, and give SES the private key and selector. You then choose when to rotate.
Sources
- Amazon SES Developer Guide: Easy DKIM in Amazon SES
- Amazon SES Developer Guide: Provide your own DKIM authentication token (BYODKIM)
- Amazon SES Developer Guide: Using Deterministic Easy DKIM (DEED)
- Amazon SES Developer Guide: Complying with DMARC authentication protocol
- Amazon SES Developer Guide: Troubleshooting DKIM problems
- RFC 6376: DomainKeys Identified Mail (DKIM) Signatures
- RFC 8301: Cryptographic Algorithm and Key Usage Update to DKIM
Checked against Amazon SES's documentation on October 9, 2026. Providers change their setup screens; if yours differs, follow the values your admin console shows.
DKIM records for other providers
- Microsoft 365CNAME: selector1, selector2
- Google WorkspaceTXT: google
- Zoho MailTXT: you choose (e.g. zoho)
- GoDaddyCNAME: secureserver1, secureserver2
- FastmailCNAME: fm1, fm2, fm3
- Proton MailCNAME: protonmail, protonmail2, protonmail3
- SendGridCNAME or TXT: s1, s2
- MailgunTXT or CNAME: assigned by Mailgun (e.g. pic, krs, smtp), pdk1, pdk2 (Automatic Sender Security)
- PostmarkTXT: <timestamp>pm (e.g. 20131031155228pm)
- MailchimpCNAME: k2 and a second CNAME (Marketing), mte1, mte2 (Transactional)
- BrevoTXT or CNAME: mail (TXT), 2 CNAMEs from your account
- HubSpotCNAME: hs1-<number>, hs2-<number>
- KlaviyoCNAME: km1, km2 (marketing), kt1, kt2 (transactional), ks1, ks2 (service)
- SalesforceCNAME: you choose two (e.g. example-sf-a, example-sf-b)
- ZendeskCNAME: zendesk1, zendesk2
Compare every provider's selectors in one table · SPF record for Amazon SES
Related guides
How to find a domain's DKIM selector, and check its key
Find a DKIM selector from the s= tag in an email header, see the selectors Microsoft 365, Google Workspace and common senders use, then check the key.
8 min read SPF, DKIM & DMARCHow to rotate DKIM keys without breaking email
How often to rotate DKIM keys, which key length to use, how to name selectors, and how to rotate in Microsoft 365, Google Workspace and on your own server.
9 min read SPF, DKIM & DMARCDKIM "body hash did not verify" and other DKIM failures: causes and fixes
Fix DKIM failures: body hash did not verify, signature did not verify, no key for signature and short keys. Causes from mailing lists to broken TXT records.
9 min readLast updated