DNSSEC 署名の有効化と信頼チェーンの確立 - Amazon Route 53

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DNSSEC 署名の有効化と信頼チェーンの確立

増分手順はホストゾーンの所有者と親ゾーンの管理者に適用されます。これは同一の当事者でもかまいません。ただし、そうでない場合、ゾーンの所有者は親ゾーンの管理者に通知して協力する必要があります。

ゾーンを署名して信頼チェーンに含めるため、この記事の手順に従うことをお勧めします。次のステップでは、DNSSEC へのオンボーディングのリスクを最小限に抑えます。

注記

始める前に、「Amazon Route 53 での DNSSEC 署名の設定」で前提条件を確認してください。

次のセクションで説明するように、DNSSEC 署名を有効にするには 3 つのステップがあります。

ステップ 1: DNSSEC 署名を有効にする準備をする

準備ステップは、ゾーンの可用性をモニタリングし、署名を有効にしてから Delegation Signer (DS) レコードを挿入するまでの待機時間を短縮することで、DNSSEC へのオンボーディングのリスクを最小限に抑えるのに役立ちます。

DNSSEC 署名を有効にする準備をするには
  1. ゾーンの可用性を監視します。

    ドメイン名の可用性をゾーンで監視できます。これにより、DNSSEC 署名を有効にした後にステップバックが必要になる可能性のある問題に対処できます。クエリログを使用してトラフィックが最も多いドメイン名を監視できます。クエリ ログのセットアップの詳細については、「Amazon Route 53 のモニタリング」をご参照ください。

    監視はシェルスクリプトまたはサードパーティサービスを通じて実行できます。ただし、ロールバックが必要か否かを判断する唯一のシグナルとして見なしてはなりません。また、ドメインが利用できない理由で顧客からフィードバックを得る場合があります。

  2. ゾーンの最大TTL数を下げます。

    ゾーンの最大TTLは、ゾーン内の最長のTTLレコードです。次の例のゾーンでは、ゾーンの最大 TTL は 1 日 (86400 秒) です。

    名前 TTL レコードクラス レコードタイプ データレコード

    example.com。

    900

    IN

    SOA

    ns1.example.com。hostmaster.example.com。2002022401 10800 15 604800 300

    example.com。

    900

    IN

    NS

    ns1.example.com。

    route53.example.com。

    86400

    IN

    TXT

    some txt record

    ゾーンの最大TTL数を下げると、署名を有効にしてから Delegation Signer (DS) レコードを挿入するまでの待機時間を短縮できます。ゾーンの最大TTL数を 1 時間 (3600 秒) に減らすことをお勧めします。これにより、リゾルバーが署名済みレコードのキャッシュに問題がある場合、わずか 1 時間後にロールバックできます。

    ロールバック: TTL の変更を元に戻します。

  3. SOA TTL と SOA の最小フィールドを下げます。

    SOA 最小フィールドは、SOA レコードデータの最後のフィールドです。次の SOA レコードの例では、最小フィールドの値は 5 分 (300 秒) です。

    名前 TTL レコードクラス レコードタイプ データレコード

    example.com。

    900

    IN

    SOA

    ns1.example.com。hostmaster.example.com。2002022401 10800 15 604800 300

    SOATTLとSOAの最小フィールドは、リゾルバーが負の回答を記憶する時間を決定します。署名を有効にすると、Route 53 ネームサーバーは否定的な回答の NSEC レコードの返しを開始します。NSECには、リゾルバーが否定的な回答を合成するために使用する可能性のある情報が含まれています。NSEC情報が原因でリゾルバーが名前に対して否定的な回答を引き受けたためにロールバックする必要がある場合は、リゾルバーが仮定を停止するまで、SOATTLとSOAの最小フィールドの最大数だけ待機する必要があります。

    ロールバック: SOA の変更を元に戻します。

  4. TTL および SOA の最小フィールド変更が有効であることを確認します。

    GetChange を使用して、これまでの変更がすべての Route 53 DNS サーバーに反映されていることを確認します。

ステップ 2: DNSSEC 署名を有効にして KSK を作成する

DNSSEC 署名を有効にし、Route 53 コンソールで AWS CLI または を使用してキー署名キー (KSK) を作成できます。

カスタマーマネージド KMS キーを提供または作成する場合、いくつかの要件があります。詳細については、「DNSSEC のカスタマーマネージドキーの使用」を参照してください。

CLI

