AWS S3 设置 Bucket Policy 强制加密

  • 时间:
  • 来源:网络

    云计算

AWS S3在上传和下载的时候,默认会使用TLS的方式进行加密和解密。这个具体是在哪里配置的呢?

最简单的方式是在S3里面,当我们创建一个新的Bucket的时候,我们可以在console上选择默认加密,如下面所示

默认可以选择SSE-S3或者SSE-KMS服务加密。后者安全性更高 不过会有一些额外费用。

如果在创建的时候没有进行选择,我们还可以通过设置Bucket Policy来进行加密。在AWS里面,所有的服务都是API,因此所有的设定都可以转换成头文件里面对应的参数。比如说,我们可以通过禁止头文件里面没有加密参数的请求进行上传操作。

具体操作如下

在对应的bucket里面, 进入Permission - Bucket Policy - 最下面选择 Policy Generator

基本设置

Type of Policy:S3 Bucket Policy
Effect:Deny
Principal:

AWS Service: Amazon S3
Actions: PutObject
ARN: arn:aws:s3:::XXXXXX
Condition:stringnotequals
key:s3-x-amz-server-side-encryption
value:aws:kms

生成器会自动生成下列配置文档 拷贝到对应的editor里面。 咦 居然报错!

解决方法很简单,需要在bucket后面添加一个通配符。这个应该是aws的一个bug

点击保存就行了。

现在来测试一下。

首先上传一个文件,选择不加密

结果失败

重新上传一次,这次选择 AWS KMS master-key

上传成功!

新网虚拟主机