将备用域名移动到其他分配 - Amazon CloudFront

将备用域名移动到其他分配

当您尝试为分配添加备用域名但备用域名已在其他分配中使用时,您会收到 CNAMEAlreadyExists 错误(您提供的一个或多个 CNAME 已与其他资源相关联)。例如,当您尝试将 www.example.com 添加到分配,但 www.example.com 已与其他分配相关联时,您会收到此错误。

在这种情况下,您需要将现有的备用域名从一个分配(源分配)移动到另一个分配(目标分配)。以下步骤概述了该过程。如需更多信息,请单击概览中每个步骤的链接。

移动备用域名
  1. 设置目标分配。此分配必须有 SSL/TLS 证书,且该证书包含您要移动的备用域名。有关更多信息,请参阅设置目标分配

  2. 查找源分配。您可以使用 AWS Command Line Interface (AWS CLI) 查找与备用域名关联的分配。有关更多信息,请参阅查找源分配

  3. 移动备用域名。执行此操作的方式取决于源分配和目标分配是否在同一 AWS 账户中。有关更多信息,请参阅移动备用域名

设置目标分配

移动备用域名之前,您必须设置目标分配,也就是您要将备用域名移动到的分配。

设置目标分配
  1. 获取包含您要移动的备用域名的 SSL/TLS 证书。如果没有,您可以从 AWS Certificate Manager (ACM) 请求一个,或从其他证书颁发机构 (CA) 获取一个并将其导入 ACM。请确保您在美国东部(弗吉尼亚州北部)(us-east-1) 区域请求或导入证书。

  2. 如果您尚未创建目标分配,请立即创建一个。将您的证书(来自上一步)与分配相关联,这是创建目标分配的一个环节。有关更多信息,请参阅创建分配

    如果您已经有目标分配,请将您的证书(来自上一步)与目标分配相关联。有关更多信息,请参阅更新分配

  3. 创建 DNS TXT 记录,将备用域名与目标分配的分配域名关联起来。创建在备用域名前面添加下划线 (_) 的 TXT 记录。以下为 DNS 中的 TXT 记录示例:

    _www.example.com TXT d111111abcdef8.cloudfront.net

    CloudFront 使用此 TXT 记录来验证您对备用域名的所有权。

查找源分配

在将备用域名从一个分配移动到另一个分配之前,您应该找到源分配(备用域名当前正在使用的分配)。获取源和目标分配的AWS账户 ID 后,您即可确定如何移动备用域名。

查找备用域名的源分配
  1. 在 AWS Command Line Interface (AWS CLI)中使用 CloudFront list-conflicting-aliases 命令,如下例所示。将 www.example.com 替换为备用域名,将 EDFDVBD6EXAMPLE 替换为 您之前设置的目标分配的 ID。使用与目标分配在同一AWS账户中的凭据运行此命令。使用此命令的前提是,您必须拥有目标分配的 cloudfront:GetDistributioncloudfront:ListConflictingAlias 权限。

    aws cloudfront list-conflicting-aliases --alias www.example.com --distribution-id EDFDVBD6EXAMPLE

    该命令的输出显示了与所提供的域名冲突或重叠的所有备用域名列表。例如:

    • 如果您向命令提供 www.example.com,则命令的输出包括 www.example.com 和重叠的通配符备用域名 (*.example.com)(如果存在)。

    • 如果您向命令提供 *.example.com,则命令的输出包括 *.example.com 和该通配符涵盖的所有备用域名(例如,www.example.com、test.example.com、dev.example.com 等)。

    对于命令输出中的每个备用域名,您可以查找与其关联的分配的 ID,以及拥有此分配的AWS账户 ID。分配和账户 ID 信息是部分隐藏的,这使您可以识别您拥有的分配和账户,并有助于保护您没有所有权的分配和账户的信息。

  2. 在命令的输出中,找到您要移动的备用域名的分配,并记下源分配的AWS账户 ID。将源分配的账户 ID 与您创建目标分配的账户 ID 进行比较,并确定这两个分配是否在同一AWS账户中。这有助于您确定如何移动备用域名。

    要移动备用域名,请参阅以下主题。

移动备用域名

请根据您的具体情况,从以下方式中选择移动备用域名的方式:

如果源分配和目标分配在同一AWS账户中

