CloudFormation 模板设置 S3 存储桶默认加密 [重复]

Posted

技术标签:

【中文标题】CloudFormation 模板设置 S3 存储桶默认加密 [重复]【英文标题】:CloudFormation template to set S3 bucket default encryption [duplicate] 【发布时间】:2018-04-22 19:35:48 【问题描述】:

S3 现在支持在单个对象 PUT 请求不包含特定加密标头时默认应用加密。

如何在 CloudFormation 模板期间将其设置为存储桶创建的一部分?我为此找到了API call,但如果它可以作为 CloudFormation 中的属性而不是单独的步骤提供,那就太好了。

到目前为止,我看到的唯一选项是

在创建存储桶后进行单独的 API/客户端调用 使用旧的存储桶策略方式拒绝未加密的请求,可以通过 CloudFormation S3::BucketPolicy 资源提供

【问题讨论】:

我敢打赌 CloudFormation 很快就会添加这个新功能。 @wrschneider 将您提到的 S3::BucketPolicy 添加到创建存储桶的 cloudformation 模板有什么问题?您是否有不想使用这种方法的原因? 因为存储桶策略不加密任何内容 - 单个请求仍然必须指定加密。它只是拒绝未指定加密的 PUT 请求。 @wrschneider 啊哈。我误解了你的问题。您希望将默认加密应用于存储桶并通过 CF 定义它,而不是强制客户端应用加密。 【参考方案1】:

显然从上周五到今天之间的某个时间,他们终于在 CloudFormation 的 S3 存储桶中添加了 BucketEncryption 属性,允许您启用此默认加密。

【讨论】:

【参考方案2】:

jarmod 是对的,Cloudformation 在实施新功能方面通常落后。

同时,您可以使用 lambda 函数来响应 CreateBucket 事件对存储桶执行 put_bucket_encryption (boto3)。

这将使用您建议的第一个选项,但您不需要记住进行单独的 api 调用。

【讨论】:

lambda 的问题是 Lambda 上的 botocore 版本还不支持 put_bucket_encryption 调用。 这是对的,但是你可以用函数打包新的botocore版本

以上是关于CloudFormation 模板设置 S3 存储桶默认加密 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Cloudformation 模板在 S3 事件上触发 Lambda

如何使用 Cloud Formation 模板在 S3 存储桶上设置 SSE-S3 或 SSE-KMS 加密?

AWS Cloudformation 模板 - 在 S3 存储桶中设置区域

使用 cloudformation 为 S3 存储桶启用 Lambda 函数

适用于 S3 事件的 Cloudformation SQS 策略

使用 CloudFormation 在 S3 存储桶中创建 Lambda 通知