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

OBS服务端加密

应用场景

对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。

密钥管理服务(Key Management Service,KMS)是一种安全、可靠、简单易用的密钥托管服务,帮助用户集中管理密钥,保护密钥安全。KMS提供信封加密能力,无需通过网络传输大量数据即可完成数据加解密。

KMS可以对OBS桶内对象进行全量加密或者部分加密,在OBS服务使用KMS加密过程中,信封加密方式有效保障了数据传输的加密性、数据解密的效率和便捷性,在对象上传和下载过程中,保证信息安全:

图1 使用KMS加密OBS

方案架构

OBS中上传对象的加解密原理说明如下:

  • 加密原理
    图2 加密原理
    1. 获取加密密钥

      通过KMS,生成一个用于加密OBS桶内对象的数据加密密钥。

    2. 加密数据上传至OBS桶

      加密SDK通过获取的数据加密密钥,对上传的数据明文进行加密处理,将被加密的对象密文存储到OBS。

  • 解密原理
    图3 解密原理
    1. 下载对象

      通过OBS,下载被加密的对象数据。

    2. 解密对象

      被加密对象通过加密SDK获取对应的密文数据密钥,通过KMS,进行密文数据密钥的解密操作,获得被解密后的原始对象。

约束与限制

  • SM4加密算法仅支持华北-乌兰察布一区域。
  • 使用中的密钥不可以删除,如果删除将导致加密对象不能下载。

OBS桶加密:创建OBS桶时开启服务端加密功能

  1. 登录管理控制台
  2. 单击页面左侧,选择存储 > 对象存储服务 OBS
  3. 在左侧导航栏选择“桶列表”,在页面右上角单击“创建桶”。
  4. 在服务端加密选择“SSE-KMS”方式后,选择加密密钥类型。

    图4 OBS服务端加密

    OBS使用KMS提供的加密密钥,支持选择的密钥:

    • 默认密钥“obs/default”,如果您没有默认密钥,系统将会在首次上传对象时为您自动创建。
    • 用户使用KMS创建的自定义密钥,具体操作请参见创建密钥

  5. 完成其他参数配置后,单击“立即创建”,完成OBS桶加密配置。

OBS桶加密:为已创建的OBS桶开启加密

  1. 登录管理控制台
  2. 单击页面左侧,选择存储 > 对象存储服务 OBS
  3. 在左侧导航栏选择“桶列表”,在桶列表中,单击待操作的桶,进入“对象”页面。
  4. 在左侧导航栏单击“概览”,进入“概览”页面。
  5. 在概览页的“基础配置”区域下,单击“服务端加密”卡片,系统弹出“服务端加密”对话框。
  6. 选择“SSE-KMS”方式后,选择加密密钥类型。

    图5 开启服务端加密

    OBS使用KMS提供的加密密钥,支持选择的密钥:

    • 默认密钥“obs/default”,如果您没有默认密钥,系统将会在首次上传对象时为您自动创建。
    • 用户使用KMS创建的自定义密钥,具体操作请参见创建密钥

  7. 完成设置后,单击“确定”,服务端加密配置生效。

上传对象加密(SSE-KMS加密方式)

  1. 在OBS管理控制台桶列表中,单击待操作的桶,进入“概览”页面。
  2. 在左侧导航栏,单击“对象”
  3. 单击“上传对象”,系统弹出“上传对象”对话框。
  4. 单击“添加文件”,选择待上传的文件后,单击“打开”
  5. 在服务端加密行,选择目标加密方式,选择完成后,在下方的选择框中选择默认密钥或者自定义密钥,如图6所示。

    图6 加密上传对象(已开启OBS桶加密)
    图7 加密上传对象(未开启OBS桶加密)
    1. 如果对象所在的OBS桶已开启加密,可在服务端加密行选择继承桶的加密配置,与OBS桶使用同样的加密配置进行上传对象的加密。
    2. 如果对象所在的OBS桶未开启加密,可选择先开启OBS桶加密,或者直接使用“SSE-KMS”加密方式加密上传对象。

  1. 对象上传成功后,可在对象列表中查看对象的加密状态。

    • 对象的加密状态不可以修改。
    • 使用中的密钥不可以删除,如果删除将导致加密对象不能下载。

通过调用API实现服务端加密方式上传对象

用户也可以通过调用OBS API接口,选择服务端加密SSE-KMS方式(SSE-KMS方式是指OBS使用KMS提供的密钥进行服务端加密)上传文件,详情请参考《对象存储服务API参考》

分享:

    相关文档

    相关产品