AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何解决在为 CloudFront 分配设置 CNAME 别名时出现的 CNAMEAlreadyExists 错误?
在为 Amazon CloudFront 分配设置规范名称记录 (CNAME) 别名时,我收到“CNAMEAlreadyExists”错误。
简短描述
您不能对多个 CloudFront 分配使用相同的 CNAME 别名。当要添加的 CNAME 别名已经与另一个 CloudFront 分配关联时,会收到以下错误:
"One or more of the CNAMEs you provided are already associated with a different resource.(服务: AmazonCloudFront;状态代码: 409; Error Code: CNAMEAlreadyExists; Request ID: a123456b-c78d-90e1-23f4-gh5i67890jkl*"
如果有权访问源和目标分配,请手动从现有 CloudFront 分配中删除 CNAME 关联。然后,将 CNAME 与新的 CloudFront 分配关联。
**注意:**要手动关联 CNAME,可能需要等到现有分配的状态为 Deployed(已部署)。
要获取有关冲突的 CNAME 别名的分配和 AWS 账户 ID 的部分信息,请运行 AWS 命令行界面 (AWS CLI) 命令 list-conflicting-aliases。然后,运行 associate-alias 命令,以将 CNAME 从现有分配(源分配)移至新分配(目标分配)。
根据您的场景使用以下解决方法之一:
- 对于同一账户中的源分配和目标分配,请参阅“移动 CNAME”部分。
- 对于跨账户源分配和目标分配,请参阅“停用具有冲突 CNAME 的源分配”部分。
- 如果无法停用源分配,请参阅“使用通配符移动备用域名”部分。
**注意:**不能使用通配符来移动顶点域 (example.com)。要在源分配和目标分配位于不同账户时移动顶点域,请参阅联系支持以移动备用域名。
解决方法
移动 CNAME
**注意:**如果您在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
必须同时拥有对源分配和目标分配的访问权限才能移动 CNAME。
要移动 CNAME,请完成以下步骤:
-
在发出 API 请求的用户或角色的 AWS Identity and Access Management (IAM) 策略中,添加以下资源级权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudFrontCnameSwapSameAcc", "Effect": "Allow", "Action": [ "cloudfront:GetDistribution", "cloudfront:ListConflictingAliases", "cloudfront:AssociateAlias", "cloudfront:UpdateDistribution" ], "Resource": [ "arn:aws:cloudfront::SourceAcccount:distribution/SourceDistroID", "arn:aws:cloudfront::TargetAccount:distribution/TargetDistroID" ] } ] }**注意:**IAM 用户或角色必须在源分配和目标分配中拥有上述权限。在上述策略中,请将 SourceAcccount 替换为源分配的账号,将 SourceDistroID 替换为源分配的 ID。此外,请将 TargetAccount 替换为目标分配的账号,将 TargetDistroID 替换为目标分配的 ID。
-
运行 list-conflicting-aliases 命令以查找具有冲突 CNAME 的分配:
aws cloudfront list-conflicting-aliases --distribution-id YourDistributionID --alias YourCNAME**注意:**请将 YourDistributionID 替换为您的分配 ID,将 YourCNAME 替换为冲突的 CNAME 别名。
-
为 CNAME 创建一个 DNS TXT 记录,该记录可解析为目标分配的规范名称,以验证所有权。TXT 记录必须在 CNAME、顶点或通配符前面包含下划线:
_.example.com. 900 IN TXT "dexample123456.cloudfront.net"_cname.example.com. 900 IN TXT "dexample123456.cloudfront.net" _*.example.com. 900 IN TXT "dexample123456.cloudfront.net"**注意:**要验证域的所有权,您必须对 YourDistributionID 拥有读取访问权限。您还必须拥有与 CloudFront 分配关联的 SSL/TLS 证书,以保护冲突的 CNAME。
-
验证目标分配是否具有有效的 SSL 证书。
**注意:**主题名称或主题备用名称必须与 CNAME 别名匹配或重叠。最佳做法是拥有由 AWS Certificate Manager 或 Mozilla 的 CA 证书列表中列出的受信任证书颁发机构 (CA) 颁发的有效证书。有关详细信息,请参阅 Mozilla 网站上的 Certificate Authorities(证书颁发机构)。 -
从拥有目标分配的账户运行 associate-alias 命令:
aws cloudfront associate-alias --target-distribution-id YourTargeDistributiontID --alias your_cname.example.com**注意:**请将 YourTargeDistributiontID 替换为您的目标分配的 ID,将 your_cname.example.com 替换为您的域。
停用具有冲突 CNAME 的源分配
对于位于不同账户中的源分配和目标分配,请关闭与冲突域关联的源分配。然后,按照“移动 CNAME”部分中的步骤进行操作。
要关闭与冲突域关联的源分配,请完成以下步骤:
- 打开 CloudFront 控制台。
- 在导航窗格中,选择 Distributions(分配)。
- 选择源分配,然后选择 Disable(禁用)。
如果无权访问包含源分配的账户,或者无法停用源分配,请联系 AWS Support。
使用通配符移动备用域名
如果源分配和目标分配位于不同账户中,但您无法停用源分配,请使用通配符移动 CNAME。
在以下过程中,请等待每个分配完全部署更新,然后再继续下一步。
要移动备用域名,请完成以下步骤:
-
更新目标分配,以便为要移动的备用域名添加通配符 CNAME。例如,如果域为 www.example.com,请在目标分配中添加通配符备用域名 *.example.com。
**注意:**必须在目标分配中拥有用于保护通配符域名的 SSL/TLS 证书。 -
更新 CNAME 的 DNS 记录,以将流量路由到目标分配的规范名称:
www.example.com. 86400 IN CNAME "dexample123456.cloudfront.net"**注意:**由于备用域名仍与源分配相关联,因此源分配仍会收到使用备用域名的请求。仅当从源分配中删除备用域名后,目标分配才会接收请求。
-
更新源分配以删除备用域名。
**注意:**在更新过程中,实时流量不会发生中断。由于请求的域名与您添加到目标分配的通配符域匹配,因此实时流量会使用目标分配设置。 -
要添加打算移动的备用域名,请更新目标分配。
-
要验证 CNAME 的 DNS 记录,请使用 dig 或类似 DNS 查询工具:
dig CNAME www.example.com +shortnslookup example.com -
(可选)要删除通配符备用域名,请更新目标分配。
- 语言
- 中文 (简体)
