luoson1 发表于 2019-2-22 11:37:28

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]
查看完整版本: AWS S3 设置 Bucket Policy 强制加密