停用 DNSSEC 簽署 - Amazon Route 53

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

停用 DNSSEC 簽署

在 Route 53 中停用 DNSSEC 簽署的步驟會根據您託管區域所屬的信任鏈而有所不同。

例如,您的託管區域可能有一個具有委派簽署人 (DS) 記錄的父區域,其做為信任鏈的一部分。您的託管區域本身也可能是啟用 DNSSEC 簽署之子區域的父區域,這是信任鏈的另一個部分。請先調查並確定託管區域的完整信任鏈,然後再採取步驟停用 DNSSEC 簽署。

當您停用簽署時,必須小心復原啟用 DNSSEC 簽署之託管區域的信任鏈。若要從信任鏈中移除託管區域,您可以移除包含此託管區域之信任鏈的所有 DS 記錄。這表示您必須依序執行下列作業:

  1. 針對屬於信任鏈一部分的子區域,移除此託管區域擁有的任何 DS 記錄。

  2. 移除父區域的 DS 記錄。如果您擁有信任島 (父區域中沒有 DS 記錄,且此區域中沒有子區域的 DS 記錄),則可以略過此步驟。

  3. 如果您無法移除 DS 記錄,則為了從信任鏈中移除區域,請從父區域移除 NS 記錄。如需詳細資訊,請參閱 新增或變更網域的名稱伺服器和黏附記錄

以下遞增步驟讓您能監控個別步驟的有效性,以免您的區域出現 DNS 可用性問題。

停用 DNSSEC 簽署
  1. 監控區域可用性。

    您可以監控該區域在您網域名稱中的可用性。此可協助您處理在啟用 DNSSEC 簽署後可能需要倒回步驟的任何問題。您可以藉由使用查詢日誌記錄,監控具有大部分流量的網域名稱。如需設定查詢日誌記錄的詳細資訊,請參閱 監控 Amazon Route 53

    可以透過 Shell 指令碼或透過付費服務進行監控。但是,其不應是判斷是否需要回復的唯一信號。您也可能會因為網域名稱不可用,而得到來自客戶的反饋。

  2. 查找目前 DS TTL。

    您可以藉由執行以下 Unix 命令來查找 DS TTL:

    dig -t DS example.com example.com

  3. 查找最大 NS TTL。

    有兩組與您的區域相關聯的 NS 記錄:

    • 委派 NS 記錄 — 這是父區域所持有的您區域的 NS 記錄。您可以藉由執行以下 Unix 命令來查找此記錄:

      首先,找到父區域的 NS(如果您的區域是 example.com,則父區域是 com):

      dig -t NS com

      選擇其中一個 NS 記錄,然後執行以下操作:

      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。

  4. 移除父區域的 DS 記錄。

    請聯絡父區域擁有者以移除 DS 記錄。

    回復:重新插入 DS 記錄,確認 DS 插入已生效,並等待最大 NS (而不是 DS) TTL 的時間,然後所有解析程式將會再次開始驗證。

  5. 確認 DS 移除已生效。

    如果父區域位於 Route 53 DNS 服務上,父區域擁有者可以透過 GetChangeAPI 確認完整傳播。

    否則,您可以定期探測 DS 記錄的父區域,之後再等待 10 分鐘,以提高 DS 記錄移除已完全傳播的概率。請注意,有些註冊商已有 DS 移除排程,例如,每天一次。

  6. 等待 DS TTL 的時間。

    等到所有解析器都已使其快取中的 DS 記錄過期。

  7. 停用 DNSSEC 簽署並停止金鑰簽署金鑰 (KSK)。

    CLI

    呼叫 DisableHostedZoneDNSSEC 和 APIDeactivateKeySigningKey

    例如:

    aws --region us-east-1 route53 disable-hosted-zone-dnssec \ --hosted-zone-id $hostedzone_id aws --region us-east-1 route53 deactivate-key-signing-key \ --hosted-zone-id $hostedzone_id --name $ksk_name
    Console

    停用 DNSSEC 簽署

    1. 登入 AWS Management Console 並開啟路線 53 主控台,網址為 https://console.aws.amazon.com/route53/

    2. 在導覽窗格中,選擇 Hosted zones (託管區域),然後選擇您要停用 DNSSEC 簽署的託管區域。

    3. DNSSEC signing (DNSSEC 簽署) 標籤上,選擇 Disable DNSSEC signing (停用 DNSSEC 簽署)

    4. Disable DNSSEC signing (停用 DNSSEC 簽署) 頁面上,根據您要停用 DNSSEC 簽署之區域的案例,選擇下列選項之一。

      • 僅限父區域 — 此區域具有包含 DS 記錄的父區域。在此案例中,您必須移除父區域的 DS 記錄。

      • 僅限子區域 — 此區域具有一或多個子區域之信任鏈的 DS 記錄。在此案例中,您必須移除區域的 DS 記錄。

      • 父區域和子區域 — 此區域同時具有一或多個子區域之信任鏈的 DS 記錄包含 DS 記錄的父區域。對於此案例,請按順序執行下列動作:

        1. 移除區域的 DS 記錄。

        2. 移除父區域的 DS 記錄。

        如果您有信任島,則可以略過此步驟。

    5. 決定您在步驟 4 中移除的每個 DS 記錄的 TTL 是多少,並確定最長的 TTL 期間已過期。

    6. 選取核取方塊,確認您已按順序執行這些步驟。

    7. 在欄位中鍵入 disable (停用),如圖所示,然後選擇 Disable (停用)

    若要停止金鑰簽署金鑰 (KSK)

    1. 登入 AWS Management Console 並開啟路線 53 主控台,網址為 https://console.aws.amazon.com/route53/

    2. 在導覽窗格中,選擇 Hosted zones (託管區域),然後選擇您要停止的金鑰簽署金鑰 (KSK)。

    3. Key-signing keys (KSKs) (金鑰簽署金鑰 (KSK)) 部分中,選擇要停止的 KSK,然後在 Actions (動作) 之下,選擇 Edit KSK (編輯 KSK),將 KSK status (KSK 狀態) 設為 Inactive (非作用中),然後選擇 Save KSK (儲存 KSK)。

    復原:呼叫ActivateKeySigningKeyEnableHostedZoneDNSSEC API

    例如:

    aws --region us-east-1 route53 activate-key-signing-key \ --hosted-zone-id $hostedzone_id --name $ksk_name aws --region us-east-1 route53 enable-hosted-zone-dnssec \ --hosted-zone-id $hostedzone_id
  8. 確認停用區域簽署已生效。

    使用來執行EnableHostedZoneDNSSEC()呼叫的識別碼,GetChange以確定所有 Route 53 DNS 伺服器都已停止簽署回應 (狀態 =INSYNC)。

  9. 請觀察名稱解析。

    您應該觀察到,沒有會導致解析器驗證您區域的問題。允許 1 到 2 週以將客戶向您報告問題所需要的時間一併納入考慮。

  10. (選用) 清除。

    如果您不重新啟用簽署,您可以透過清理 KSK DeleteKeySigningKey並刪除對應的客戶管理金鑰以節省成本。