amazon-web-services - AWS SAM:如何使用 SAM 创建具有现有加密密钥的 S3 存储桶
问题描述
我是 SAM(和 CloudFormation)的新手,我今天了解到,您可以在 SAM yaml 模板中添加类似这样的内容来创建一个新存储桶:
Resources:
my-great-new-bucket:
Type:AWS::S3::Bucket
SAM 是否提供了一种方法来将现有的KMS 加密密钥添加到新创建的存储桶(并启用存储桶密钥)?
使用 boto,我将执行以下操作来实现此目的:
response = client.put_bucket_encryption(Bucket= bucketName, ServerSideEncryptionConfiguration={
"Rules": [
{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": myKeyArn
},
"BucketKeyEnabled": True
}
]
})
如何将此操作转换为 SAM 模板?
解决方案
所以 S3::Bucket 不是 SAM 资源,而是普通的 CloudFormation 资源。您可以通过更改KMS-KEY-ARN
为您的密钥的密钥 ID 来实现此目的。
Resources:
EncryptedS3Bucket:
Type: 'AWS::S3::Bucket'
Properties:
BucketEncryption:
ServerSideEncryptionConfiguration:
- BucketKeyEnabled: true
ServerSideEncryptionByDefault:
SSEAlgorithm: 'aws:kms'
KMSMasterKeyID: KMS-KEY-ARN
推荐阅读
- reactjs - 在一个组件中在不同情况下执行相同的获取逻辑
- javascript - 在 React Native 中更新对象的嵌套对象内的值
- macos-catalina - Mac Catalyst 版本的工作 iOS 应用程序出现 dyld 崩溃
- sql - 将插入写入语句时查询错误
- python - 对象工厂设计用于初始化父类或子类对象
- python - 如何将二进制字符串的文字字符串表示形式转换为二进制字符串?
- c++ - 节点插件 Nan::NewBuffer 导致内存泄漏
- javascript - 复制状态(数组)并保持静态
- azure - Azure 存储帐户队列获取新消息到达(理想的逻辑应用程序)
- python - Django 将 values 或 values_list 与不相关的模型一起使用