更新时间:2024-02-22 GMT+08:00

服务端加密

使用场景

当启用服务端加密功能后,用户上传对象时,数据会在服务端加密成密文后存储。用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户。

OBS支持以下三种方式的服务端加密,三种方式都采用了行业标准的AES256加密算法。

  • KMS托管密钥的服务端加密(SSE-KMS)

    用户首先需要在KMS中创建密钥(或者使用KMS提供的默认密钥),当用户在OBS中上传对象时使用该密钥进行服务端加密。

    在使用SSE-KMS方式加密时,您可以在创建桶时开启默认加密,开启后,所有上传到桶中的对象都会被加密;也可以在已创建的桶中根据需要开启默认加密,开启后,新上传到桶中的对象会被加密。

    OBS仅会对开启桶默认加密之后上传的对象进行加密,不会改变开启前已经有对象的加密状态。关闭默认加密,也不会影响桶中已有对象的加密状态,关闭默认加密后可在上传对象时进行单独加密。

    您可以通过控制台、API、SDK、OBS Browser+方式配置SSE-KMS加密。

  • 客户提供加密密钥的服务端加密(SSE-C)

    OBS使用用户提供的密钥和密钥的MD5值进行服务端加密。

    您可以通过API、SDK方式配置SSE-C加密。

  • OBS根密钥派生密钥的服务端加密(SSE-OBS)

    OBS使用OBS根密钥派生的密钥对用户数据进行服务端加密。

    您可以通过控制台配置SSE-OBS加密。

约束与限制

  • 一个对象每次上传,只支持一种服务器端加密方式。
  • 当桶或者桶内对象开启了SSE-KMS服务端加密功能,需要使用IAM为请求者配置kms:cmk:get、kms:cmk:list、kms:cmk:create、kms:dek:create、kms:dek:crypto权限,才能上传下载对象。
  1. SSE-KMS服务端加密方式支持中国-香港、亚太-新加坡、拉美-墨西哥城一、拉美-圣保罗一、华南-广州、非洲-约翰内斯堡、亚太-曼谷、西南-贵阳一、亚太-雅加达、土耳其-伊斯坦布尔区域。
  2. SSE-OBS服务端加密方式仅支持亚太-曼谷、亚太-雅加达区域。

背景知识

对于SSE-KMS方式,KMS通过使用硬件安全模块 (HSM) 保护密钥安全的托管,帮助用户轻松创建和控制加密密钥。用户密钥不会明文出现在HSM之外,避免密钥泄露。对密钥的所有操作都会进行访问控制及日志跟踪,提供所有密钥的使用记录,满足监督和合规性要求。

注意事项

桶加密开关关闭后,访问加密对象必须使用HTTPS协议。

使用方式

OBS支持通过控制台、API、SDK、OBS Browser+方式设置服务端加密。

支持的使用方式

参考文档

控制台

使用服务端加密方式上传文件

桶KMS加密

SDK

OBS支持多种语言SDK,请从SDK概述页面选择进入对应的开发指南查阅。

API

服务端加密SSE-KMS方式

服务端加密SSE-C方式

设置桶的加密配置

OBS Browser+

-