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 发送给用户
相关推荐
Yana.nice2 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
2601_960567965 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
吳所畏惧5 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
HiDev_6 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling7 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
爱写代码的森7 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客7 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
久曲健的测试窝7 小时前
智能座舱自动化测试落地方案:数字仿真搭配实车实测,解决用例运维与场景失真难题
运维
AOwhisky8 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
重生的黑客8 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice