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 发送给用户
相关推荐
无人生还别怕1 分钟前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
分布式存储与RustFS41 分钟前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
zhengfei6111 小时前
CVE-2026-98432:Linux 内核 TCP 释放后重用漏洞,CVSS 9.8 但补丁覆盖极不均衡
linux·运维·tcp/ip
逐流人1 小时前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
xyzzklk1 小时前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
叼烟扛炮3 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
飞飞传输11 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全
Ruiery11 小时前
Linux 6.6内核内存管理深度解析(十五):CMA 连续内存分配器
linux·运维·服务器
测试界的小码农12 小时前
【Linux 命令实战(01):认识 Linux 终端,从零掌握第一个命令】
linux·运维·服务器
布裘13 小时前
【银河麒麟】重启后时区丢失?排查发现 localtime 被业务程序替换成硬链接
linux·运维·网络