防止 Route 53 中悬挂委派记录 - Amazon Route 53
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

防止 Route 53 中悬挂委派记录

使用 Route 53,客户可以创建托管区(比如 example.com)来托管其 DNS 记录。每个托管区均附带一个“委托集”,此集内含有四个名称服务器,客户可以借此服务器在父域中配置 NS 记录。这些 NS 记录可称为“委托 NS 记录”或“委托记录”。

为了使 example.com Route 53 托管区成为权威区域,example.com 域的合法所有者需要通过域注册商在其“.com”父域中配置委托记录。如果客户无法访问在父域中配置的四个名称服务器,例如由于关联的托管区被删除,则可能会带来攻击者可利用的风险。这称为“悬挂委托记录”风险。

在托管区遭到删除的情况下,Route 53 可防止出现悬挂委托记录的风险。删除后,如果使用相同的域名创建新的托管区,Route 53 会查看指向已删除托管区的委托记录是否仍存在于父域中。如果存在,Route 53 会阻止分配任何重叠的名称服务器。这是以下示例中的场景 1。

但是,还存在 Route 53 无法防范的其他悬挂委托记录风险,如以下示例中的场景 2 和 3 所述。为了保护自己免受这些更广泛的风险,请确保父 NS 记录与为 Route 53 托管区的委托集相匹配。您可以通过 Route 53 控制台或 Amazon CLI 找到托管区的委托集。有关更多信息,请参阅 列出记录get-hosted-zone

此外,为 Route 53 托管区启用 DNSSEC 签名可以在上述最佳实践之外提供另一层保护。DNSSEC 会验证 DNS 答案是否来自权威来源,从而有效防止此种风险。有关更多信息,请参阅在 Amazon Route 53 中配置DNSSEC登录

示例

在以下示例中,我们假设您拥有一个域 example.com 及其子域 child.example.com。我们将解释在各种情况下如何创建悬挂委托记录、Route 53 如何保护域免遭滥用,以及如何有效降低与悬挂委托记录相关的风险。

方案 1:

您可以使用四个名称服务器 <ns1>、<ns2>、<ns3> 和 <ns4> 创建一个托管区 child.example.com。您在托管区 example.com 中正确设置了委托,并使用四个名称服务器 <ns1>、<ns2>、<ns3> 和 <ns4> 为 child.example.com 创建委托 NS 记录。当删除 child.example.com 托管区而未移除 example.com 中的委托 NS 记录时,Route 53 会阻止将 <ns1>、<ns2>、<ns3> 和 <ns4> 分配给具有相同域名的新创建托管区,从而防止 child.example.com 出现悬挂委托记录的风险。

方案 2:

与场景 1 类似,但这次删除了子托管区和托管区 example.com 中的委托 NS 记录。但是,您可以重新添加委托 NS 记录 <ns1>、<ns2>、<ns3> 和 <ns4> 而不创建子托管区。在这里,<ns1>、<ns2>、<ns3> 和 <ns4> 是悬挂委托记录,因为 Route 53 移除了阻止分配 <ns1>、<ns2>、<ns3> 和 <ns4> 的法定保留,现在允许新创建的托管区使用上述名称服务器。为了降低风险,请从委托记录中删除 <ns1>、<ns2>、<ns3> 和 <ns4>,并且仅在创建了子托管区后才将其重新添加。

场景 3:

在此场景中,您将创建一个 Route 53 可重复使用的委托集,其中含有 <ns1>、<ns2>、<ns3> 和 <ns4> 名称服务器。然后,将域 example.com 委托给父域 .com 中的这些名称服务器。但是,您尚未在可重用的委托集中为 example.com 创建托管区。此处的 <ns1>、<ns2>、<ns3> 和 <ns4> 为悬挂委托记录。为了降低风险,请使用带有 <ns1>、<ns2>、<ns3> 和 <ns4> 名称服务器的可重复使用委托集创建托管区。