Route 53でDKIM鍵を追加すると「CharacterStringTooLong」エラーが出るのはなぜですか。


Route 53が意地悪をしているわけではない。DNS TXTレコードの仕様で、1つの文字列の最大長は255文字と定められている(RFC 7208)。標準的な2048ビットDKIM鍵は約400〜500文字になるため、1つの塊では収まらないのだ。

修正方法は、値を255文字以下の複数のクォート文字列に分割し、同一行でスペースで区切ることだ。DNSリゾルバが検証時に自動的に結合してくれる。

"v=DKIM1; k=rsa; p=FIRST_255_CHARS" "NEXT_255_CHARS" "REMAINING_CHARS"

よくある間違いとして、各クォートチャンクを別々の行に配置してしまうケースがある。Route 53は別々の行をそれぞれ独立したTXTレコードとして解釈するため、DKIM検証が完全に失敗する。

コンソールとCLIの両方を含む詳細な手順はこちら: DKIMの公開鍵がRoute 53に長すぎると言われたときの対処法