gpt4 book ai didi

amazon-cloudfront - CNAMEAlreadyExists : pointing subdomain to distribution in new account

转载 作者:行者123 更新时间:2023-12-02 00:28:47 28 4
gpt4 key购买 nike

我正在尝试将一个子域指向一个新的发行版。我有两个帐户:legacynew

legacy 帐户具有以下资源:

  • Route53 托管区域 foo.com,其中:
    • CNAME a.foo.com -> xyz.cloudfront.net
  • 使用域名 xyz.cloudfront.net 的 Cloudfront 分发:
    • 备用域名 (CNAME) a.foo.com
    • a.foo.com 的证书

帐户具有这些资源:

  • 使用域名 qrs.cloudfront.net 的 CloudFront 分发

我希望最终设置为 a.foo.com CNAME 到 qrs.cloudfront.net。 (我不明白为什么 CloudFront 发行版需要知道它的 CNAME 是什么,这可能是我不理解下面错误的部分原因。)

所以我正在关注 these official docs .我正在尝试通过将 *.foo.com 设置为新 CloudFront 分发版上的备用域名来执行第 3 步。

但是我得到以下错误:

com.amazonaws.services.cloudfront.model.CNAMEAlreadyExistsException: One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists;)

最佳答案

您遵循的说明用于将子域迁移到同一帐户内的不同分布

You cannot add an alternate domain name to a CloudFront distribution if the alternate domain name already exists in another CloudFront distribution, even if your AWS account owns the other distribution.

However, you can add a wildcard alternate domain name, such as *.example.com, that includes (that overlaps with) a non-wildcard alternate domain name, such as www.example.com. Overlapping domain names can be in the same distribution or in separate distributions as long as both distributions were created by using the same AWS account. (emphasis added)

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-wildcard

不可能在多个帐户之间存在通配符歧义,而您尝试做的就是设置这样的条件。它不受支持,因为它是一个安全漏洞。

I don't understand why the Cloudfront distribution needs to know what things CNAME to it, which is maybe part of the reason I'm not understanding the error below.

HTTP 和 DNS 的交互方式使得目标服务器不知道将浏览器引导至其连接的服务器地址的 DNS 解析路径。当使用 HTTPS 时,服务器只能通过 HTTP Host header 和 SNI 字段的值来识别浏览器请求的站点 -- dzczcexample.cloudfront.net中间主机名在此过程中丢失。备用域名配置设置(不幸且不准确地也称为 CNAME,因为遗留原因)是 CloudFront——一个庞大的全局分布式系统——用来确定哪个特定的分配应该处理请求,所以备用域名可以仅针对所有 CloudFront 中的一个分配设置为 foo.example.com

如上所述,*.example.com 只能在与 foo.example.com 相同的帐户内的 CloudFront 分配上设置,因为允许以其他方式创建域劫持漏洞。

解决方法有点微妙,但可以做到。

  • 设置新的 CloudFront 分配,不设置备用域名,并等待它转换为已部署状态。
  • 更改 DNS 以指向为新分发分配的主机名。这不会像您假设的那样:由于上面提到的 Host header /SNI 映射,流量实际上仍将由旧分发处理......但是在继续之前需要更改此设置。
  • 从旧分配的备用域名设置中删除主机名并保存更改。
  • 将主机名添加到新分配的备用域名设置中并保存更改。您应该会在短时间内收到错误,之后更改将被接受,流量将由新分配提供服务。

您需要设置两个测试分布和一个虚拟子域(可能完全在不同的域中)并完成这些步骤以熟悉该过程。当我之前完成这个过程时,由此产生的中断是短暂的,因为您不是在创建一个新的分布(这需要一些时间),而是简单地更改一个稳定分布的属性,然后再更改另一个。

关于amazon-cloudfront - CNAMEAlreadyExists : pointing subdomain to distribution in new account,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52769331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com