管理VPC端點服務DNS的名稱 - Amazon Virtual Private Cloud

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

管理VPC端點服務DNS的名稱

服務供應商可以為其端點服務設定私有DNS名稱。假設服務提供者透過公有端點和端點服務提供其服務。如果服務提供者使用公有端點DNS的名稱做為端點服務的私有DNS名稱,則服務消費者可以使用相同的用戶端應用程式存取公有端點或端點服務,而無需修改。如果請求來自服務消費者 VPC,私有DNS伺服器會將DNS名稱解析為端點網路介面的 IP 地址。否則,公有DNS伺服器會將DNS名稱解析為公有端點。

您必須先執行網域擁有權驗證檢查,證明您擁有網域,才能設定端點服務的私有DNS名稱。

考量事項
  • 端點服務只能有一個私有DNS名稱。

  • 當消費者建立介面端點以連線至您的服務時,我們會建立私有託管區域,並將其與服務消費者 建立關聯VPC。我們在私有託管區域中建立CNAME記錄,將端點服務的私有DNS名稱映射至VPC端點的區域DNS名稱。當消費者傳送請求到服務的公有DNS名稱時,私有DNS伺服器會將請求解析為端點網路介面的 IP 地址。

  • 若要驗證網域,您必須具有公有主機名稱或公有DNS提供者。

  • 您可以驗證子網域的網域。例如,您可以驗證 example.com,而非 a.example.com。每個DNS標籤最多可有 63 個字元,且整個網域名稱的總長度不得超過 255 個字元。

    如果您新增其他子網域,您必須驗證子網域或是網域。例如,假設您有一個 a.example.com 及已驗證的 example.com。您現在新增 b.example.com 做為私有DNS名稱。您必須先驗證 example.comb.example.com,服務消費者才能使用該名稱。

  • Gateway Load Balancer 端點不支援私有DNS名稱。

網域所有權驗證

您的網域與您透過DNS提供者管理的一組網域名稱服務 (DNS) 記錄相關聯。TXT 記錄是一種DNS記錄類型,可提供您網域的其他資訊。由名稱和值組成。在驗證程序中,您必須將TXT記錄新增至公有網域的DNS伺服器。

當我們偵測到網域DNS設定中存在TXT記錄時,網域擁有權驗證已完成。

新增記錄後,您可以使用 Amazon VPC主控台檢查網域驗證程序的狀態。在導覽窗格中,選擇 Endpoints Services (端點服務)。選取端點服務,並檢查 Details (詳細資訊) 標籤中 Domain verification status (網域驗證狀態) 的值。如果網域驗證處於擱置狀態,請等待幾分鐘並重新整理畫面。如果需要,您可以手動啟動驗證程序。選擇動作驗證私有DNS名稱的網域擁有權

驗證狀態時,服務消費者已準備好使用私有DNS名稱。如果驗證狀態變更,新的連線請求會遭到拒絕,但現有的連線不受影響。

如果驗證狀態為 failed (失敗),請參閱 對網域驗證問題進行疑難排解

獲取名稱和值

我們會提供您在TXT記錄中使用的名稱和值。例如,資訊在 AWS Management Console中可用。選取端點服務,然後參閱端點服務 Details (詳細資訊) 標籤中的 Domain verification name (網域驗證名稱) 和 Domain verification value (網域驗證值)。您也可以使用下列 describe-vpc-endpoint-service-configurations AWS CLI 命令來擷取指定端點服務之私有DNS名稱組態的相關資訊。

aws ec2 describe-vpc-endpoint-service-configurations \ --service-ids vpce-svc-071afff70666e61e0 \ --query ServiceConfigurations[*].PrivateDnsNameConfiguration

下列為範例輸出。建立TXT記錄Name時,您將使用 Value和 。

[ { "State": "pendingVerification", "Type": "TXT", "Value": "vpce:l6p0ERxlTt45jevFwOCp", "Name": "_6e86v84tqgqubxbwii1m" } ]

例如,假設您的網域名稱為 example.com,而 ValueName 如前面的範例輸出所示。下表是TXT記錄設定的範例。

名稱 Type Value

_6e86v84tqgqubxbwii1m.example.com

TXT

vpce:l6p0ERxlTt45jevFwOCp

我們建議您使用 Name 作為記錄子網域,因為基礎網域名稱可能已在使用中。不過,如果您的DNS提供者不允許DNS記錄名稱包含底線,您可以省略 "_6e86v84tqgqubxbwii1m",並只使用TXT記錄中的 "example.com"。

