概述
本文档详细介绍了元数据加速桶与普通存储桶的服务端加密功能的差异,以及元数据加速桶服务端加密功能的使用方法。
服务端加密功能支持情况
普通桶和元数据加速桶对服务端加密的支持情况如下表所示:
访问方法 | 服务端加密类型 | 普通桶 | 元数据加速桶 |
S3接口 | SSE-C | 支持 | 不支持 |
| SSE-COS | 支持 | 支持 |
| SSE-KMS | 支持 | 不支持 |
HDFS 接口 | SSE-C | 支持 | 支持 |
| SSE-COS | 支持 | 支持 |
| SSE-KMS | 支持 | 支持 |
存储桶默认加密 | SSE-C | 不支持 | 不支持 |
| SSE-COS | 支持 | 支持 |
| SSE-KMS | 支持 | 不支持 |
注意:
除上述表格所列出的区别外,元数据加速桶还有一个额外的使用限制:仅支持 AES-256 加密算法,不支持 SM4 加密算法。
服务端加密功能使用方法
元数据加速桶的服务端加密配置方式取决于访问接口类型:
S3 接口访问:配置加密方式的方法跟普通桶一致,请参见 服务端加密专用头部 设置请求头参数。
HDFS 接口访问:需根据使用的客户端( OFS 客户端或 COSN 客户端)的不同,选择不同的配置方法。关于两种客户端的详情,请参见 客户端介绍 。
下文列出的配置项,都需要在 Hadoop 的 core-site.xml 文件中添加或者修改,具体操作路径因环境而异:
自建的大数据环境:core-site.xml 文件一般位于 $HADOOP_HOME/etc/hadoop 目录下,具体取决于大数据组件的安装方式和发行版本。
OFS 客户端
使用 OFS 客户端时,各种加密方式的配置项介绍如下:
SSE-C 加密
配置项 | 配置描述 | 是否必选 |
fs.ofs.sse.mode | 指定服务端加密方式,此处为 SSE-C | 是 |
fs.ofs.sse.c.key | 格式为 Base64编码的 AES-256密钥,如 MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY= | 是 |
SSE-COS 加密
配置项 | 配置描述 | 是否必选 |
fs.ofs.sse.mode | 指定服务端加密方式,此处为 SSE-COS | 是 |
SSE-KMS 加密
配置项 | 配置描述 | 是否必选 |
fs.ofs.sse.mode | 指定服务端加密方式,此处为 SSE-KMS | 是 |
fs.ofs.sse.kms.keyid | 指定 KMS 的用户主密钥 CMK,如不指定,则使用 COS 默认创建的 CMK。 示例值:93866e69-9755-11ef-8e65-52540089bc41 | 否 |
fs.ofs.sse.kms.context | 指定 KMS 加密的上下文,值为 JSON 格式加密上下文键值对的 Base64编码。 示例值:eyJrZXkxIjoidmFsdWUxIn0= | 否 |
COSN 客户端
使用 COSN 客户端时,各种加密方式的配置项介绍如下:
SSE-C 加密
配置项 | 配置描述 | 是否必选 |
fs.cosn.trsf.fs.ofs.sse.mode | 指定服务端加密方式,此处为 SSE-C | 是 |
fs.cosn.trsf.fs.ofs.sse.c.key | 格式为 Base64编码的 AES-256密钥,如 MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY= | 是 |
SSE-COS 加密
配置项 | 配置描述 | 是否必选 |
fs.cosn.trsf.fs.ofs.sse.mode | 指定服务端加密方式,此处为 SSE-COS | 是 |
SSE-KMS 加密
配置项 | 配置描述 | 是否必选 |
fs.cosn.trsf.fs.ofs.sse.mode | 指定服务端加密方式,此处为 SSE-KMS | 是 |
fs.cosn.trsf.fs.ofs.sse.kms.keyid | 指定 KMS 的用户主密钥 CMK,如不指定,则使用 COS 默认创建的 CMK。 示例值:93866e69-9755-11ef-8e65-52540089bc41 | 否 |
fs.cosn.trsf.fs.ofs.sse.kms.context | 指定 KMS 加密的上下文,值为 JSON 格式加密上下文键值对的 Base64编码。 示例值:eyJrZXkxIjoidmFsdWUxIn0= | 否 |
存储桶默认加密
注意:
存储桶默认加密配置有以下限制:
仅支持 SSE-COS 加密方式,不支持 SSE-KMS。
仅支持 AES-256 加密算法,不支持 SM4 加密算法。
控制台配置
您可以通过对象存储控制台为元数据加速桶配置存储桶默认加密,具体操作步骤如下:
1. 登录 对象存储控制台 。
2. 在左侧导航栏中,单击存储桶列表,进入存储桶列表页面。
3. 单击需要配置加密的元数据加速桶,进入存储桶详情页面。
4. 在左侧导航栏中,选择安全管理 > 服务端加密,进入服务端加密配置页面。此时服务端加密默认为关闭状态。

5. 单击右上角的编辑按钮,开启服务端加密开关,选择加密方式为 SSE-COS,然后单击保存。

6. 保存成功后,页面将展示当前的加密配置状态。

REST API 配置
配置存储桶加密涉及以下 REST API 接口,使用方法与普通桶一致:
PUT Bucket encryption:配置存储桶默认加密方式,请求体中的 SSEAlgorithm 字段仅支持 AES-256。
GET Bucket encryption:查询存储桶当前的默认加密配置。
DELETE Bucket encryption:删除存储桶的默认加密配置。
说明:
配置存储桶加密不会对存储桶中已存在的对象产生加密操作。
配置存储桶加密后,对于后续上传至该存储桶的对象:
如果 PUT 请求中不包含加密信息,则上传的对象按存储桶加密配置进行加密。
如果 PUT 请求中包含加密信息,则上传的对象按 PUT 请求中的加密信息进行加密,存储桶默认加密配置不生效。