如何描述 cloudformation 跨账户堆栈信息/名称/详细信息

问题描述

我们有 2 个 aws 帐户。现在我们尝试将我们的生产环境资源迁移到另一个 aws 帐户。我们在账户 A 中设置了管道,它将在账户 B 中部署资源。 我们的 AWS 基础设施堆栈已在账户 B 中可用,并且在账户 A 的 cmd 下运行时,我们收到以下错误:-

cmd:- aws cloudformation describe-stacks --stack-name prod-gateway

错误:- 调用DescribeStacks 操作时发生错误(ValidationError):ID 为prod-gateway 的堆栈不存在

这是一个有效的错误,因为我们正在尝试从账户 A 中获取账户 B 的堆栈信息,而该堆栈在 acc A 中不存在。

那么问题是我可以从账户A描述账户B的堆栈信息吗?是否有任何跨帐户 cmd 可以实现此目的?

解决方法

那么问题是我可以从账户 A 描述账户 B 的堆栈信息吗?是否有任何跨帐户 cmd 可以实现此目的?

您使用必须设置的 cross-account roles 角色。简而言之:

  • 在 accB 中,您可以创建一个角色来描述其堆栈。角色的推力关系允许 accA 承担该角色。
  • 在 accA 中,您使用 assume-role 来承担来自 accB 的角色。这将为您提供新的临时 AWS 凭证。 accB 中的 IAM 角色/用户必须有权代入该角色。
  • 在 accA 中,您可以使用临时凭据对 accB 执行 aws cloudformation describe-stacks