部署到多个帐户时如何使用 aws cdk 中现有的 kms 密钥和子网

时间:2021-02-17 09:07:19

标签: aws-cdk

我有一个 aws cdk 项目,该项目创建基于现有 kms 密钥和现有子网的堆栈。

我需要用于 IAM 策略的 subnet_id 和 kms 密钥 arn。

由于我没有找到在运行时找出 kms 密钥 arn 和子网 ID 的方法,我首先将它们硬编码到代码中。

但现在我想将堆栈部署到不同的帐户中(当然,对于哪个 kms 密钥 arn 和子网 ID 是不同的)。

当我只使用 Cloudformation 而没有 aws cdk 时,我会使用 cloudformation 模板的 Mapping 部分将帐户 ID 映射到所需信息:

Mappings: 
  KMSKeyArn: 
    <account-id-1>: 
      ARN: <kms-key1-arn>
    <account-id-2>: 
      ARN: <kms-key2-arn>

使用 AWS CDK 执行此操作的好方法是什么? 我应该使用 CfnMapping 吗?

或者我可以在 CDK 执行时以某种方式知道帐户 ID?

这里有没有更好的方法?

1 个答案:

答案 0 :(得分:0)

与 aws-cli 类似,cdk 通过环境检测其帐户和区域。见https://yshen4.github.io/infrastructure/AWS/CDK_context.html