升级AWS AFT前咨询:如何降级或回滚已升级的AWS AFT版本
AWS Control Tower AFT 降级/回滚操作流程
前置准备(升级前必须完成,否则无法安全回滚)
- 备份当前Terraform状态:执行
terraform state pull > aft-pre-upgrade-state.tfstate,将状态文件保存到安全位置 - 记录当前AFT模块版本:查看
terraform.lock.hcl文件中aws-ia/control_tower_account_factory模块的版本号,或执行terraform show | grep -A 5 "module.aft"提取版本信息 - 备份自定义配置:复制AFT的账号自定义脚本、Hook配置、Provisioning框架等自定义文件(比如
aft-customizations/目录下的所有内容)
降级操作步骤
锁定AFT模块到旧版本
编辑Terraform配置文件(通常是main.tf),将AFT模块的source字段指定为之前记录的旧版本标签。例如:module "aft" { source = "aws-ia/control_tower_account_factory/aws" version = "v1.4.0" # 替换为你要回滚的旧版本号 # 其他配置参数保持不变 }重新初始化Terraform依赖
执行terraform init,拉取指定的旧版本AFT模块,替代当前的新版本。验证回滚变更计划
执行terraform plan,仔细检查输出:- 确认变更仅涉及AFT模块版本回滚,无意外的资源销毁或修改
- 如果出现不可逆的资源变更提示,需评估是否要继续(部分大版本升级可能存在不可逆操作)
执行回滚
确认计划无误后,执行terraform apply,按提示确认变更。
回滚后验证
- 登录AWS Control Tower控制台,检查Account Factory的版本是否恢复到目标旧版本
- 测试核心功能:发起一个账号创建/更新请求,验证自定义配置、Hook逻辑正常执行
- 核对Terraform状态:执行
terraform state list,确认资源结构与升级前一致
关键注意事项
- 并非所有AFT版本都支持降级:部分大版本升级会引入不可逆的资源变更(如组织单元结构、IAM角色权限模型),升级前务必查看对应版本的Release Notes,确认降级兼容性
- 自定义配置需同步回滚:如果升级时修改了自定义配置以适配新版本,降级时需将配置恢复为旧版本兼容的格式
- 状态文件兜底:如果回滚过程中出现异常,可通过
terraform state push aft-pre-upgrade-state.tfstate恢复到升级前的状态
内容的提问来源于stack exchange,提问作者9o_g0
相关产品推荐
相关产品推荐

