AWS S3对象加密类型

记录一下AWS对S3支持加密的方式和实现方法

服务端加密

使用服务器端加密保护数据 - Amazon Simple Storage Service

客户端加密

使用客户端加密保护数据 - Amazon Simple Storage Service

对比表格

加密端 支持的方法 备注
服务端 具有 Amazon S3 托管密钥的服务器端加密 (SSE-S3) 当您使用具有 Amazon S3 托管密钥的服务器端加密 (SSE-S3) 时,每个对象均使用唯一密钥加密。作为额外的保护,将使用定期轮换的根密钥加密密钥本身。Amazon S3 服务器端加密使用可用的最强数据块密码之一、256 位高级加密标准 (AES-256) 来加密您的数据。
服务端 在 AWS Key Management Service 中存储KMS密钥的服务器端加密 (SSE-KMS) AWS KMS keys 的服务器端加密 (SSE-KMS) 与 SSE-S3 类似,使用该服务具有一些另外的好处,但也要收取更多的费用。使用 KMS 密钥需要单独的权限,该密钥可进一步防止未经授权地访问 Amazon S3 中的对象。SSE-KMS 还向您提供审核跟踪,显示您的 KMS密钥的使用时间和使用者。此外,您还可以创建和管理客户托管密钥,或者使用您、服务和区域独有的 AWS 托管密钥。
服务端 具有客户提供密钥的服务器端加密 (SSE-C) 使用具有客户提供密钥的服务器端加密 (SSE-C) 时,您管理加密密钥,而 Amazon S3 管理加密(在它对磁盘进行写入时)和解密(在您访问您的对象时)。
客户端 使用 AWS KMS 中存储的 KMS 密钥
客户端 使用在应用程序中存储的密钥

思维脑图

S3 加密流程图

价格情况

加密类型 计费方式 说明
SSE-S3 不额外收费, 但是会产生标准S3请求费用 Amazon S3 价格-亚马逊云科技云存储价格-亚马逊云科技中国区域
SSE-KMS 使用不收费, 但是请求API会收费 Amazon KMS 价格_ 亚马逊云科技密钥管理服务价格-亚马逊云科技中国区域
SSE-C 不额外收费, 但是会产生标准S3请求费用 Amazon S3 价格-亚马逊云科技云存储价格-亚马逊云科技中国区域
KMS 使用不收费, 但是请求API会收费 AWS Key Management Service - AWS Key Management Service