亚马逊AWS官方博客

新增服务 — 密钥存储在 AWS Key Management Service (DSSE-KMS) 中的 Amazon S3 双层服务器端加密服务

今天,我们将推出密钥存储在 AWS Key Management Service (DSSE-KMS) 中的 Amazon S3 双层服务器端加密,这是 Amazon S3 中的一个新的加密选项,用于在将对象上传到 Amazon Simple Storage Service (Amazon S3) 存储桶时对对象应用两层加密。DSSE-KMS 能满足美国国家安全局关于 FIPS 合规性的 CNSSP 15 和关于两层 CNSA 加密的静态数据功能包 (DAR CP) 5.0 版指南。通过使用 DSSE-KMS,可以满足对数据应用多层加密的监管要求。

Amazon S3 是唯一的云对象存储服务,客户可以在对象级别应用两层加密,并对两层都在使用的数据密钥进行管理。DSSE-KMS 使受高度监管的客户(例如美国国防部 (DoD) 的客户)更好地满足严格的安全标准。

通过使用 DSSE-KMS,您可以在对象的 PUT 或 COPY 请求中指定双层服务器端加密 (DSSE),也可以将 S3 存储桶配置为在默认情况下将 DSSE 应用到所有新对象。您也可以使用 IAM 和存储桶策略强制实施 DSSE-KMS。每层加密都使用一个单独的加密实现库,具有单独的数据加密密钥。DSSE-KMS 有助于保护敏感数据免受单层加密方式中低概率漏洞的影响。

DSSE-KMS 简化了对数据应用两层加密的过程,无需投资客户端加密所需的基础设施。对于具有伽罗瓦计数器模式 (AES-GCM) 算法的 256 位高级加密标准,每层加密各自采用不同的实现方式。DSSE-KMS 使用 AWS Key Management Service (AWS KMS) 生成数据密钥,您可以通过设置每个密钥的权限和指定密钥轮换计划来控制您的客户托管密钥。借助 DSSE-KMS,您可以使用 Amazon Athena、Amazon SageMaker 等 AWS 服务查询和分析您的双重加密数据。

随着这次服务的发布,Amazon S3 目前可为服务器端加密提供了四种选项:

  1. 使用 Amazon S3 托管的密钥 (SSE-S3) 进行的服务器端加密
  2. 使用 AWS KMS (SSE-KMS) 进行的服务器端加密
  3. 使用客户提供的加密密钥 (SSE-C) 进行的服务器端加密
  4. 使用密钥存储在 KMS (DSSE-KMS) 中的双层服务器端加密

我们来看看 DSSE-KMS 的实际应用。

创建 S3 存储桶并开启 DSSE-KMS
如需在 Amazon S3 控制台中创建新的存储桶,请在导航窗格中选择“存储桶”。选择“创建存储桶”,然后为存储桶选择一个独特且有意义的名称。在“默认加密”部分,选择 DSSE-KMS 作为加密选项。从可用的 AWS KMS 密钥中,选择满足需求的密钥。最后,选择“创建存储桶”来创建由 DSSE-KMS 加密设置加密的 S3 存储桶。

加密

将对象上传到启用了 DSSE-SSE 的 S3 存储桶
存储桶列表中,选择要将对象上传到的存储桶的名称。在存储桶的“对象”选项卡上,选择上传。在“文件和文件夹”下,选择“添加文件”。然后,选择要上传的文件,选择“打开”。在服务器端加密下,选择不指定加密密钥。然后选择上传

服务器端加密

将对象上传到 S3 存储桶后,我注意到上传的对象继承了存储桶的服务器端加密设置

服务器端加密设置

从 S3 存储桶下载 DSSE-KMS 加密对象
选择之前上传的对象,然后选择“下载”或从“对象操作”菜单中选择“下载为”。下载对象后,在本地将其打开,对象会自动解密,无需更改客户端应用程序。

现已推出
使用密钥存储在 AWS KMS (DSSE-KMS) 中的 Amazon S3 双层服务器端加密服务现已在所有 AWS 区域推出。您可以通过 AWS CLI 或 AWS 管理控制台来使用 DSSE-KMS。请访问 Amazon S3 用户指南了解有关 Amazon S3 上所有可用加密选项的更多信息。有关 DSSE-KMS 的定价信息,请访问 Amazon S3 定价页面存储选项卡)和 AWS KMS 定价页面

— Irshad