PutBucketEncryption接口用于配置存储空间(Bucket)的加密规则。

说明 只有Bucket的拥有者及授权的RAM用户才能为Bucket设置加密规则,否则返回403错误。有关Bucket加密的更多信息,请参见服务器端加密

请求语法

PUT /?encryption HTTP/1.1
Date: GMT Date
Content-Length:ContentLength
Content-Type: application/xml
Host: BucketName.oss.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<ServerSideEncryptionRule>
  <ApplyServerSideEncryptionByDefault>
    <SSEAlgorithm>AES256</SSEAlgorithm>
    <KMSMasterKeyID></KMSMasterKeyID>
  </ApplyServerSideEncryptionByDefault>
</ServerSideEncryptionRule>

请求元素

名称 类型 是否必需 描述
ServerSideEncryptionRule 容器 服务端加密规则的容器。

子元素:ApplyServerSideEncryptionByDefault

ApplyServerSideEncryptionByDefault 容器 服务端默认加密方式的容器。

子元素:SSEAlgorithm,KMSMasterKeyID

SSEAlgorithm 字符串 设置服务端默认加密方式。

取值:KMS、AES256

  • 使用KMS密钥功能时会产生少量的KMS密钥API调用费用,费用详情请参见KMS计费标准
  • 进行跨区域复制时,若目标Bucket启用了默认加密方式,且复制规则配置了ReplicaCMKID,有以下两种情况:
    • 如果未对源Bucket中的对象进行加密,则使用目标Bucket的默认加密方式对跨区域复制过来的明文对象进行加密。
    • 若源Bucket中的对象使用了SSE-KMS或SSE-OSS的加密方式,则目标Bucket针对这些对象仍然使用原加密方式进行加密,而不是使用目标Bucket的默认加密方式进行加密。

    有关跨区域复制的更多信息,请参见跨区域复制介绍

KMSMasterKeyID 字符串 当SSEAlgorithm值为KMS,且使用指定的密钥加密时,需输入KMSMasterKeyID。其他情况下,必须为空。

示例

  • 请求示例

    以下示例用于对名为oss-example的Bucket设置SSE-KMS加密。

    PUT /?encryption HTTP/1.1
    Date: Tue, 20 Dec 2018 11:09:13 GMT
    Content-Length:ContentLength
    Content-Type: application/xml
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Authorization: OSS qn6qrrqxo2oawuk53otf****:ceOEyZavKY4QcjoUWYSpYbJ3****
    <?xml version="1.0" encoding="UTF-8"?>
    <ServerSideEncryptionRule>
      <ApplyServerSideEncryptionByDefault>
        <SSEAlgorithm>KMS</SSEAlgorithm>
        <KMSMasterKeyID>9468da86-3509-4f8d-a61e-6eab1eac****</KMSMasterKeyID>
      </ApplyServerSideEncryptionByDefault>
    </ServerSideEncryptionRule>
  • 返回示例
    HTTP/1.1 200 OK
    x-oss-request-id: 5C1B138A109F4E405B2D****
    Date: Thu, 20 Dec 2018 11:11:06 GMT

SDK

PutBucketEncryption接口对应的各语言SDK如下:

错误码

错误码 HTTP状态码 说明
InvalidEncryptionAlgorithmError 400 当SSEAlgorithm取值不为KMS或者AES256时,则返回此错误,错误提示为The Encryption request you specified is not valid. Supported value: AES256/KMS。
InvalidArgument 400 当SSEAlgorithm取值为AES256,但填写了KMSMasterKeyID,则返回此错误,错误提示为KMSMasterKeyID is not applicable if the default sse algorithm is not KMS。