【问题标题】:Finding AWS KMS ID by alias in CloudFormation在 CloudFormation 中通过别名查找 AWS KMS ID
【发布时间】:2021-05-24 07:46:35
【问题描述】:

我正在创建 AWS::Timestream::Database 服务,我想使用在 CloudFormation 模板外部创建的 KMS 密钥之一。

我想使用密钥的别名,但是我找不到任何好的方法将密钥的引用获取到模板中。

我找到了一些使用 !Sub 来获取 ARN 的参考,但是如何从那里获取 ID?

【问题讨论】:

  • “外部配置”是什么意思?您还可以展示示例模板来演示您想要做什么吗?
  • 将短语更改为 created,因为我真的不知道使用了哪些工具。
  • 不清楚你的意思?创建在哪里?不同的堆栈、帐户、区域?您想如何在未显示的当前模板中使用它。

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

我在我的 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

【讨论】:

  • 谢谢,按预期工作。我收到验证错误,但仍然有效。资源 BSTimestreamDatabase 的资源模板验证失败,因为模板具有无效属性。请参阅资源文档以修复模板。资源 BSTimestreamDatabase 的属性验证失败,消息为:#: extraneous key [KmsKeyID] is not allowed
【解决方案2】:

您可以在您的 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>

【讨论】:

    猜你喜欢
    • 2020-01-15
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 2017-03-22
    • 1970-01-01
    • 2020-04-22
    相关资源
    最近更新 更多