文档首页/ 对象存储服务 OBS/ 用户指南/ 数据安全/ 服务端加密/ 使用OBS桶密钥降低SSE-KMS成本
更新时间:2025-12-15 GMT+08:00
分享

使用OBS桶密钥降低SSE-KMS成本

当您使用SSE-KMS对海量对象进行加密时,每个对象的加密过程都需要OBS调用KMS服务来派生数据加密密钥,这可能会导致大量的请求发送到KMS,从而产生时延和大量的KMS访问流量。

为了减少对KMS的请求量,您可以配置桶或对象使用桶密钥进行SSE-KMS加密。在这种情况下,KMS会生成一个有效期较短的桶密钥,然后OBS会将桶密钥保存在OBS自己的缓存中,系统直接使用缓存中的桶密钥来派生数据加密密钥用以加解密对象,无需向KMS发送请求。通过桶密钥在OBS内部限时使用的方法可以减少与KMS的交互次数,降低了加解密操作对KMS的流量需求,从而节约成本,提高性能。加解密过程中,KMS管理主密钥和桶密钥,OBS缓存桶密钥、保存和管理数据加密密钥。

图1 桶密钥和数据加密密钥派生过程

约束限制

  • 跨区域复制暂不支持配置桶密钥。
  • 为了保护数据安全,每个请求者至少会向KMS发送请求获取一次唯一存储桶级密钥,以确保KMS云服务校验请求者是否拥有密钥的访问权限。每个IAM用户,或者IAM用户的权限变更时,OBS会将其视为不同的请求者。
  • 未开启桶密钥的对象,如果想要开启桶密钥功能,需要重新上传或复制同名对象,并在上传或复制请求中打开对象级桶密钥开关。

费用说明

如果您使用SSE-KMS加密方式,会涉及密钥管理服务KMS的计费,了解更多请参考KMS计费项

桶级和对象级桶密钥

OBS支持配置桶级和对象级桶密钥,对象可以继承桶的加密配置,也可以自行配置,具体关系详见图2。注意,表中的桶级和对象级桶密钥的开关是指OBS请求头域x-obs-server-side-encryption-bucket-key-enabled的值是true(开启)还是false(关闭)。

图2 桶级、对象级桶密钥开关的作用结果

为桶配置存储桶密钥

OBS支持通过管理控制台、API方式配置存储桶密钥,不支持通过SDK、OBS Browser+、obsutil方式配置存储桶密钥。

为对象配置存储桶密钥

OBS支持通过管理控制台、API方式配置存储桶密钥,不支持通过SDK、OBS Browser+、obsutil方式配置存储桶密钥。

相关文档