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

如何将CloudFormation StackSet迁移至其他AWS账户?

AWS CloudFormation StackSet跨账户迁移方案(保留已部署资源)

前置检查

  • 确认账户A、账户B、目标部署账户1的IAM权限配置正常:账户B需具备StackSet管理权限,且对账户1的CloudFormation部署权限已完成配置
  • 备份账户A中目标StackSet的所有配置,包括CloudFormation模板、参数值、标签、部署配置、权限模型,确保和账户1中已部署的资源配置完全一致
  • 确认所有待迁移StackSet的资源保留策略已设置为Retain

迁移步骤

  • 步骤1:导出账户A中StackSet及对应实例的完整配置,命令示例:
# 导出StackSet核心配置
aws cloudformation describe-stack-set --stack-set-name <你的StackSet名称> --query 'StackSet' --profile 账户A的配置名

# 导出账户1对应的Stack实例配置
aws cloudformation describe-stack-instance --stack-set-name <你的StackSet名称> --stack-instance-account <账户1的账号ID> --stack-instance-region <部署区域> --profile 账户A的配置名
  • 步骤2:在账户A中移除账户1对应的Stack实例,必须指定保留资源参数,仅解除账户A的StackSet对实例的管理关系,不会删除账户1的任何资源:
aws cloudformation delete-stack-instances --stack-set-name <你的StackSet名称> --accounts <账户1的账号ID> --regions <部署区域> --retain-stacks --profile 账户A的配置名

注意:操作前务必再次确认--retain-stacks参数已添加,避免误删资源

  • 步骤3:在账户B中创建和原StackSet配置100%一致的新StackSet,模板、参数、标签、权限模型、部署选项必须完全匹配,避免后续导入出现配置偏移
  • 步骤4:在账户B的新StackSet中导入账户1的现有Stack作为实例,仅建立管理关联,不会触发重新部署,命令示例:
aws cloudformation import-stacks-to-stack-set --stack-set-name <新StackSet名称> --stack-ids "arn:aws:cloudformation:<部署区域>:<账户1的账号ID>:stack/<原Stack实例对应的本地Stack名称>/<Stack ID>" --profile 账户B的配置名

Stack的ARN可在账户1的CloudFormation控制台查询,或通过账户1的配置执行aws cloudformation describe-stacks获取

  • 步骤5:迁移完成后对新StackSet执行配置漂移检测,确认导入的实例和StackSet配置完全匹配,后续即可正常通过账户B的StackSet管理账户1的资源

注意事项

  • 如果原StackSet使用组织服务托管权限,需要先确保账户B已被配置为组织的CloudFormation StackSet管理员账号,或拥有对应组织层级的部署权限
  • 迁移完成前不要修改账户1中任何现有资源的配置,避免配置不匹配导致导入失败
  • 若涉及多区域部署,需要按区域逐个执行Stack实例的移除和导入操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:45:06