使用 AWS CLI 中的 associate-alias 命令移动备用域名。此方法适用于所有同账户内移动,包括当备用域名是顶级域(也称为根域,如 example.com)时。有关更多信息,请参阅使用 associate-alias 移动备用域名

如果源分配和目标分配在不同AWS账户中

如果您有权访问源分配,备用域名不是顶级域(也称为根域,如 example.com),并且您尚未使用与该备用域名重叠的通配符,请使用通配符移动备用域名。有关更多信息,请参阅 使用通配符移动备用域名

如果您无法访问源分配的AWS账户,则可以尝试使用 AWS CLI 中的 associate-alias 命令移动备用域名。如果源分配已禁用,则您可以移动备用域名。有关更多信息,请参阅 使用 associate-alias 移动备用域名。如果 associate-alias 命令不起作用,请联系 AWS Support。有关更多信息,请参阅 联系 AWS Support 以移动备用域名

使用 associate-alias 移动备用域名

如果源分配与目标分配在同一 AWS 账户中,或者如果源分配在不同的账户中但已被禁用,您可以使用 AWS CLI 中的 CloudFront associate-alias命令移动备用域名。

使用关联别名移动备用域名
  1. 使用 AWS CLI 运行 CloudFront associate-alias 命令,如下例所示。将 www.example.com 替换为备用域名,将 EDFDVBD6EXAMPLE 替换为目标分配 ID。使用与目标分配在同一AWS账户中的凭据运行此命令。使用此命令时,请注意以下限制:

    • 您必须拥有目标分配的 cloudfront:AssociateAliascloudfront:UpdateDistribution 权限。

    • 如果源分配和目标分配在同一AWS账户中,您必须对源分配具有 cloudfront:UpdateDistribution 权限。

    • 如果源分配和目标分配在不同AWS账户中,则必须禁用源分配。

    • 必须按照设置目标分配中所述设置目标分配。

    aws cloudfront associate-alias --alias www.example.com --target-distribution-id EDFDVBD6EXAMPLE

    此命令通过从源分配中删除备用域名并将其添加到目标分配,来更新这两个分配。

  2. 目标分配完全部署后,更新您的 DNS 配置以将备用域名的 DNS 记录指向目标分配的分配域名。

使用通配符移动备用域名

如果源分配与目标分配在不同AWS账户中,并且源分配已启用,您可以使用通配符移动备用域名。

注意

您不能使用通配符移动顶级域(例如 example.com)。如果源分配和目标分配在不同AWS账户中,要移动顶点域,请联系 AWS Support。有关更多信息,请参阅联系 AWS Support 以移动备用域名

使用通配符移动备用域名
注意

此过程涉及对分配的多次更新。在继续下一步之前,请等待每个分配完全部署完最新的更改。

  1. 更新目标分配以添加一个通配符备用域名,该域名涵盖您要移动的备用域名。例如,如果您要移动的备用域名是 www.example.com,请将备用域名 *.example.com 添加到目标分配中。为此,目标分配上的 SSL/TLS 证书必须包含通配符域名。有关更多信息,请参阅更新分配

  2. 更新备用域名的 DNS 设置以指向目标分配的域名。例如,如果您要移动的备用域名是 www.example.com,请更新 www.example.com 的 DNS 记录以将流量路由到目标分配的域名(例如 d111111abcdef8.cloudfront.net)。

    注意

    即使在您更新 DNS 设置之后,备用域名仍由源分配提供服务,因为这是当前配置备用域名的位置。

  3. 更新源分配以删除备用域名。有关更多信息,请参阅更新分配

  4. 更新目标分配以添加备用域名。有关更多信息,请参阅更新分配

  5. 使用 dig(或类似的 DNS 查询工具)验证备用域名的 DNS 记录是否解析为目标分配的域名。

  6. (可选)更新目标分配以删除通配符备用域名。

联系 AWS Support 以移动备用域名

如果源分配和目标分配在不同 AWS 账户中,并且您无权访问源分配的 AWS 账户或无法禁用源分配,您可以联系 AWS Support 来移动备用域名。

联系 AWS Support 以移动备用域名
  1. 设置目标分配,包括指向目标分配的 DNS TXT 记录。有关更多信息,请参阅设置目标分配

  2. 联系 AWS Support 以请求他们验证您是否拥有该域,然后为您将该域移动到新的 CloudFront 分配。

  3. 目标分配完全部署后,更新您的 DNS 配置以将备用域名的 DNS 记录指向目标分配的分配域名。