如何在自身AWS账户中查询由StackSet创建的CloudFormation堆栈的源账户ID?
如何在自身AWS账户中查找StackSet部署堆栈的源账户ID
是的,你完全可以仅通过自身账户内的数据找到源StackSet所属的账户ID,AWS会自动为StackSet创建的堆栈保留这些关联元数据,只是需要找对地方。以下是两种常用方法:
方法1:通过AWS控制台查看
- 登录你的AWS账户,进入CloudFormation控制台。
- 在堆栈列表中找到那个来自StackSet的堆栈,点击进入详情页。
- 切换到Stack info(堆栈信息)标签页,向下滚动找到Stack set ARN字段。
- ARN的格式为
arn:aws:cloudformation:<区域>:<源账户ID>:stackset/<stack-set-name>:<唯一ID>,其中<源账户ID>就是你要找的监管账户ID。
方法2:通过AWS CLI查询
如果你习惯用命令行,可以执行以下步骤:
- 先从堆栈名称中提取StackSet的基础名称(比如你的堆栈名是
StackSet-Custom-CoE-Scanning-CodeAgent-b4707a5d-fa91-4aab-8a4f-41cc6014385d,对应的StackSet名称通常是Custom-CoE-Scanning-CodeAgent,也可以直接用完整堆栈名尝试,CLI会自动匹配关联的StackSet)。 - 执行以下命令(替换
<你的堆栈名>、<你的账户ID>和<你的区域>):
aws cloudformation describe-stack-instances --stack-set-name <你的堆栈名> --stack-instance-account <你的账户ID> --stack-instance-region <你的区域>
- 返回的JSON结果中,
StackSetId字段的ARN包含了源账户ID,格式和控制台里的一致,直接从ARN中提取即可。
补充说明
你提到在模板描述、资源或参数中找不到这些信息是正常的——这些元数据属于CloudFormation的堆栈管理数据,不会嵌入到模板内容里,而是存储在AWS的堆栈元数据中。只要这个堆栈是通过StackSet部署的,就一定会保留这些关联信息。
内容的提问来源于stack exchange,提问作者Shawn
相关产品推荐
相关产品推荐