既に持っているキーを使用、または以下のように hostedzone_idcmk_arnksk_nameunique_string 用の値を使用して AWS CLI コマンドを実行してキーを作成します (リクエストをユニークにするため):

aws --region us-east-1 route53 create-key-signing-key \ --hosted-zone-id $hostedzone_id \ --key-management-service-arn $cmk_arn --name $ksk_name \ --status ACTIVE \ --caller-reference $unique_string

カスタマーマネージドキーの詳細については、「DNSSEC のカスタマーマネージドキーの使用」をご参照ください。「CreateKeySigningKey」も参照してください。

DNSSEC 署名を有効にするには、 に独自の値を使用して、次のような AWS CLI コマンドを実行しますhostedzone_id

aws --region us-east-1 route53 enable-hosted-zone-dnssec \ --hosted-zone-id $hostedzone_id

詳細については、enable-hosted-zone-dnssec」とEnableHostedZoneDNSSEC」を参照してください。

Console
DNSSEC 署名を有効にして KSK を作成するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/route53/ で Route 53 コンソールを開きます。

  2. ナビゲーションペインで、ホストゾーンを選択し、DNSSEC 署名を有効にするホストゾーンを選択します。

  3. DNSSEC 署名タブで、DNSSEC 署名を有効にするを選択します。

    注記

    このセクションのオプションが DNSSEC 署名を無効にする の場合、DNSSEC 署名を有効にする最初のステップはすでに完了しています。DNSSEC のホストゾーンの信頼チェーンを確立するか、すでに存在することを確認し、完了します。詳細については、「ステップ 3: 信頼チェーンを確立」を参照してください。

  4. キー署名キー (KSK) の作成セクションで、新しいKSKの作成を選択し、KSK名の提供で、Route 53 が作成するKSKの名前を入力します。名前には、文字、数字、アンダースコア (_) のみを含めることができます。また、名前は一意である必要があります。

  5. カスタマーマネージドCMKで、Route 53 が KSK を作成するときに使用するカスタマーマネージドキーを選択します。DNSSEC 署名に適用される既存のカスタマーマネージドキーを使用するか、新しいカスタマーマネージドキーを作成できます。

    カスタマー管理キーの指定または作成には、いくつかの要件があります。詳細については、「DNSSEC のカスタマーマネージドキーの使用」を参照してください。

  6. カスタマー管理キーのエイリアスを入力します。新たなカスタマーマネージドキーを使用する場合、カスタマーマネージドキーのエイリアスを入力します。これによって Route 53 がキーを作成します。

    注記

    Route 53 にカスタマー管理キーを作成させる場合、個別のカスタマー管理キーごとに料金が発生することにご注意ください。詳細については、AWS Key Management Service の料金を参照してください。

  7. DNSSEC 署名を有効にするを選択します。

ゾーン署名を有効にしたら、次のステップ (コンソールと Word のどちらを使用したか) を完了します。 CLI

  1. ゾーン署名が有効であることを確認します。

    を使用した場合は AWS CLI、EnableHostedZoneDNSSEC()呼び出しの出力からオペレーション ID を使用して get-change または GetChange を実行し、すべての Route 53 DNS サーバーがレスポンスに署名していることを確認します (ステータス = INSYNC)。

  2. 少なくとも前のゾーンの最大 TTL を待ちます。

    リゾルバーがキャッシュから署名されていないレコードをすべてフラッシュするまで待ちます。これを実現するには、少なくとも前のゾーンの最大 TTL を待つ必要があります。上記の example.com ゾーンの場合、待機時間は 1 日です。

  3. 顧客問題のレポートを監視します。

    ゾーン署名を有効にした後、顧客がネットワークデバイスおよびリゾルバーに関連する問題に直面し始める可能性があります。推奨される監視期間は 2 週間です。

    直面する問題例を以下の通り、紹介します:

    • ネットワークデバイスによっては、DNS レスポンスのサイズを 512 バイト未満に制限できますが、一部の署名付きレスポンスでは小さすぎます。これらのネットワークデバイスは、より大きな DNS レスポンスサイズを可能にするように再設定する必要があります。

    • 一部のネットワークデバイスは、DNS レスポンスを詳細に検査し、DNSSEC に使用されるレコードのように、理解できない特定のレコードを削除します。これらのデバイスは再設定する必要があります。

    • 一部のお客様のリゾルバーは、ネットワークがサポートするよりも大きな UDP レスポンスを受け入れることができると主張しています。ネットワーク機能をテストしてリゾルバーを適切に設定できます。詳細については、DNS Reply Size Test Server」を参照してください。