在我們驗證 "_6e86v84tqgqubxbwii1m.example.com" 之後,服務消費者可以使用 "example.com" 或子網域 (例如,"service.example.com" 或 "my.service.example.com")。

將TXT記錄新增至網域的DNS伺服器

將TXT記錄新增至網域DNS伺服器的程序,取決於誰提供您的DNS服務。您的DNS提供者可能是 Amazon Route 53 或其他網域名稱註冊商。

為您的公有託管區域建立記錄。使用下列的值:

  • 針對記錄類型,選擇 TXT

  • 針對 TTL (秒),輸入 1800

  • 對於 Routing policy (路由政策),請選擇 Simple routing (簡便路由)。

  • 針對 Record name (記錄名稱),請輸入網域或子網域。

  • 針對 Value/Route traffic to (值/將流量路由到),請輸入網域驗證值。

如需詳細資訊,請參閱《Amazon Route 53 開發人員指南》中的使用主控台建立記錄

前往DNS提供者的網站並登入您的帳戶。尋找 頁面以更新網域DNS的記錄。使用我們提供的名稱和值來新增TXT記錄。DNS 記錄更新最多可能需要 48 小時才會生效,但通常效果會更快。

如需更具體的指示,請參閱DNS供應商的文件。下表提供數個常見DNS提供者的文件連結。此清單並不全面,也不是對這些公司提供的產品或服務的建議。

檢查TXT記錄是否已發佈

您可以使用下列步驟,確認您的私有DNS名稱網域擁有權驗證TXT記錄已正確發佈至您的DNS伺服器。您將執行 命令,該nslookup命令可用於 Windows 和 Linux。

您將查詢提供網域的DNS伺服器,因為這些伺服器包含您網域的最多 up-to-date資訊。您的網域資訊需要一些時間才能傳播到其他DNS伺服器。

驗證您的TXT記錄是否已發佈到您的DNS伺服器
  1. 使用以下命令來查找網域的名稱伺服器。

    nslookup -type=NS example.com

    輸出會列出提供您網域的名稱伺服器。您在下一步驟將查詢其中一個伺服器。

  2. 使用下列命令驗證TXT記錄是否正確發佈,其中 name_server是您在上一個步驟中找到的其中一個名稱伺服器。

    nslookup -type=TXT _6e86v84tqgqubxbwii1m.example.com name_server
  3. 在上一個步驟的輸出中,確認 後面的字串text =符合 TXT值。

    在我們的範例中,如果記錄已正確發佈,輸出會包括以下內容。

    _6e86v84tqgqubxbwii1m.example.com text = "vpce:l6p0ERxlTt45jevFwOCp"

對網域驗證問題進行疑難排解

如果網域驗證程序失敗,下列資訊有助於對問題進行疑難排解。

  • 檢查您的DNS提供者是否允許TXT記錄名稱中的底線。如果您的DNS提供者不允許底線,您可以從TXT記錄省略網域驗證名稱 (例如 "_6e86v84tqgqubxbwii1m")。

  • 檢查您的DNS提供者是否將網域名稱附加到TXT記錄的結尾。有些DNS供應商會自動將網域名稱附加到TXT記錄的屬性名稱。若要避免重複網域名稱,請在建立TXT記錄時,在網域名稱的結尾加上句點。這會告訴DNS提供者不需要將網域名稱附加到TXT記錄。

  • 檢查您的DNS提供者是否修改DNS了記錄值,以僅使用小寫字母。只有當驗證記錄的屬性值與我們提供的值完全相符時,我們才會驗證您的網域。如果DNS提供者將您的TXT記錄值變更為僅使用小寫字母,請聯絡他們尋求協助。

  • 您可能需要多次驗證您的網域,因為您支援多個區域或多個 AWS 帳戶。如果您的DNS提供者不允許您擁有多個具有相同屬性名稱TXT的記錄,請檢查您的DNS提供者是否允許您將多個屬性值指派給相同的TXT記錄。例如,如果您DNS的 是由 Amazon Route 53 管理,您可以使用下列程序。

    1. 在 Route 53 主控台中,選擇您在第一個區域中驗證網域時建立TXT的記錄。

    2. 針對 Value (值),移至現有屬性值的結尾,然後按 Enter 鍵。

    3. 新增其他區域的屬性值,然後儲存記錄集。

    如果您的DNS提供者不允許您將多個值指派給相同的TXT記錄,您可以使用TXT記錄的屬性名稱中的值驗證網域一次,再驗證一次,並將該值從屬性名稱中移除。不過,您只能驗證相同的網域兩次。