AWS 中 S3 的 server-side encryption 解释与说明

Amazon S3 的服务器端加密(Server-Side Encryption, SSE) 是 AWS 提供的一项核心安全机制,用于自动加密对象在持久化存储时的数据(即"静态数据加密")。启用 SSE 后,S3 会在将对象写入磁盘前对其进行加密,并在授权用户或应用程序请求访问时自动解密,整个过程对用户透明。

Amazon S3 支持三种主要的 SSE 加密方式:

  • SSE-S3:Amazon S3 全权管理加密密钥,管理所有的加密和解密过程
  • SSE-KMS:AWS Key Management Service (KMS) 管理加密密钥,可以设置使用权限,审计密钥使用情况
  • SSE-C:客户自己提供并管理加密密钥,每次请求必须提供密钥(通过 HTTPS 头部),S3 仅用于加密/解密操作

S3 的服务器端加密(SSE)过程:

  • 上传时(加密):当上传的数据到达 AWS S3 服务器后,S3 会在数据写入磁盘存储之前使用相应的密钥对其进行加密,数据以加密形式存储在 S3 的物理存储设备上
  • 下载时(解密): S3 从存储中读取加密数据后,会使用相应的密钥在服务器端即时解密,然后将解密后的明文数据通过 HTTPS/TLS 传输回客户端

结论: S3 保证的是数据在 AWS 存储介质上是加密的,但它在传输给授权用户时会自动解密。

DEK (Data Encryption Key) :DEK 是实际用于加密和解密对象数据(即上传的文件内容)的密钥

上传 (加密) 过程:

  1. AWS KMS 随机生成一个一次性的对称 DEK
  2. S3 使用这个 DEK 快速地对上传的对象明文数据进行加密,生成密文
  3. S3 再使用 KMS Key (CMK) 对这个 DEK 本身进行加密,生成一个加密的 DEK
  4. S3 将对象密文和加密的 DEK 一起存储在 S3 上

下载 (解密) 过程:

  1. 用户请求下载对象
  2. S3 提取加密的 DEK,并发送给 KMS
  3. KMS 使用 KMS Key (CMK) 对加密的 DEK 进行解密,将明文 DEK 返回给 S3
  4. S3 使用这个明文 DEK 快速解密对象密文,并将明文数据通过 HTTPS 发送给用户
相关推荐
qwy7152292581633 小时前
1-Docker Engine 安装前置环境配置
运维·docker·容器
菜菜艾4 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
重生的黑客4 小时前
Linux开发工具:条件编译、动静态库与 make/makefile 入门
linux·运维·服务器
minji...5 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
.柒宇.5 小时前
nginx入门教程
运维·nginx
航Hang*6 小时前
VMware vSphere 云平台运维与管理基础——第2章(扩展):VMware ESXi 5.5 安装、配置与运维
运维·服务器·github·系统安全·虚拟化
SPC的存折6 小时前
MySQL 8组复制完全指南
linux·运维·服务器·数据库·mysql
运维行者_6 小时前
OpManager MSP NetFlow Analyzer集成解决方案,应对多客户端网络流量监控挑战
大数据·运维·服务器·网络·数据库·自动化·运维开发
sszdzq6 小时前
docker 安装 doris
运维·docker·容器
dashizhi20157 小时前
共享文件禁止拖动本地磁盘、共享文件禁止另存为、禁止打印共享文件、禁止复制共享文件的方法
运维·服务器·网络·安全·电脑