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 用一個存放在 AWS KMS(Key Management Service,金鑰管理服務)中的金鑰為你的託管區域簽章。開啟簽章會發布公鑰(一條 DNSKEY)並生成一條 DS 記錄。
- 接著,你的註冊商——你為網域續費的那家公司——必須把那條 DS 記錄發布到上層區域(例如
.com),讓網際網路的其餘部分信任這些簽章。
如果你的網域是透過 Route 53(Amazon Registrar)註冊的,註冊商這一步仍然必需,但可在 AWS 主控台內完成。如果你的註冊商是另一家公司,你則需手動把 DS 記錄複製過去。
真正的風險——請謹慎操作
設定錯誤時,DNSSEC 可能讓你的整個網域下線。導致這種情況的兩種方式:
- 註冊商處的 DS 記錄與 Route 53 實際簽章所用的金鑰不匹配。
- 在沒有先於註冊商處移除 DS 記錄的情況下,就關閉簽章、刪除 KMS 金鑰或把 DNS 遷離 Route 53——殘留的 DS 記錄會繼續索要早已不存在的簽章,導致查詢失敗。
請嚴格按下面的順序操作。而且如果你要把 DNS 從 Route 53 遷走,請先在註冊商處移除 DS 記錄並關閉簽章,再遷移。
先確認 Route 53 在為你解析 DNS
這只有在 Route 53 負責回應你網域的 DNS 時才有效。確認你網域的**網域伺服器(nameservers)指向你託管區域(hosted zone)**所列的四個 Route 53 網域伺服器。打開 Route 53 主控台,進入 Hosted zones,打開你的網域,記下 NS 記錄的值——你註冊商的網域伺服器設定必須與這些一致。如果你的網域伺服器指向別處,請到真正負責你 DNS 的服務商那裡啟用 DNSSEC。
Route 53 上的操作步驟
- 登入 AWS 主控台,打開 Route 53。
- 進入 Hosted zones,打開你網域的託管區域。
- 打開 DNSSEC signing 標籤頁,選擇 Enable DNSSEC signing。
- 對於金鑰簽章金鑰(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 起個名稱。
- 確認並啟用簽章(enable signing)。Route 53 現在會為託管區域簽章。
- 仍在 DNSSEC signing 標籤頁,找到 DS record / Establish a chain of trust。Route 53 會顯示你需要的值,包括 Key Tag、Signing algorithm、Digest algorithm 和 Digest(通常還有一條現成的 DS 記錄行)。
- 現在前往你的註冊商新增 DS 記錄:
- 如果網域在 Route 53(Amazon Registrar)註冊: 主控台可以在網域設定下引導你完成——或者把這些值複製到該網域的 DNSSEC 區域。
- 如果你的註冊商是另一家公司: 打開它的 DNSSEC / DS 記錄區域,把第 6 步的值原樣填入——Key Tag、Algorithm(通常為
13)、Digest Type(通常為2)和 Digest。
- 在註冊商處儲存。一旦 DS 記錄被上層區域接受,信任鏈即告完成。
Route 53 上人們常踩的坑
- KMS 金鑰必須在
us-east-1。 Route 53 DNSSEC 不會接受來自其他區域的 KSK 金鑰——這是最先把人絆倒的地方。 - 使用正確的金鑰類型。 它必須是非對稱、簽章驗證(sign-and-verify)、ECC_NIST_P256 的 KMS 金鑰。對稱或規格不對的金鑰無法用作 KSK。
- 是兩個系統,不是一個。 僅在 Route 53 裡啟用簽章本身什麼也不做——DS 記錄還必須送達註冊商。人們在第 5 步之後就停下,然後納悶為什麼它始終不通過驗證。
- 原樣複製 digest。 Digest 裡哪怕錯一個字元,註冊商的 DS 記錄就會與 Route 53 的簽章金鑰不匹配——而這正是導致網域下線的那種設定錯誤。請貼上,絕不要手敲。
- 簽章啟用期間不要刪除 KMS 金鑰。 而且 Route 53 仍在簽章時,絕不要移除註冊商處的 DS 記錄。
- 遷移 DNS 前按正確順序關閉。 要遷走:先移除註冊商處的 DS 記錄,等它清除完畢,再在 Route 53 裡關閉簽章——不要反著來。
- 給它一點時間。 DNSSEC 變更完全傳播並通過驗證需要幾分鐘到一天不等。
驗證是否生效
當 Route 53 中簽章已啟用、且註冊商處 DS 記錄已就位後,執行本站的免費檢測。它會用淺顯易懂的語言告訴你 DNSSEC 是否已正確發布並對你的網域受信。
完成了? 免費檢查您的網域 以確認設置已生效——並查看您在全部 34 項檢查中的完整評級。