更新时间:2025-08-07 GMT+08:00
分享

服务端加密概述

如果您的业务对数据存储的安全性和合规性有较高要求,可使用OBS提供的服务端加密功能,对上传到OBS存储的数据进行加密保护。服务器端加密将对存储在OBS中的静态数据进行加密,即存储介质中存的是数据密文,防止存储介质(如硬盘等)被物理窃取或未授权访问时的数据泄露。在访问对象时,由OBS服务端对文件进行解密,然后返回解密后的数据。

OBS支持SSE-KMS、SSE-OBS、SSE-C三种加密方式:

表1 OBS的3种服务端加密方式

对比维度

SSE-KMS

(KMS 托管密钥的服务器端加密)

SSE-OBS

OBS 托管密钥的服务器端加密

SSE-C

用户提供密钥的服务器端加密

使用场景

密钥由经过安全认证的第三方硬件安全模块(HSM)产生,对密钥的关键操作都会进行访问控制及日志跟踪,适用于对合规性、安全性要求较高的场景。

加解密时不需要与KMS交互,访问时延更低,性能较SSE-KMS更好,适用于仅需要基础的加密能力的场景,以及批量加密的场景。

适用于需要用户保存和管理密钥的场景。

密钥管理

KMS服务生成和保管密钥,OBS使用密钥加密对象。

OBS服务生成和保管密钥,并使用密钥加密对象。

用户生成和保管密钥,OBS使用密钥加密对象。

数据加密算法

AES256、SM4

AES256

AES256

支持设置加密范围

桶级、对象级

桶级、对象级

对象级

详细介绍

详见SSE-KMS加密

详见SSE-OBS加密

详见SSE-C加密

  • SSE-KMS支持区域以控制台实际上线区域为准。如果您在使用SSE-KMS时选择SM4加密算法,该算法仅支持华北-乌兰察布一区域。
  • SSE-OBS中国站已全网上线。
  • SSE-C以API接口实际上线区域为准。

约束限制

  • 一个对象每次上传,只支持一种服务端加密方式。对象上传后,对象的加密配置不可修改。
  • 当桶或者桶内对象开启了SSE-KMS服务端加密功能,需要使用IAM为请求者配置kms:cmk:get、kms:cmk:list、kms:cmk:create、kms:dek:create、kms:dek:crypto权限,才能上传下载对象。
  • 桶加密开关关闭后,访问加密对象必须使用HTTPS协议。
  • 使用中的密钥不可以删除,如果删除将导致加密对象不能下载。

桶级和对象级服务端加密

下表为桶级和对象级服务端加密的介绍和对比:

表2 桶级和对象级服务端加密对比

对比项

桶级服务端加密

对象级服务端加密

使用场景

如果您想要开启后所有对象上传时强制加密,可开启桶级的服务端加密。

如果您只想对部分对象进行加密,或者每次上传对象时都根据业务需要选择加密方式和密钥,可使用对象级服务端加密。

支持的加密方式

SSE-KMS、SSE-OBS

SSE-KMS、SSE-OBS、SSE-C

支持设置的时间

随时支持修改

上传对象时配置,上传后不支持修改

两者之间的相互影响

  • 桶未开启加密时,对象不强制加密,可以单独配置加密。
  • 桶开启加密时,OBS仅会对开启桶服务端加密之后上传的对象进行加密,不会改变开启前已有对象的加密状态。桶的加密配置会成为对象默认的加密配置,但对象仍可自定义加密配置。
  • 桶更改加密配置时,仅影响更改后上传对象的默认配置,不会改变更改前已有对象的加密配置。
  • 桶关闭加密时,不会影响桶中已有对象的加密状态,但后续上传对象不再进行强制加密,如有需要可在上传对象时进行单独加密。

相关文档

  • 使用云审计服务(Cloud Trace Service,以下简称CTS)可以跟踪桶的加密配置操作,包括setBucketEncryption(设置桶服务端加密配置)、deleteBucketEncryption(删除桶服务端加密配置)。了解更多请参见使用CTS审计OBS操作事件
  • 使桶日志功能,OBS会自动将桶的加密配置操作记录在日志中,包括REST.PUT.ENCRYPTION(设置桶的加密配置)、REST.GET.ENCRYPTION(获取桶的加密配置)、REST.DELETE.ENCRYPTION(删除桶的加密配置),并将生成的日志文件写入指定桶。了解更多请参见使用桶日志记录OBS日志信息

相关文档