给定定义以下内容的CloudFormation模板:
如果出于某种原因,我需要删除CloudFormation堆栈并重新部署,删除将保留KMS键和创建的别名。(这是明智的,我不想丢失所有加密的密钥)。
但这意味着当我重新部署堆栈时,它会失败,因为具有该名称的别名已经存在。
我可以删除别名通过CLI和重新部署,这将创建一个新的KMS密钥别名。
是否有一种方法可以让CloudFormation堆栈使用初始部署中的现有KMS键?
另外:我不完全清楚S3桶中的加密数据会发生什么变化,它的别名被更改了,AWS知道自动查找之前用它加密的KMS密钥,还是重新加密?
发布于 2018-10-25 11:54:52
我建议您有一个只创建KMS和输出产出的价值的堆栈。
Resources:
KmsKey:
Type: AWS::KMS::Key
Properties:
...
Outputs:
S3KmsKeyId:
Description: The KMS Key used
Value: !Ref KmsKey
Export:
Name: S3KmsKeyId然后,您可以有第二个堆栈,它只创建S3桶,在其中您可以创建参考出口价值
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
...
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
KMSMasterKeyID: !ImportValue S3KmsKeyId
SSEAlgorithm: aws:kms发布于 2019-02-08 23:15:50
我能够使用一个堆栈创建一个加密的S3桶:
Resources:
S3EncryptionKey:
Type: AWS::KMS::Key
...
EncrypedS3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
KMSMasterKeyID:
Ref: S3EncryptionKey
SSEAlgorithm: aws:kmshttps://stackoverflow.com/questions/52987597
复制相似问题