当我们把数据搬上云端,为了保护敏感数据一定要对数据存储进行加密。而对于 S3 上的数据加密最简单莫过于启用服务端数据加密,可以是 AES-256 或 AWS-KMS。进行了服务端加密码的文件有什么不同呢?首先从 AWS S3 文件列表视图中看到的文件大小与原始文件大小是一样的,其实数据在 AWS 机房是加密存储了的,比如说直接在 AWS 服务器上拷出那些 S3 文件是不能理解的。
本文涉及的内容包括:
- 服务器端加密后的 S3 文件有何不同
- 不启用 Bucket 的默认加密如何进行服务端数据加密(含 AWS CLI 和 Java 代码操作)
- 启用及应用 Bucket 的默认加密
- 上传与下载文件的 IAM role 需要的权限
服务器端加密后的 S3 文件有何不同
首先看现象,后面才能确认我们的操作是否对数据真的进行了服务端加密。查看使用 AWS-KMS key 加密后的 S3 文件的 Overview
, 看到下面两个属性
Server-side encryption
AWS-KMS
KMS key ID
arn:aws:kms:us-east-1:123456789012:key/e4ce859b-786b-4b8e-8b73-4968adb6e4ed
没加密的话, Server-side encryption 是 None, 并且没有 KMS key ID 属性。 阅读全文 >>