问题描述
我正在创建 AWS::Timestream::Database 服务,我想使用我们在 CloudFormation 模板外部创建的 KMS 密钥之一。
我想使用密钥的别名,但我找不到任何好的方法将密钥的引用引入模板。
我找到了一些使用 !Sub 来获取 ARN 的参考资料,但如何从那里获取 ID?
解决方法
我在我的 S3 跨账户复制 CF 模板中使用了以下代码来收集 KMS 别名。你可以试试同样的方法。
ReplicaKmsKeyID: !Join ['',['arn:aws:kms:',!Ref BucketRegion,':',!Ref AWS::AccountId,':alias/aws/s3']]
#ReplicaKmsKeyID: arn:aws:kms:us-west-2:111111111111:alias/aws/s3
,
您可以在 kms id 中使用别名,例如 arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>
AWSTemplateFormatVersion: 2010-09-09
Resources:
DB:
Type: AWS::Timestream::Database
Properties:
DatabaseName: <DB_NAME>
KmsKeyId: arn:aws:kms:<REGION>:<ACCOUNT_ID>:alias/<ALIAS>