PutBucketEncryption接口用于配置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

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

细节分析

  • 只有Bucket的拥有者及授权子账户才能为Bucket设置加密规则,否则返回403错误。
  • 使用KMS密钥功能时会产生少量的KMS密钥API调用费用。
  • 当SSEAlgorithm取值不是KMS或者AES256,则返回400 InvalidEncryptionAlgorithmError错误,错误提示:The Encryption request you specified is not valid. Supported value: AES256/KMS。
  • 当SSEAlgorithm取值为AES256,填写了KMSMasterKeyID,则返回400 InvalidArgument错误,错误提示:KMSMasterKeyID is not applicable if the default sse algorithm is not 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: 5C1B138A109F4E405B2D8AEF
    Date: Thu, 20 Dec 2018 11:11:06 GMT