ロールバック: DisableHostedZoneDNSSECWord を呼び出してから、 のステップをロールバックしますステップ 1: DNSSEC 署名を有効にする準備をする

ステップ 3: 信頼チェーンを確立

Route 53 でホストゾーンの DNSSEC 署名を有効にしたら、ホストゾーンの信頼チェーンを確立して DNSSEC 署名の設定を完了します。これを行うには、Route 53 から提供される情報を使用しながら、自分のホストゾーンのホストゾーンで Delegation Signer (DS) レコードを作成します。ドメインが登録されている場所に応じて、Route 53 内または別のドメインレジストラにある親ホストゾーンに、DS レコードを追加します。

DNSSEC 署名の信頼チェーンを確立するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/route53/ で Route 53 コンソールを開きます。

  2. ナビゲーションペインで、ホストゾーンを選択し、DNSSEC の信頼チェーンを確立するホストゾーンを選択します。最初に DNSSEC 署名を有効にする必要があります。

  3. DNSSEC 署名タブの DNSSEC 署名 で、情報を表示 を選択して DS レコードを作成します

    注記

    このセクションに DS レコードを作成するための情報を表示 が表示されない場合は、信頼チェーンを確立する前に DNSSEC 署名を有効にする必要があります。DNSSEC 署名を有効にする」を選択し、「」で説明されているステップを完了してからステップ 2: DNSSEC 署名を有効にして KSK を作成する、これらのステップに戻って信頼チェーンを確立します。

  4. ドメインが登録されている場所に応じ、[信頼チェーンを確立] から、[Route 53 レジストラ]または [他のドメインレジストラ] を選択します。

  5. ステップ 3 で指定された値を使用して、Route 53 の親ホストゾーンの DS レコードを作成します。ドメインが Route 53 でホストされていない場合、表示された値をドメインレジストラのウェブサイトで使用して DS レコードを作成します。

    親ゾーンの信頼チェーンを確立します。

    • ドメインが Route 53 で管理されている場合、次の手順に従います。

      正しい署名アルゴリズム (ECDSAP256SHA256 とタイプ 13) とダイジェストアルゴリズム (SHA-256 とタイプ 2) を設定していることを確認してください。

      Route 53 がレジストラである場合、Route 53 コンソールで以下の操作を実行します:

      1. [Key type] (キータイプ)、[Signing algorithm] (署名アルゴリズム)、および [Public key] (パブリックキー) の各値を書き留めます。ナビゲーションペインで [Registered Domains] をクリックします。

      2. ドメインを選択し、DNSSEC ステータスの横にあるキーの管理を選択します。

      3. DNSSEC キーの管理」ダイアログボックスで、ドロップダウンメニューから Route 53 レジストラの適切なキータイプアルゴリズムを選択します。

      4. Route 53 レジストラの [パブリックキー] をコピーします。DNSSEC キーの管理」ダイアログボックスで、パブリックキーボックスに値を貼り付けます。

      5. [追加] を選択します。

        Route 53 は、パブリックキーから親ゾーンに DS レコードを追加します。例えば、ドメインが の場合example.com、DS レコードは .com DNS ゾーンに追加されます。

    • ドメインが別のレジストリで管理されている場合は、「別のドメインレジストラ」セクションの手順に従います。

      次のステップがスムーズに進むように、親ゾーンに低 DS TTLを導入します。変更をロールバックする必要がある場合は、より迅速に復旧できるように DS TTL を 5 分 (300 秒) に設定することをお勧めします。

      • 子ゾーンの信頼チェーンを確立します。

        親ゾーンが別のレジストリで管理されている場合、レジストラに連絡してゾーンに DS レコードを導入するように依頼してください。通常、DS レコードのTTLは調整できません。

      • 親ゾーンが Route 53 でホストされている場合、親ゾーンの所有者に連絡してゾーンに DS レコードを導入するように依頼してください。

        親ゾーンの所有者に $ds_record_value を提供します。これを取得するには、情報を表示をクリックしてコンソールで DS レコードを作成しDS レコードフィールドをコピーするか、GetDNSSEC API を呼び出してDSRecord」フィールドの値を取得します。

        aws --region us-east-1 route53 get-dnssec --hosted-zone-id $hostedzone_id

        親ゾーンの所有者は、Route 53 コンソールまたは CLI からレコードを挿入できます。

        • を使用して DS レコードを挿入するには AWS CLI、親ゾーンの所有者が次の例のような JSON ファイルを作成し、名前を付けます。親ゾーンの所有者は、ファイルに inserting_ds.json のような名前を付けることがあります。

          { "HostedZoneId": "$parent_zone_id", "ChangeBatch": { "Comment": "Inserting DS for zone $zone_name", "Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Name": "$zone_name", "Type": "DS", "TTL": 300, "ResourceRecords": [ { "Value": "$ds_record_value" } ] } } ] } }

          次に、以下のコマンドを実行します。

          aws --region us-east-1 route53 change-resource-record-sets --cli-input-json file://inserting_ds.json
        • コンソールを使用して DS レコードを挿入するには、

          https://console.aws.amazon.com/route53/ で Route 53 コンソールを開きます。

          ナビゲーションペインで [Hosted zones] (ホストゾーン) とホストゾーン名を選択し、[Create record] (レコード作成) ボタンを押します。[Routing policy] (ルーティングポリシー) で [Simple routing] (簡易ルーティング) を選択していることを確認します。

          [Record name] (レコード名) フィールドに $zone_name と同じ名前を入力し、[Record type] (レコードタイプ) ドロップダウンから DS を選択します。次に [Value] (値) フィールドに $ds_record_value の値を入力して [Create records] (レコード作成) を選択します。

    ロールバック: 親ゾーンから DS を削除し、DS TTL を待ってから、信頼を確立するためのステップをロールバックします。親ゾーンが Route 53 でホストされている場合、親ゾーンの所有者は JSON ファイルDELETEで を Actionから UPSERTに変更し、上記の例の CLI を再実行できます。

  6. ドメインレコードの TTL に基づいて、更新が伝達されるのを待ちます。

    親ゾーンが Route 53 DNS サービス上にある場合、親ゾーンの所有者は GetChangeWord を通じて完全な伝播を確認できます。 API

    または、親ゾーンの DS レコードを定期的に調査することが可能であり、DS レコードの挿入が完全にプロパゲートされる確率を上げるため、さらに 10 分待ちます。DS 挿入をスケジュールしているレジストラもいることにご留意ください (例えば 1 日 1 回など)。

