You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解绑CloudFront分发与别名子域?解决CNAME绑定冲突

问题背景
  • 公司采用S3+CloudFront架构,离职员工曾在个人AWS账号下创建S3存储桶和CloudFront分发,并将公司子域dev.local.domain绑定到该个人账号的分发上
  • 目前公司已创建合规的新S3存储桶和CloudFront分发,但无法将dev.local.domain关联到新分发,报错:

CNAMEAlreadyExists: One of more of the CNAMEs you provided are already associated with a different resource

  • 通过AWS命令定位到冲突的分发信息:
$ aws-vault exec corp-dev -- aws cloudfront list-conflicting-aliases --alias dev.local.domain --distribution-id XYZ
{
    "ConflictingAliasesList": {
        "MaxItems": 100,
        "Quantity": 1,
        "Items": [
            {
                "Alias": "dev.local.domain",
                "DistributionId": "******ECHOHUO",
                "AccountId": "******000000"
            }
        ]
    }
}

尝试使用associate-alias命令迁移别名时,再次报错:

$ aws-vault exec corp-dev -- aws cloudfront associate-alias --target-distribution-id NEW_Distribution_id --alias dev.local.domain

An error occurred (IllegalUpdate) when calling the AssociateAlias operation: Alias move is not allowed since the source distribution is enabled.

公司拥有该域名及Route53权限,但不清楚如何将子域与旧分发解绑,想知道是否有强制解绑方法,或是否必须联系AWS支持。

解决方案

方案1:禁用旧分发后迁移别名(可访问个人账号时)

associate-alias命令要求源分发处于禁用状态才能完成别名迁移,操作步骤如下:

  1. 登录离职员工的个人AWS账号,找到CloudFront中的冲突分发******ECHOHUO
  2. 将该分发设置为已禁用:
    • 控制台操作:直接在分发详情页修改状态为禁用
    • CLI操作:
      先获取分发的ETAG值:
      aws cloudfront get-distribution --id ******ECHOHUO --query 'ETag' --output text
      
      创建包含禁用配置的JSON文件(如disabled-config.json,保留原分发其他配置,仅修改Enabled字段):
      {
        "Comment": "",
        "Enabled": false,
        // 原分发的其他配置内容
      }
      
      执行更新命令:
      aws cloudfront update-distribution --id ******ECHOHUO --if-match <获取到的ETAG值> --distribution-config file://disabled-config.json
      
  3. 等待数分钟,待CloudFront完成状态更新
  4. 重新执行associate-alias命令,即可将别名迁移到新分发:
    aws-vault exec corp-dev -- aws cloudfront associate-alias --target-distribution-id NEW_Distribution_id --alias dev.local.domain
    
  5. 迁移完成后,删除旧的CloudFront分发和S3存储桶即可

方案2:联系AWS支持(无法访问个人账号时)

如果无法获取离职员工的个人账号权限,直接联系AWS支持是最有效的解决方式,需准备以下信息:

  • 公司拥有dev.local.domain域名的所有权证明(如域名注册商后台截图、WHOIS信息截图)
  • 冲突的CloudFront分发ID******ECHOHUO及对应账号ID******000000
  • 公司新创建的CloudFront分发ID
  • 清晰说明情况:离职员工在个人账号绑定公司子域,请求协助解绑该别名

临时应急方案(可选)

在等待别名迁移期间,为避免影响业务,可临时修改Route53的DNS记录:

  • 进入Route53控制台,找到对应托管区域
  • 将dev.local.domain的CNAME记录修改为直接指向新分发的CloudFront域名(如d1234567890abc.cloudfront.net)
  • 待别名迁移完成后,再改回绑定子域的配置

内容的提问来源于stack exchange,提问作者tftd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 03:55:38