【AWS】什么是Amazon S3 SSE-S3(Server-side encryption with S3-managed keys)
【AWS】什么是Amazon S3 SSE-S3(Server-side encryption with S3-managed keys)
Amazon S3 SSE-S3 是 Amazon Simple Storage Service (Amazon S3) 提供的一种服务器端加密选项,它使用 Amazon S3 托管式密钥来加密您的数据。
您可以将 Amazon S3 SSE-S3 想象成一个**“由 AWS 自动为您上锁的云存储保险箱”**。
当您使用 SSE-S3 时,Amazon S3 会在数据写入磁盘时自动对其进行加密,并在您访问数据时自动对其进行解密,而整个密钥管理过程都由 AWS 负责。
Amazon S3 SSE-S3 的核心功能和优势
SSE-S3 旨在为 S3 中的数据提供简单、默认且无需额外操作的静态数据加密。
- 自动加密和解密:当您将对象上传到 S3 时,Amazon S3 会在数据写入磁盘之前自动对其进行加密。当您检索对象时,Amazon S3 会在数据返回给您之前自动对其进行解密。整个过程对用户透明,无需您进行任何额外的编码或配置。
- AWS 托管密钥:密钥管理由 AWS 负责: Amazon S3 会使用不重复的密钥加密每个对象。它会使用定期轮换的主密钥对这些对象密钥进行加密,提供额外的安全层。您无需担心密钥的创建、存储、保护或轮换。AWS 会为您处理所有这些复杂的密钥管理任务。
- 使用行业标准加密算法:Amazon S3 服务器端加密使用 256 位高级加密标准 (AES-GCM) 来加密所有上传的对象。这是一种强大且广泛认可的加密算法。
- 默认加密:**自 2023 年 1 月 5 日起,所有上传到 Amazon S3 存储桶的新对象都会默认使用 SSE-S3 进行自动加密。**这意味着即使您不指定任何加密选项,您的新上传对象也会在静态时自动加密。这一默认设置无需额外费用,也不会影响性能。
- 成本效益:使用 SSE-S3 进行服务器端加密不收取额外费用。您只需支付标准的 Amazon S3 存储和请求费用。
- 合规性支持:对于要求所有对象在静态时加密的组织,SSE-S3 有助于满足其加密合规性需求,而无需任何其他工具或客户端配置更改。
Amazon S3 SSE-S3 的工作原理
- 上传对象:当您向 S3 存储桶发送 PUT 请求以上传对象时,您可以选择在请求中包含 x-amz-server-side-encryption 标头,并将其值设置为 AES256,以明确指定使用 SSE-S3。或者,由于默认加密的启用,即使您不指定此标头,新上传的对象也会自动使用 SSE-S3 加密。
- S3 加密数据:在数据写入 S3 存储之前,Amazon S3 服务会使用一个唯一的加密密钥对您的对象进行加密。这个唯一的对象密钥本身会使用一个定期轮换的根密钥进行加密。
- S3 存储加密数据:加密后的数据被存储在 S3 存储桶中。
- 下载对象:当您发送 GET 请求以检索对象时,Amazon S3 会在数据返回给您之前自动使用相应的密钥对其进行解密。
- 用户接收解密数据:您接收到的是原始的、未加密的数据。整个加密和解密过程对应用程序和用户是透明的。
重要提示: 服务器端加密只加密对象数据,不加密对象元数据。
Amazon S3 SSE-S3 的典型用例
- 满足基本加密合规性要求: 对于需要确保所有静态数据都经过加密的组织,SSE-S3 提供了一个简单且自动化的解决方案,无需额外配置。
- 默认数据保护: 作为 S3 存储桶的默认加密层,确保即使没有明确设置,所有新上传的数据也能获得基本的静态加密保护。
- 简化开发: 开发人员无需在应用程序层面处理加密和解密逻辑或密钥管理,可以专注于核心业务逻辑。
- 通用数据存储: 适用于各种需要静态数据加密的通用数据存储场景,如日志文件、备份、文档、图片等。
总结来说,Amazon S3 SSE-S3 是一种简单、便捷且经济高效的服务器端加密方式,它利用 AWS 托管的密钥自动加密和解密您的 S3 对象,是保护 S3 中静态数据的默认且推荐的入门级解决方案。
参考文章
Amazon S3 のサーバーサイド暗号 (encryption at rest)
https://zenn.dev/howtelevision/articles/549fd992ed02144g5
关注
收藏
赞
踩