この操作を呼び出して、バケットの暗号化ルールを設定できます。
注意事項
oss:PutBucketEncryption 権限は、バケットの暗号化ルールを設定するために必要です。 詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。
バケットの所有者または承認された RAM ユーザーのみが、バケットの暗号化ルールを設定できます。 それ以外の場合は、OSS は 403 エラーを返します。 バケット暗号化の詳細については、「サーバー側暗号化」をご参照ください。
リクエスト構造
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 | 文字列 | はい | AES256 | デフォルトのサーバー側暗号化方式。 有効な値: KMS、AES256。 説明 クラウドボックスの OSS を使用する場合、AES-256 のみがサポートされます。 CMK を使用してデータを暗号化または復号化する場合、API 操作の呼び出しに対して課金されます。 料金の詳細については、「KMS 料金」をご参照ください。 クロスリージョン レプリケーションでは、デスティネーション バケットにデフォルトのサーバー側暗号化方式が設定されており、レプリケーション ルールに ReplicaCMKID が設定されている場合:
詳細については、「サーバー側暗号化でクロスリージョン レプリケーションを使用する」をご参照ください。 |
KMSDataEncryption | 文字列 | いいえ | SM4 | オブジェクトの暗号化に使用されるアルゴリズム。 この要素が指定されていない場合、オブジェクトは AES256 を使用して暗号化されます。 この要素は、SSEAlgorithm の値が KMS に設定されている場合にのみ有効です。 有効な値: SM4。 クラウドボックスの OSS を使用する場合、このパラメーターはサポートされていません。 |
KMSMasterKeyID | 文字列 | いいえ | 9468da86-3509-4f8d-a61e-6eab1eac**** | SSEAlgorithm が KMS に設定され、指定された CMK が暗号化に使用される場合に指定する必要がある CMK ID。 それ以外の場合は、この要素を null に設定する必要があります。 クラウドボックスの OSS を使用する場合、このパラメーターはサポートされていません。 |
PutBucketEncryption リクエストに含まれる Host や Date などの他の一般的なリクエスト ヘッダーの詳細については、「一般的なリクエスト ヘッダー」をご参照ください。
レスポンス ヘッダー
DescribeRegions リクエストへのレスポンスのすべてのヘッダーは、一般的なレスポンス ヘッダーです。 詳細については、「一般的なレスポンス ヘッダー」をご参照ください。
例
サンプル リクエスト
暗号化方式を SSE-KMS に設定する
oss-example という名前のバケットの暗号化方式を SSE-KMS に設定するには、次のサンプル リクエストを送信できます。
PUT /? encryption HTTP/1.1 Date: Thu, 17 Apr 2025 11:09:13 GMT Content-Length: ContentLength Content-Type: application/xml Host: oss-example.oss-cn-hangzhou.aliyuncs.com Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <? 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: Thur, 5 Nov 2020 11:09:13 GMT
OSS SDK
次のプログラミング言語の OSS SDK を使用して、PutBucketEncryption 操作を呼び出すことができます。
ossutil
PutBucketEncryption 操作に対応する ossutil コマンドについては、「put-bucket-encryption」をご参照ください。
エラー コード
エラー コード | HTTP ステータスコード | 説明 |
InvalidEncryptionAlgorithmError | 400 | SSEAlgorithm の値が KMS または AES256 でないために返されたエラー。 返されるエラー メッセージは次のとおりです: |
InvalidArgument | 400 | SSEAlgorithm の値が AES256 であるにもかかわらず KMSMasterKeyID が指定されているために返されたエラー。 返されるエラー メッセージは次のとおりです: |