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

设置桶的加密配置

功能介绍

OBS使用PUT操作为桶创建或更新默认服务端加密配置信息。

设置桶加密配置后,在该桶中上传对象时,会采用桶的默认加密配置对数据进行加密。目前支持配置的服务端加密方式有:KMS托管密钥的服务端加密(SSE-KMS)、OBS托管密钥的服务端加密(SSE-OBS)。有关服务端加密方式的更多信息请参考服务端加密章节。

要使用此操作,您必须具有执行PutEncryptionConfiguration操作的权限。桶拥有者默认具有此权限,并且可以将此权限授予其他人。

有关权限控制的更多信息请参考《对象存储服务权限配置指南》的OBS权限控制概述章节。

请求消息样式(SSE-KMS SM4)

PUT /?encryption  HTTP/1.1
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Accept: */*
Date: date 
Authorization: authorization string
Content-Length: length

<ServerSideEncryptionConfiguration>
    <Rule>
        <ApplyServerSideEncryptionByDefault>
            <SSEAlgorithm>kms</SSEAlgorithm>
            <KMSDataEncryption>SM4</KMSDataEncryption>
            <KMSMasterKeyID>kmskeyid-value</KMSMasterKeyID>
        </ApplyServerSideEncryptionByDefault>
    </Rule>
</ServerSideEncryptionConfiguration>

请求消息样式(SSE-KMS AES256)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
PUT /?encryption  HTTP/1.1
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Accept: */*
Date: date 
Authorization: authorization string
Content-Length: length

<ServerSideEncryptionConfiguration>
    <Rule>
        <ApplyServerSideEncryptionByDefault>
            <SSEAlgorithm>kms</SSEAlgorithm>
            <KMSMasterKeyID>kmskeyid-value</KMSMasterKeyID>

        </ApplyServerSideEncryptionByDefault>
    </Rule>
</ServerSideEncryptionConfiguration>

