amazon-web-services - CloudFormation KMS 加密问题

标签 amazon-web-services amazon-s3 aws-cloudformation amazon-kms

给定一个定义了以下内容的 CloudFormation 模板:

  • KMS key
  • KMS key 别名
  • 一个 S3 存储桶

如果由于某种原因我需要删除 CloudFormation 堆栈并重新部署,删除操作将保留创建的 KMS key 和别名。 (这是明智的,我不想丢失我的 key ,所有东西都是用它加密的)。

但这意味着当我重新部署堆栈时,它会失败,因为具有该名称的别名已存在。

我可以通过 CLI 删除别名并重新部署,这将为新的 KMS key 创建别名。

CloudFormation 堆栈是否可以使用初始部署中的现有 KMS key ?

另外:我不是 100% 清楚 S3 存储桶中的加密数据在别名更改后会发生什么情况,AWS 是否知道自动查找之前加密的 KMS key 或重新加密发生?

最佳答案

我建议您使用一个仅创建 KMS 和 export its value on the outputs 的堆栈:

Resources:
  KmsKey:
    Type: AWS::KMS::Key
    Properties: 
      ...

Outputs:
  S3KmsKeyId:
    Description: The KMS Key used
    Value: !Ref KmsKey
    Export:
      Name: S3KmsKeyId

然后您可以拥有第二个堆栈,仅创建 S3 存储桶,您可以在其中 reference the Exported Value :

Resources:
  S3Bucket:
      Type: AWS::S3::Bucket
      Properties: 
        ...
        BucketEncryption:
          ServerSideEncryptionConfiguration: 
          - ServerSideEncryptionByDefault: 
              KMSMasterKeyID: !ImportValue S3KmsKeyId
              SSEAlgorithm: aws:kms

关于amazon-web-services - CloudFormation KMS 加密问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52987597/

相关文章:

shell - 使用 IAM 用户凭证通过curl 下载 Amazon S3 文件

frontend - amazon lex-发送凭证来查询数据库

aws-cloudformation - cloudformation 模板中没有输出部分

ssl - 无法让 https 在 aws 弹性负载均衡器上使用自签名证书

php - 适用于 PHP 的 AWS Polly 文本转语音服务

hadoop - 根据上次修改将文件从 s3 下载到 Hive 中?

amazon-s3 - 如何将 s3 存储桶链接到 sagemaker 笔记本

python-3.x - libffi-d78936b1.so.6.0.4 : cannot open shared object file Error on AWS Lambda function

linux - 如何将文件(从 aws s3 存储桶复制)附加到 Linux 中的另一个文件,

amazon-web-services - 如何确保 AWS Cloudformation 更新期间资源删除/创建顺序