DNSSEC 署名を有効にし、信頼チェーンを確立します。 - Amazon Route 53

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

DNSSEC 署名を有効にし、信頼チェーンを確立します。

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

ゾーンを署名して信頼チェーンに含めるため、この記事の手順に従うことをお勧めします。以下の手順により、DNSSEC へのオンボーディングのリスクを最小限に抑えられます。

注記

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

以下のセクションで説明する通り、DNSSEC 署名を有効にする場合、3 つの手順を実行します。

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

準備手順では、ゾーンの可用性を監視して署名の有効化から委任署名者 (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

    SOA TTL および SOA の最小フィールドは、リゾルバーがネガティブな回答を記憶する期間を決定します。署名を有効にすると、Route 53 ネームサーバーはネガティブな回答に対して NSEC レコードを返し始めます。NSEC には、リゾルバーがネガティブな回答を合成する際に使用する可能性がある情報が含まれています。NSEC 情報により、リゾルバーが名前に対してネガティブな回答を仮定したことによってロールバックが必要な場合、リゾルバーが仮定を停止するまで SOA TTL の最大値および 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 signing] (DNSSEC 署名) タブで、[Enable DNSSEC signing] (DNSSEC 署名を有効にする) を選択します。

    注記

    このセクションで [Disable DNSSEC signing] (DNSSEC 署名を無効にする) というオプションが表示されている場合は、DNSSEC 署名を有効にするための最初のステップが既に完了しています。DNSSEC のホストゾーンの信頼チェーンが確立されている、あるいは既に存在していることを確認し、作業を完了します。詳細については、「ステップ 3: 信頼チェーンを確立」を参照してください。

  4. [Key-signing key (KSK) creation] (キー署名キー (KSK) の作成) セクション内で [Create new KSK] (新しい KSK を作成) を選択し、[Provide KSK name] (KSK 名を指定) の下で、Route 53 が作成する KSK 名を入力します。名前には、文字、数字、アンダースコア (_) のみを含めることができます。また、名前は一意である必要があります。

  5. [Customer managed CMK] (カスタマー管理 CMK)で、KSK の作成時に Route 53 で使用される、カスタマー管理キーを選択します。既存のカスタマー管理キーを使用して DNSSEC 署名に適用することも、新しいカスタマー管理キーを作成して使用することもできます。

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

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

    注記

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

  7. [DNSSEC 署名を有効にする] をクリックします。

ゾーン署名を有効にした後、以下の手順を実行します (コンソールあるいは 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 (DNS 応答容量テストサーバー) をご参照ください。

ロールバック: DisableHostedZoneDNSSEC を呼び出してから、「」のステップをロールバックしますステップ 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 signing] (DNSSEC 署名) タブを開き、[DNSSEC signing] (DNSSEC 署名) の [View information to create DS record] (DS レコードを作成するための情報を表示) 選択します。

    注記

    このセクションで [View information to create DS record] (DSレコードを作成するための情報を表示] が表示されていない場合は、信頼チェーンを確立する前に DNSSEC 署名を有効にする必要があります。[Enable DNSSEC signing] (DNSSEC 署名を有効にする) を選択して ステップ 2: DNSSEC 署名を有効にして KSK を作成 の記載された手順を完了した後、これらの手順に戻って信頼チェーンを確立します。

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

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

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

      署名アルゴリズム (ECDSAP256SHA256 および type 13) とダイジェストアルゴリズム (SHA-256 およびタイプ 2) が正しく設定されたことを確認します。

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

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

      2. ドメインを選択してから、[DNSSEC status] (DNSSEC のステータス) の隣にある [Manage keys] (キーの管理) を選択します。

      3. [Manage DNSSEC keys] (DNSSEC キー管理) ダイアログボックス内のドロップダウンメニューから、[Route 53 registrar] (Route 53 レジストラ) の適切な [Key type] (キータイプ) と [Algorithm] (アルゴリズム) を選択します。

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

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

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

    • 親ゾーンが Route 53 でホストされている場合、またはドメインが別のレジストリで管理されている場合は、親ゾーンまたはドメイン登録所有者に連絡して、以下の手順に従います。

      以下の手順をスムーズに進める場合、親ゾーンに低い DS TTL を導入します。変更をロールバックする必要がある場合、DS TTL を 5 分 (300 秒) に設定してリカバリの高速化をお勧めします。

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

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

        親ゾーンの所有者に $ds_record_value を提供します。コンソールの [View Information to create DS record] (情報を確認して DS レコードを作成) をクリックして [DS record] (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 レコードを挿入するには、

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

          ナビゲーションペインで [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 ファイル内の UPSERTActionDELETE に変更して上記の例の CLI を再実行できます。

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

    親ゾーンが Route 53 DNS サービス上にある場合、親ゾーンの所有者は GetChange 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 TTL を長くします。

    セットアップがよろしければ、変更した TTL および SOA 内容を保存できます。Route 53 は署名済みゾーンの TTL を 1 週に制限することにご留意ください。詳細については、「Amazon Route 53 での DNSSEC 署名の設定」を参照してください。

    DS TTL を変更が可能な場合、1 時間に設定することをお勧めします。