親ゾーンに Delegation Signer (DS) レコードを導入すると、DS を取得した検証済みリゾルバーがゾーンから応答の検証を開始します。

信頼を確立する手順をスムーズに進めるため、以下の手順を実行します:

  1. 最大 NS TTLを検索します。

    ゾーンに関連付けられた NS レコードが 2 つのセットあります。

    • NS レコードの委任 - これは、親ゾーンが保持しているお客様ゾーンの NS レコードです。次の Unix コマンドを実行することでこれを検索できます (ゾーンが example.com の場合、親ゾーンは com です):

      dig -t NS com

      いずれの NS レコードを 1 つを選択して以下を実行します:

      dig @one of the NS records of your parent zone -t NS example.com

      例:

      dig @b.gtld-servers.net. -t NS example.com

    • ゾーン内 NS レコード - これはゾーン内の NS レコードです。以下の Unix コマンドを実行すると探せます。

      dig @one of the NS records of your zone -t NS example.com

      例:

      dig @ns-0000.awsdns-00.co.uk. -t NS example.com

      両方のゾーンの最大TTL数を書き留めます。

  2. NS TTL の最大数を待ちます。

    DS を挿入前の段階では、リゾルバーは署名付きレスポンスを取得しますが、署名を検証しません。DS レコードが挿入されると、ゾーンの NS レコードが期限切れになるまで、リゾルバーはそのレコードを認識しません。リゾルバーが NS レコードを再フェッチすると、DS レコードも返されます。

    お客様の顧客が非同期クロックのホスト内でリゾルバーを実行している場合、クロックが正しい時刻から 1 時間以内の誤差があることを確認してください。

    このステップを完了すると、すべてのDNSSEC対応リゾルバーがゾーンを検証します。

  3. 名前解決を確認します。

    ゾーンを検証するリゾルバーに問題がないことにご留意してください。顧客が問題を報告するために必要な時間も考慮してください。

    最大 2 週間監視することをお勧めします。

  4. (オプション) DS および NS TTLsを長くします。

    設定に問題がなければ、行った TTL と SOA の変更を保存できます。Route 53 では、署名付きゾーンの TTL は 1 週間に制限されていることに注意してください。詳細については、「Amazon Route 53 での DNSSEC 署名の設定」を参照してください。

    DS TTL を変更できる場合は、1 時間に設定することをお勧めします。