Defaults.Exposed

Defaults.Exposed › 設置 › DNSSEC

如何在 AWS Route 53 上設定 DNSSEC

在 Route 53 中用 KMS 金鑰啟用 DNSSEC 簽章,並在註冊商處新增 DS 記錄,讓任何人都無法偽造你的 DNS 應答。

這對你的業務意味著什麼

當有人訪問你的網站或給你傳送郵件時,他們的電腦會先向 DNS 系統詢問正確的地址。這些應答通常未經簽章傳輸,因此能夠篡改查詢的攻擊者可以悄悄把你的訪客重新導向到假冒網站,或把你的郵件改道到他自己的伺服器上——而地址列裡始終顯示著你真實的網域。

DNSSEC 能防止這一點。它用密碼學方式為你的 DNS 應答簽章,於是任何查詢你的人都能證明應答確實來自你、且在途中未被改動。說得直白一點:它能擋住網域劫持和快取投毒——這些正是把你自己的網域變成對付客戶的武器的攻擊。作為一項功能它本身免費(簽章金鑰會用到一個小型 AWS KMS 金鑰,會產生少量月度費用),並且是你能開啟的最強保護之一。

DNSSEC 在 Route 53 上的工作原理

Route 53 把這項工作做了一種值得在開始前理解清楚的拆分:

如果你的網域是透過 Route 53(Amazon Registrar)註冊的,註冊商這一步仍然必需,但可在 AWS 主控台內完成。如果你的註冊商是另一家公司,你則需手動把 DS 記錄複製過去。

真正的風險——請謹慎操作

設定錯誤時,DNSSEC 可能讓你的整個網域下線。導致這種情況的兩種方式:

請嚴格按下面的順序操作。而且如果你要把 DNS 從 Route 53 遷走,請先在註冊商處移除 DS 記錄並關閉簽章,再遷移。

先確認 Route 53 在為你解析 DNS

這只有在 Route 53 負責回應你網域的 DNS 時才有效。確認你網域的**網域伺服器(nameservers)指向你託管區域(hosted zone)**所列的四個 Route 53 網域伺服器。打開 Route 53 主控台,進入 Hosted zones,打開你的網域,記下 NS 記錄的值——你註冊商的網域伺服器設定必須與這些一致。如果你的網域伺服器指向別處,請到真正負責你 DNS 的服務商那裡啟用 DNSSEC。

Route 53 上的操作步驟

  1. 登入 AWS 主控台,打開 Route 53
  2. 進入 Hosted zones,打開你網域的託管區域。
  3. 打開 DNSSEC signing 標籤頁,選擇 Enable DNSSEC signing
  4. 對於金鑰簽章金鑰(key-signing key,KSK),你必須提供一個客戶託管的 KMS 金鑰
    • 選擇 Create customer managed key(或選一個已有的合格金鑰)。
    • 該金鑰必須是用途為 Sign and verify 的**非對稱(asymmetric)**金鑰,使用 ECC_NIST_P256 規格,並且必須位於 US East (N. Virginia) us-east-1 區域——Route 53 DNSSEC 要求金鑰在該區域。
    • 給這個 KSK 起個名稱。
  5. 確認並啟用簽章(enable signing)。Route 53 現在會為託管區域簽章。
  6. 仍在 DNSSEC signing 標籤頁,找到 DS record / Establish a chain of trust。Route 53 會顯示你需要的值,包括 Key TagSigning algorithmDigest algorithmDigest(通常還有一條現成的 DS 記錄行)。
  7. 現在前往你的註冊商新增 DS 記錄:
    • 如果網域在 Route 53(Amazon Registrar)註冊: 主控台可以在網域設定下引導你完成——或者把這些值複製到該網域的 DNSSEC 區域。
    • 如果你的註冊商是另一家公司: 打開它的 DNSSEC / DS 記錄區域,把第 6 步的值原樣填入——Key TagAlgorithm(通常為 13)、Digest Type(通常為 2)和 Digest
  8. 在註冊商處儲存。一旦 DS 記錄被上層區域接受,信任鏈即告完成。

Route 53 上人們常踩的坑

驗證是否生效

當 Route 53 中簽章已啟用、且註冊商處 DS 記錄已就位後,執行本站的免費檢測。它會用淺顯易懂的語言告訴你 DNSSEC 是否已正確發布並對你的網域受信。

完成了? 免費檢查您的網域 以確認設置已生效——並查看您在全部 34 項檢查中的完整評級。