我有一个 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?
这里有没有更好的方法?
答案 0 :(得分:0)
与 aws-cli 类似,cdk 通过环境检测其帐户和区域。见https://yshen4.github.io/infrastructure/AWS/CDK_context.html