请求消息样式(SSE-OBS)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
PUT /?encryption HTTP/1.1 
User-Agent: curl/7.29.0 
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Accept: */* 
Date: date  
Authorization: authorization string 
Content-Length: length
 
<ServerSideEncryptionConfiguration> 
    <Rule> 
        <ApplyServerSideEncryptionByDefault> 
            <SSEAlgorithm>AES256</SSEAlgorithm> 
        </ApplyServerSideEncryptionByDefault> 
    </Rule> 
</ServerSideEncryptionConfiguration>

请求消息参数

该请求消息中不使用消息参数。

请求消息头

该请求使用公共消息头,具体参见表3

请求消息元素

在此请求中,需要在请求的消息体中配置桶的加密配置。桶加密的配置信息以XML格式上传。具体的配置元素如表1

表1 桶的加密配置元素

参数

是否必选

参数类型

描述

ServerSideEncryptionConfiguration

Container

参数解释:

桶默认加密配置的根元素。ServerSideEncryptionConfiguration是Rule的父节点。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

Rule

Container

参数解释:

桶默认加密配置的子元素,Rule是ApplyServerSideEncryptionByDefault的父节点。

约束限制:

不涉及

取值范围:

请详见Rule参数说明

默认取值:

不涉及

表2 Rule参数说明

参数

是否必选

参数类型

描述

ApplyServerSideEncryptionByDefault

Container

参数解释:

桶默认加密配置的子元素。

约束限制:

不涉及

取值范围:

请详见ApplyServerSideEncryptionByDefault参数说明

默认取值:

不涉及

表3 ApplyServerSideEncryptionByDefault参数说明

参数

是否必选

参数类型

描述

SSEAlgorithm

String

参数解释:

桶默认加密配置要使用的服务端加密算法。

约束限制:

不涉及

取值范围:

  • kms:使用SSE-KMS加密方式,默认使用AES256算法;如果您需要使用SM4加密算法,还需要配置KMSDataEncryption。
  • AES256:使用SSE-OBS加密方式,且使用AES256加密算法。

默认取值:

不涉及

KMSDataEncryption

String

参数解释:

SSE-KMS加密方式下的数据加密算法。

约束限制:

不涉及

取值范围:

SM4:国密SM4算法。

默认取值:

不涉及

KMSMasterKeyID

String

参数解释:

SSE-KMS加密方式下使用的KMS主密钥ID。

约束限制:

  • 如果用户没有提供该头域,那么默认的主密钥将会被使用。
  • BucketKeyEnabled取值为true时,KMSMasterKeyID取值为携带用户在kms上创建的主密钥ID。

取值范围:

  • regionID:domainID(账号ID):key/key_id
  • key_id

其中:

默认取值:

不涉及

ProjectID

String

参数解释:

SSE-KMS加密方式下KMS主密钥所属的项目ID。

约束限制:

  • 如果KMS主密钥所属的项目为非默认项目,则需要通过该参数进行项目ID指定。
  • 在未设置KMSMasterKeyID的情况下,不可设置项目ID。
  • 使用非默认IAM项目下的自定义密钥对桶内对象进行SSE-KMS加密,只有密钥拥有者可以对加密后的对象进行上传下载类操作,非密钥拥有者不能对加密后的对象进行上传下载类操作。

取值范围:

与KMSMasterKeyID相匹配的项目ID,即ID为KMSMasterKeyID的主密钥所在项目的项目ID。

默认取值:

不涉及

响应消息样式

1
2
3
HTTP/1.1 status_code
Date: date
Content-Length: length

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应消息不带消息元素。

错误响应消息

无特殊错误,所有错误已经包含在表2中。

请求示例(SSE-KMS SM4)

PUT /?encryption  HTTP/1.1
User-Agent: curl/7.29.0
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Accept: */*
Date:  Thu, 21 Feb 2019 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-Length: 778

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ServerSideEncryptionConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> 
    <Rule>
        <ApplyServerSideEncryptionByDefault>
            <SSEAlgorithm>kms</SSEAlgorithm>
            <KMSDataEncryption>SM4</KMSDataEncryption>
            <KMSMasterKeyID>4f1cd4de-ab64-4807-920a-47fc42e7f0d0</KMSMasterKeyID>
        </ApplyServerSideEncryptionByDefault>
    </Rule>
</ServerSideEncryptionConfiguration>

响应示例(SSE-KMS SM4)

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643670AC06E7B9A7767921
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSvK6z8HV6nrJh49gsB5vqzpgtohkiFm
Date: Thu, 21 Feb 2019 03:05:34 GMT
Content-Length: 0

请求示例(SSE-KMS AES256)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
PUT /?encryption HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date:  Thu, 21 Feb 2019 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-Length: 778

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ServerSideEncryptionConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> 
    <Rule>
        <ApplyServerSideEncryptionByDefault>
            <SSEAlgorithm>kms</SSEAlgorithm>
            <KMSMasterKeyID>4f1cd4de-ab64-4807-920a-47fc42e7f0d0</KMSMasterKeyID>
        </ApplyServerSideEncryptionByDefault>
    </Rule>
</ServerSideEncryptionConfiguration>

响应示例(SSE-KMS AES256)

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643670AC06E7B9A7767921
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSvK6z8HV6nrJh49gsB5vqzpgtohkiFm
Date: Thu, 21 Feb 2019 03:05:34 GMT
Content-Length: 0

请求示例(SSE-OBS)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
PUT /?encryption HTTP/1.1 
User-Agent: curl/7.29.0 
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Accept: */*
Date:  Thu, 21 Feb 2019 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-Length: 778
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ServerSideEncryptionConfiguration xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> 
    <Rule> 
        <ApplyServerSideEncryptionByDefault> 
            <SSEAlgorithm>AES256</SSEAlgorithm> 
        </ApplyServerSideEncryptionByDefault> 
    </Rule> 
</ServerSideEncryptionConfiguration>

响应示例(SSE-OBS)

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643670AC06E7B9A7767921
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSvK6z8HV6nrJh49gsB5vqzpgtohkiFm
Date: Thu, 21 Feb 2019 03:05:34 GMT
Content-Length: 0

相关文档