翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
増分手順はホストゾーンの所有者と親ゾーンの管理者に適用されます。これは同一の当事者でもかまいません。ただし、そうでない場合、ゾーンの所有者は親ゾーンの管理者に通知して協力する必要があります。
ゾーンを署名して信頼チェーンに含めるため、この記事の手順に従うことをお勧めします。以下の手順により、DNSSEC へのオンボーディングのリスクを最小限に抑えられます。
注記
始める前に、「Amazon Route 53 での DNSSEC 署名の設定」で前提条件を確認してください。
以下のセクションで説明する通り、DNSSEC 署名を有効にする場合、3 つの手順を実行します。
ステップ 1: DNSSEC 署名を有効化する準備
準備手順では、ゾーンの可用性を監視して署名の有効化から委任署名者 (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
SOA TTL および SOA の最小フィールドは、リゾルバーがネガティブな回答を記憶する期間を決定します。署名を有効にすると、Route 53 ネームサーバーはネガティブな回答に対して NSEC レコードを返し始めます。NSEC には、リゾルバーがネガティブな回答を合成する際に使用する可能性がある情報が含まれています。NSEC 情報により、リゾルバーが名前に対してネガティブな回答を仮定したことによってロールバックが必要な場合、リゾルバーが仮定を停止するまで SOA TTL の最大値および SOA 最小フィールドに達するまで待つのみで解決します。
ロールバック方法: SOA の変更を元に戻します。
-
TTL および SOA の最小フィールドの変更が有効であることを確認します。
GetChange を使用して、これまでの変更がすべての Route 53 DNS サーバーに反映されたことを確認します。
ステップ 2: DNSSEC 署名を有効にして KSK を作成
Route 53 コンソールで AWS CLI または を使用して、DNSSEC 署名を有効にし、キー署名キー (KSK) を作成できます。
カスタマー管理 KMS キーの指定または作成には、いくつかの要件があります。詳細については、「DNSSEC のためのカスタマー管理キーの使用」を参照してください。
既に持っているキーを使用、または以下のように hostedzone_id
、cmk_arn
、ksk_name
、unique_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 をご参照ください。
ゾーン署名を有効にした後、以下の手順を実行します (コンソールあるいは 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
(DNS 応答容量テストサーバー) をご参照ください。
-
ロールバック方法: DisableHostedZoneDNSSEC を呼び出した後、ステップ 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 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 を作成 の記載された手順を完了した後、これらの手順に戻って信頼チェーンを確立します。
-
ドメインが登録されている場所に応じ、[信頼チェーンを確立] から、[Route 53 レジストラ]または [他のドメインレジストラ] を選択します。
-
ステップ 3 で指定された値を使用して、Route 53 の親ホストゾーンの DS レコードを作成します。ドメインが Route 53 でホストされていない場合、表示された値をドメインレジストラのウェブサイトで使用して DS レコードを作成します。
親ゾーンの信頼チェーンを確立します。
-
ドメインが Route 53 で管理されている場合、次の手順に従います。
署名アルゴリズム (ECDSAP256SHA256 および type 13) とダイジェストアルゴリズム (SHA-256 およびタイプ 2) が正しく設定されたことを確認します。
Route 53 がレジストラである場合、Route 53 コンソールで以下の操作を実行します:
-
[Key type] (キータイプ)、[Signing algorithm] (署名アルゴリズム)、および [Public key] (パブリックキー) の各値を書き留めます。ナビゲーションペインで [Registered Domains] をクリックします。
-
ドメインを選択してから、[DNSSEC status] (DNSSEC のステータス) の隣にある [Manage keys] (キーの管理) を選択します。
-
[Manage DNSSEC keys] (DNSSEC キー管理) ダイアログボックス内のドロップダウンメニューから、[Route 53 registrar] (Route 53 レジストラ) の適切な [Key type] (キータイプ) と [Algorithm] (アルゴリズム) を選択します。
-
Route 53 レジストラの [パブリックキー] をコピーします。[Manage DNSSEC keys] (DNSSEC キー管理) ダイアログボックス内の [Public key] (パブリックキー) ボックスに値を貼り付けます。
-
[追加] を選択します。
Route 53 は、パブリックキーから親ゾーンに DS レコードを追加します。例えば、ドメインが
example.com
の場合、DS レコードが .com DNS ゾーンに追加されます。
-
-
ドメインが別のレジストリで管理されている場合は、「別のドメインレジストラ」セクションの手順に従います。
以下の手順をスムーズに進める場合、親ゾーンに低い 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 ファイル内の
UPSERT
のAction
をDELETE
に変更して上記の例の CLI を再実行できます。 -
-
ドメインレコードの TTL に基づいて、更新が全体に反映されるのを待ちます。
親ゾーンが Route 53 DNS サービス上にある場合、親ゾーンの所有者は GetChange 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 TTL を長くします。
セットアップがよろしければ、変更した TTL および SOA 内容を保存できます。Route 53 は署名済みゾーンの TTL を 1 週に制限することにご留意ください。詳細については、「Amazon Route 53 での DNSSEC 署名の設定」を参照してください。
DS TTL を変更が可能な場合、1 時間に設定することをお勧めします。