翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
DNSSEC 署名の有効化と信頼チェーンの確立
増分手順はホストゾーンの所有者と親ゾーンの管理者に適用されます。これは同一の当事者でもかまいません。ただし、そうでない場合、ゾーンの所有者は親ゾーンの管理者に通知して協力する必要があります。
ゾーンを署名して信頼チェーンに含めるため、この記事の手順に従うことをお勧めします。次のステップでは、DNSSEC へのオンボーディングのリスクを最小限に抑えます。
注記
始める前に、「Amazon Route 53 での DNSSEC 署名の設定」で前提条件を確認してください。
次のセクションで説明するように、DNSSEC 署名を有効にするには 3 つのステップがあります。
ステップ 1: DNSSEC 署名を有効にする準備をする
準備ステップは、ゾーンの可用性をモニタリングし、署名を有効にしてから Delegation Signer (DS) レコードを挿入するまでの待機時間を短縮することで、DNSSEC へのオンボーディングのリスクを最小限に抑えるのに役立ちます。
DNSSEC 署名を有効にする準備をするには
-
ゾーンの可用性を監視します。
ドメイン名の可用性をゾーンで監視できます。これにより、DNSSEC 署名を有効にした後にステップバックが必要になる可能性のある問題に対処できます。クエリログを使用してトラフィックが最も多いドメイン名を監視できます。クエリ ログのセットアップの詳細については、「Amazon Route 53 のモニタリング」をご参照ください。
監視はシェルスクリプトまたはサードパーティサービスを通じて実行できます。ただし、ロールバックが必要か否かを判断する唯一のシグナルとして見なしてはなりません。また、ドメインが利用できない理由で顧客からフィードバックを得る場合があります。
-
ゾーンの最大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 の変更を元に戻します。
-
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 の変更を元に戻します。
-
TTL および SOA の最小フィールド変更が有効であることを確認します。
GetChange を使用して、これまでの変更がすべての Route 53 DNS サーバーに反映されていることを確認します。
ステップ 2: DNSSEC 署名を有効にして KSK を作成する
DNSSEC 署名を有効にし、Route 53 コンソールで AWS CLI または を使用してキー署名キー (KSK) を作成できます。
カスタマーマネージド KMS キーを提供または作成する場合、いくつかの要件があります。詳細については、「DNSSEC のカスタマーマネージドキーの使用」を参照してください。
ゾーン署名を有効にしたら、次のステップ (コンソールと Word のどちらを使用したか) を完了します。 CLI
-
ゾーン署名が有効であることを確認します。
を使用した場合は AWS CLI、
EnableHostedZoneDNSSEC()
呼び出しの出力からオペレーション ID を使用して get-change または GetChange を実行し、すべての Route 53 DNS サーバーがレスポンスに署名していることを確認します (ステータス =INSYNC
)。 -
少なくとも前のゾーンの最大 TTL を待ちます。
リゾルバーがキャッシュから署名されていないレコードをすべてフラッシュするまで待ちます。これを実現するには、少なくとも前のゾーンの最大 TTL を待つ必要があります。上記の
example.com
ゾーンの場合、待機時間は 1 日です。 -
顧客問題のレポートを監視します。
ゾーン署名を有効にした後、顧客がネットワークデバイスおよびリゾルバーに関連する問題に直面し始める可能性があります。推奨される監視期間は 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 署名の信頼チェーンを確立するには
にサインイン AWS Management Console し、https://console.aws.amazon.com/route53/ で Route 53
コンソールを開きます。 -
ナビゲーションペインで、ホストゾーンを選択し、DNSSEC の信頼チェーンを確立するホストゾーンを選択します。最初に DNSSEC 署名を有効にする必要があります。
-
DNSSEC 署名タブの DNSSEC 署名 で、情報を表示 を選択して DS レコードを作成します。
注記
このセクションに DS レコードを作成するための情報を表示 が表示されない場合は、信頼チェーンを確立する前に DNSSEC 署名を有効にする必要があります。DNSSEC 署名を有効にする」を選択し、「」で説明されているステップを完了してからステップ 2: DNSSEC 署名を有効にして KSK を作成する、これらのステップに戻って信頼チェーンを確立します。
-
ドメインが登録されている場所に応じ、[信頼チェーンを確立] から、[Route 53 レジストラ]または [他のドメインレジストラ] を選択します。
-
ステップ 3 で指定された値を使用して、Route 53 の親ホストゾーンの DS レコードを作成します。ドメインが Route 53 でホストされていない場合、表示された値をドメインレジストラのウェブサイトで使用して DS レコードを作成します。
親ゾーンの信頼チェーンを確立します。
-
ドメインが Route 53 で管理されている場合、次の手順に従います。
正しい署名アルゴリズム (ECDSAP256SHA256 とタイプ 13) とダイジェストアルゴリズム (SHA-256 とタイプ 2) を設定していることを確認してください。
Route 53 がレジストラである場合、Route 53 コンソールで以下の操作を実行します:
-
[Key type] (キータイプ)、[Signing algorithm] (署名アルゴリズム)、および [Public key] (パブリックキー) の各値を書き留めます。ナビゲーションペインで [Registered Domains] をクリックします。
-
ドメインを選択し、DNSSEC ステータスの横にあるキーの管理を選択します。
-
DNSSEC キーの管理」ダイアログボックスで、ドロップダウンメニューから Route 53 レジストラの適切なキータイプとアルゴリズムを選択します。
-
Route 53 レジストラの [パブリックキー] をコピーします。DNSSEC キーの管理」ダイアログボックスで、パブリックキーボックスに値を貼り付けます。
-
[追加] を選択します。
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 を再実行できます。 -
-
ドメインレコードの TTL に基づいて、更新が伝達されるのを待ちます。
親ゾーンが Route 53 DNS サービス上にある場合、親ゾーンの所有者は GetChangeWord を通じて完全な伝播を確認できます。 API
または、親ゾーンの DS レコードを定期的に調査することが可能であり、DS レコードの挿入が完全にプロパゲートされる確率を上げるため、さらに 10 分待ちます。DS 挿入をスケジュールしているレジストラもいることにご留意ください (例えば 1 日 1 回など)。
親ゾーンに Delegation Signer (DS) レコードを導入すると、DS を取得した検証済みリゾルバーがゾーンから応答の検証を開始します。
信頼を確立する手順をスムーズに進めるため、以下の手順を実行します:
-
最大 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数を書き留めます。
-
-
NS TTL の最大数を待ちます。
DS を挿入前の段階では、リゾルバーは署名付きレスポンスを取得しますが、署名を検証しません。DS レコードが挿入されると、ゾーンの NS レコードが期限切れになるまで、リゾルバーはそのレコードを認識しません。リゾルバーが NS レコードを再フェッチすると、DS レコードも返されます。
お客様の顧客が非同期クロックのホスト内でリゾルバーを実行している場合、クロックが正しい時刻から 1 時間以内の誤差があることを確認してください。
このステップを完了すると、すべてのDNSSEC対応リゾルバーがゾーンを検証します。
-
名前解決を確認します。
ゾーンを検証するリゾルバーに問題がないことにご留意してください。顧客が問題を報告するために必要な時間も考慮してください。
最大 2 週間監視することをお勧めします。
-
(オプション) DS および NS TTLsを長くします。
設定に問題がなければ、行った TTL と SOA の変更を保存できます。Route 53 では、署名付きゾーンの TTL は 1 週間に制限されていることに注意してください。詳細については、「Amazon Route 53 での DNSSEC 署名の設定」を参照してください。
DS TTL を変更できる場合は、1 時間に設定することをお勧めします。