【发布时间】:2021-12-28 22:31:33
【问题描述】:
我有一个使用 CDK 创建的 AWS codpipeline,我想部署到另一个账户中的 codedeploy 部署组。知道如何将另一个帐户中的现有部署组导入我的堆栈吗?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation aws-cdk aws-code-deploy
我有一个使用 CDK 创建的 AWS codpipeline,我想部署到另一个账户中的 codedeploy 部署组。知道如何将另一个帐户中的现有部署组导入我的堆栈吗?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation aws-cdk aws-code-deploy
你不能那样做。 CloudFormation 是基于帐户和区域的。您不能创建一个堆栈来管理其他帐户中的资源。
【讨论】:
目前公认的答案没有错,但也只是故事的一半。
Cloudformation 本身无法管理多个帐户中的资源。这是真的。
但是,您的 CodePipeline 可以在另一个帐户中担任角色并将 Cloduformation 堆栈部署到该帐户。这是拥有 Dev 环境和 Prod 环境时的常见做法 - 您将更改 prod 帐户中任何内容的访问权限限制为 CodePipeline 可以为您承担和部署的单个角色 - 但没有用户可以。 (有关更多信息,请参阅https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create-cross-account.html)
如果你有的话。用于您的 Stack Group 的 CDK 应用程序,然后您可以重新使用它来部署到另一个帐户 - 这是被广泛接受的 CDK 的主要用例之一 - 相同基本结构的多帐户部署。
跨账户使用的任何资源都需要在 EC2 实例中拥有自己的 Lambda 或脚本,该实例承担另一个跨账户角色,使他们能够访问该资源以检索您需要的任何内容。
但是,您不能将单个云形成堆栈(或 cdk 堆栈)部署到两个帐户 - 但您可以通过单个 CodePipeline 使用多个堆栈来执行此操作
【讨论】: