如何将现有资源从不同的 AWS 账户导入 AWS CDK

How to import an existing resource into AWS CDK from a different AWS account

我有一个使用 CDK 创建的 AWS codpipeline,我想部署到另一个账户中的 codedeploy 部署组。知道如何将另一个帐户中的现有部署组导入我的堆栈吗?

你不能那样做。 CloudFormation 基于帐户和区域。您不能创建管理其他帐户资源的堆栈。

目前接受的答案并没有错,但也只说对了一半

Cloudformation 本身无法管理多个帐户中的资源。这是真的。

但是,您的 CodePipeline 可以在另一个帐户中担任角色,并将 Cloduformation Stack 部署到该帐户。在拥有开发环境和生产环境时,这是一种常见的做法 - 您将更改生产帐户中任何内容的访问权限限制为 CodePipeline 可以为您承担和部署的单个角色 - 但没有用户可以。 (有关更多信息,请参阅 https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create-cross-account.html

所以如果你有。 Stack Group 的 CDK 应用程序,然后您可以重复使用它来部署到其他帐户 - 这已被广泛接受并且是 CDK 的主要用例之一 - 相同基本结构的多帐户部署。

跨账户使用的任何资源都需要在 EC2 实例中拥有自己的 Lambda 或脚本,该实例承担另一个跨账户角色,使他们能够访问该资源以检索您需要的任何内容。

但是,您不能使用单个云形成堆栈(或 cdk 堆栈)部署到两个帐户 - 但您可以通过单个 CodePipeline 使用多个堆栈来做到这一点