AWS S3 设置 Bucket Policy 强制加密
AWS S3在上传和下载的时候,默认会使用TLS的方式进行加密和解密。这个具体是在哪里配置的呢?最简单的方式是在S3里面,当我们创建一个新的Bucket的时候,我们可以在console上选择默认加密,如下面所示
https://s1.运维网.com/images/blog/201812/27/f077877642e44097cf25542470d04b9f.png
默认可以选择SSE-S3或者SSE-KMS服务加密。后者安全性更高 不过会有一些额外费用。
https://s1.运维网.com/images/blog/201812/27/5101cd0262382321b721255741a017b2.png
如果在创建的时候没有进行选择,我们还可以通过设置Bucket Policy来进行加密。在AWS里面,所有的服务都是API,因此所有的设定都可以转换成头文件里面对应的参数。比如说,我们可以通过禁止头文件里面没有加密参数的请求进行上传操作。
具体操作如下
在对应的bucket里面, 进入Permission - Bucket Policy - 最下面选择 Policy Generator
https://s1.运维网.com/images/blog/201812/27/5884120d4a408879edadfa4ff5173e71.png
基本设置
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
https://s1.运维网.com/images/blog/201812/27/06fad60fe143eb8f1b83892c2b6a3ced.png
生成器会自动生成下列配置文档 拷贝到对应的editor里面。 咦 居然报错!
https://s1.运维网.com/images/blog/201812/27/610a8bb25a7daaadef57c6e4f51b7e6c.png
解决方法很简单,需要在bucket后面添加一个通配符。这个应该是aws的一个bug
https://s1.运维网.com/images/blog/201812/27/3fd42a68569ffa904d0645eda3100c88.png
点击保存就行了。
现在来测试一下。
首先上传一个文件,选择不加密
https://s1.运维网.com/images/blog/201812/27/40722f454b7e2ba1d4f78d36693253f6.png
结果失败
https://s1.运维网.com/images/blog/201812/27/cb82ebc4d78f79504af993672e8da211.png
重新上传一次,这次选择 AWS KMS master-key
https://s1.运维网.com/images/blog/201812/27/f254ccbd138536a8fa10bf47fdda7a40.png
上传成功!
https://s1.运维网.com/images/blog/201812/27/207303730903bc350b24ee9a226eb76a.png
页:
[1]