Defaults.Exposed › 設定 › DNSSEC
AWS Route 53 で DNSSEC を設定する方法
Route 53 で KMS キーを使って DNSSEC 署名を有効にし、レジストラ側に DS レコードを追加して、誰にも DNS の応答を偽造させないようにします。
これがビジネスにとって重要な理由
誰かがあなたのサイトを訪れたりメールを送ったりすると、その人のコンピューターはまず DNS システムに正しいアドレスを問い合わせます。この応答は通常署名されずに送られるため、名前解決を改ざんできる攻撃者は、あなたの訪問者をひそかに偽サイトへリダイレクトしたり、メールを自分のサーバーへ転送したりできます。その間も、アドレスバーには本物のドメインが表示されたままです。
DNSSEC はこれを防ぎます。DNS の応答を暗号的に署名するため、あなたを調べる側は、その応答が本当にあなたから来たもので、転送中に改ざんされていないことを証明できます。平たく言えば、自分のドメインをお客様に向ける武器に変えてしまう攻撃、すなわちドメイン乗っ取りやキャッシュポイズニングを防ぎます。機能としては無料です(署名鍵には小さな AWS KMS キーを使い、わずかな月額料金がかかります)。そして有効にできる最も強力な保護の 1 つです。
Route 53 での DNSSEC の仕組み
Route 53 は作業を、始める前に理解しておく価値のある形で分割しています。
- Route 53 は、AWS KMS(Key Management Service)に保存された鍵を使ってホストゾーンに署名します。署名を有効にすると、公開鍵(DNSKEY)が公開され、DS レコード が生成されます。
- 次に、あなたの レジストラ(ドメインを更新している会社)が、その DS レコード を親ゾーン(たとえば
.com)に公開し、インターネットの他の部分が署名を信頼できるようにします。
ドメインを Route 53 経由(Amazon Registrar)で登録した場合でも、レジストラの手順は依然として必要ですが、それは AWS コンソール内で行います。レジストラが別の会社の場合は、そこに DS レコードを手作業でコピーします。
実際のリスク — 慎重に行ってください
DNSSEC は、誤って設定するとドメイン全体をオフラインにしかねません。それが起こる 2 つの経路は次のとおりです。
- Route 53 が署名に使っている鍵と 一致しない DS レコードがレジストラにある。
- レジストラの DS レコードを 先に削除せずに、署名を無効にしたり、KMS キーを削除したり、DNS を Route 53 から移したりする。古い DS レコードが、もはや存在しない署名を要求し続け、名前解決が失敗します。
以下の順番を正確に守ってください。また、DNS を Route 53 から移行する場合は、まずレジストラの DS レコードを削除し、署名を無効にしてから、移行してください。
まず Route 53 が DNS を運用しているか確認する
これが機能するのは、Route 53 があなたのドメインの DNS に応答している場合だけです。ドメインの ネームサーバー が、自社の ホストゾーン に記載された 4 つの Route 53 ネームサーバーを指していることを確認してください。Route 53 コンソールを開き、Hosted zones(ホストゾーン)に移動し、自社ドメインを開いて NS レコードの値を確認します。レジストラのネームサーバー設定はこれと一致している必要があります。ネームサーバーが別の場所を指している場合は、実際に DNS を運用しているプロバイダー側で DNSSEC を有効にしてください。
Route 53 での手順
- AWS コンソールにサインインし、Route 53 を開きます。
- Hosted zones に移動し、自社ドメインのホストゾーンを開きます。
- DNSSEC signing(DNSSEC 署名)タブを開き、Enable DNSSEC signing(DNSSEC 署名を有効にする)を選びます。
- キー署名鍵(KSK) には、カスタマー管理の KMS キー を指定する必要があります。
- Create customer managed key(カスタマー管理キーを作成)を選ぶ(または、対象となる既存のものを選ぶ)。
- キーは、用途が Sign and verify(署名と検証)の 非対称(asymmetric) キーで、ECC_NIST_P256 仕様を使い、米国東部(バージニア北部)
us-east-1リージョンにある必要があります。Route 53 の DNSSEC はそのリージョンのキーを要求します。 - KSK に名前を付けます。
- 確認して 署名を有効 にします。これで Route 53 がホストゾーンに署名します。
- 同じ DNSSEC signing タブで、DS record / Establish a chain of trust(信頼の連鎖を確立)を見つけます。Route 53 が必要な値、すなわち Key Tag、Signing algorithm、Digest algorithm、Digest(多くの場合すぐ使える DS レコード行も)を表示します。
- 次に レジストラ に移動し、DS レコードを追加します。
- ドメインが Route 53(Amazon Registrar)で登録されている場合: コンソールがドメインの設定の下で案内してくれます。または値をドメインの DNSSEC セクションにコピーします。
- レジストラが別の会社の場合: その DNSSEC / DS レコードのセクションを開き、手順 6 の値、すなわち Key Tag、Algorithm(通常
13)、Digest Type(通常2)、Digest を正確に入力します。
- レジストラ側で保存します。DS レコードが親ゾーンで受理されると、信頼の連鎖が完成します。
Route 53 でよくある間違い
- KMS キーは
us-east-1になければなりません。 Route 53 の DNSSEC は他のリージョンの KSK キーを受け付けません。これが最初のつまずきです。 - 正しいキータイプを使います。 非対称、署名と検証、ECC_NIST_P256 の KMS キーでなければなりません。対称キーや仕様の違うキーは KSK として機能しません。
- 1 つではなく 2 つのシステムです。 Route 53 で署名を有効にするだけでは、それ単独では何も起きません。DS レコードをレジストラにも届ける必要があります。手順 5 で止めてしまい、なぜ検証されないのか悩む人が多いのです。
- ダイジェストを正確にコピーします。 Digest に 1 文字でも誤りがあると、レジストラの DS レコードが Route 53 の署名鍵と一致しません。これがまさにドメインをオフラインにする設定ミスです。貼り付けて、決して打ち直さないでください。
- 署名が有効な間に KMS キーを削除しないでください。 また、Route 53 が署名している間はレジストラの DS レコードを決して削除しないでください。
- DNS を移す前に正しい順序で無効にします。 移行するには、まずレジストラの DS レコードを削除し、それが消えるのを待ち、その後 Route 53 で署名を無効にします。逆ではありません。
- 反映には時間を見込みます。 DNSSEC の変更は、完全に反映されて検証されるまで数分から 1 日かかることがあります。
設定できたか確認する
Route 53 で署名が有効になり、レジストラに DS レコードが設定されたら、このサイトの無料チェックを実行してください。DNSSEC が自社ドメインに対して正しく公開され、信頼されているかを、分かりやすい言葉で教えてくれます。
完了しましたか? ドメインを無料でチェック して、正しく反映されたか確認しましょう。34項目すべてにわたる総合評価も見られます。