加密模式与传输强制

开发者的 AWS 安全实践

Rahul Singh

Technical Product Manager

两项保障,一个默认

一个应用将对象发送到 Amazon S3 存储桶。绿色括号标注"in transit"覆盖网络跳段,另一个绿色括号标注"at rest"覆盖已存对象,旁注说明除非请求另有指定,否则应用 SSE-S3。

  • 静态存储: 磁盘上的字节
  • 传输中: 网络上的字节
开发者的 AWS 安全实践

两项保障,一个默认

一个应用将对象发送到 Amazon S3 存储桶。绿色括号标注"in transit"覆盖网络跳段,另一个绿色括号标注"at rest"覆盖已存对象,旁注说明除非请求另有指定,否则应用 SSE-S3。

  • 静态存储: 磁盘上的字节
  • 传输中: 网络上的字节
  • 已默认: 新对象均为 SSE-S3
  • 仍需您定: 选择模式与持钥人,由您
开发者的 AWS 安全实践

明文止于何处

服务端

  • AWS 接收明文字节
  • S3 写入时加密

 

服务端流程。您的进程持有明文,经 TLS 线路发送,Amazon S3 在写入时加密。下方进度条在 S3 处用虚线分隔:之前标注"your bytes: readable here"为红色,之后标注"ciphertext"为绿色。

 

开发者的 AWS 安全实践

明文止于何处

服务端

  • AWS 接收明文字节
  • S3 写入时加密

客户端

  • 离开前先加密
  • AWS 仅存密文

服务端流程。您的进程持有明文,经 TLS 线路发送,Amazon S3 在写入时加密。下方进度条在 S3 处用虚线分隔:之前标注"your bytes: readable here"为红色,之后标注"ciphertext"为绿色。

客户端流程。您的进程先加密,经 TLS 线路发送密文,Amazon S3 存储接收内容。下方进度条在您的进程内用虚线分隔:之前短段标注"your bytes: readable here"为红色,其后全部标注"ciphertext"为绿色。

开发者的 AWS 安全实践

四种模式,唯一区别

同算法,四类钥主

  • 模式随 PUT 请求头传递
  • SSE-S3:AWS 持钥,无需管理
  • SSE-KMS:您持钥,记录 CloudTrail,且有附于密钥的 key policy 指定可应答者

四张卡片:SSE-S3、SSE-KMS、DSSE-KMS、SSE-C。左侧轨道自上而下从 AWS 控制到您控制,每张卡仅写出选择该模式的请求头值。

开发者的 AWS 安全实践

四种模式,唯一区别

同算法,四类钥主

  • 模式随 PUT 请求头传递
  • SSE-S3:AWS 持钥,无需管理
  • SSE-KMS:您持钥,记录 CloudTrail,且有附于密钥的 key policy 指定可应答者
  • DSSE-KMS:两层独立防护
  • SSE-C:每次请求都用您的密钥,丢失自负

四张卡片:SSE-S3、SSE-KMS、DSSE-KMS、SSE-C。左侧轨道自上而下从 AWS 控制到您控制,每张卡仅写出选择该模式的请求头值。

开发者的 AWS 安全实践

SSE-KMS 的成本顾虑

两行对比。无 Bucket Keys 时,每个对象请求都有一条从 Amazon S3 到 AWS KMS 的箭头;使用 Bucket Keys 时,仅有一条从 S3 内的桶级密钥发出的箭头。下方注明 DSSE-KMS 不支持 Bucket Keys。

  • 未启用: 每对象一次 KMS 调用
  • 启用 Bucket Keys: 复用短期密钥
  • DSSE-KMS 不支持
  • KMS 请求最多减少 99%
开发者的 AWS 安全实践

加字段,不加整表

静态加密已开启

  • 具读取权限者查询即得明文

一个含五个属性的 DynamoDB 项。两项为密文并带蓝色轨道,分区键、排序键与时间戳保持明文。下方绿色框注记整张表已静态加密。

开发者的 AWS 安全实践

加字段,不加整表

静态加密已开启

  • 具读取权限者查询即得明文

AWS Database Encryption SDK

  • 在代码中加密选定属性
  • 分区键与排序键保留明文,DynamoDB 需据此索引定位

一个含五个属性的 DynamoDB 项。两项为密文并带蓝色轨道,分区键、排序键与时间戳保持明文。下方绿色框注记整张表已静态加密。

开发者的 AWS 安全实践

TLS 提供但非必需

提供但不强制

  • S3 同时响应 HTTP 与 HTTPS

两种情形。无桶策略条件时,HTTPS 与 HTTP 客户端均可访问对象;设置拒绝条件后,HTTP 路径在红叉处被阻断。

开发者的 AWS 安全实践

TLS 提供但非必需

提供但不强制

  • S3 同时响应 HTTP 与 HTTPS

改为必需

  • 桶策略:当 aws:SecureTransport 为 false 时拒绝
  • 合规客户端无感知

两种情形。无桶策略条件时,HTTPS 与 HTTP 客户端均可访问对象;设置拒绝条件后,HTTP 路径在红叉处被阻断。

开发者的 AWS 安全实践

谁为名称背书

公网名称

  • ACM:公信、免费、自动续期

仅内网可解的名称

  • AWS Private CA:自有证书颁发机构
  • 公网不受信

两张卡片比较证书颁发者。上卡"public name"为 reports 点 example 点 com,发行者为 ACM,处处受信;下卡"internal name"为 admin 点 example 点 internal,仅在您的 VPC 内解析,发行者为 AWS Private CA。

开发者的 AWS 安全实践

私钥在您,丢了自负

由谁保管

  • ACM:AWS 代管
  • EC2 密钥对或任意 SSH 密钥:私钥只在您手上且仅此一份

两张卡片比较公私钥保管。上卡"public half"存放于 AWS 或实例;下方橙卡"private half"三行:仅一份且无备份,存 Secrets Manager 打勾,切勿放在仓库、笔记本或聊天里打叉。

开发者的 AWS 安全实践

私钥在您,丢了自负

由谁保管

  • ACM:AWS 代管
  • EC2 密钥对或任意 SSH 密钥:私钥只在您手上且仅此一份

若由您管

  • 用 Secrets Manager,勿进仓库
  • 定期更换

两张卡片比较公私钥保管。上卡"public half"存放于 AWS 或实例;下方橙卡"private half"三行:仅一份且无备份,存 Secrets Manager 打勾,切勿放在仓库、笔记本或聊天里打叉。

开发者的 AWS 安全实践

三个答案,不止一个

三张编号卡片:模式、密钥控制与传输,各展示其请求头或条件键。下方注明仅第三项不在加密设置内。

  1. 模式:对象由何种方式写入
  2. 密钥控制:谁可解密,本站或跨账号
  3. 传输:强制,还是仅提供
开发者的 AWS 安全实践

让我们一起练习吧!

开发者的 AWS 安全实践

Preparing Video For Download...