IBM Cloud Docs
カスタマー提供の鍵によるサーバー・サイド暗号化 (SSE-C)

カスタマー提供の鍵によるサーバー・サイド暗号化 (SSE-C)

SSE-C がオブジェクトに適用されます。 カスタマーが管理する鍵を使用してオブジェクトまたはそのメタデータの読み取りまたは書き込みを行う要求は、必要な暗号化情報を HTTP 要求のヘッダーとして送信します。 構文は S3 API と同じであり、SSE-C をサポートする S3 互換ライブラリーは IBM Cloud® Object Storage に対して予期されるとおりに機能します。

SSE-C ヘッダーを使用するすべての要求は SSL を使用して送信される必要があります。 応答ヘッダー内の ETag 値はオブジェクトの MD5 ハッシュではなく、ランダムに生成された 32 バイト 16 進数ストリングです。

標準的な PUT オブジェクト 要求では、以下のヘッダーを使用できます。

ヘッダー タイプ 説明
x-amz-server-side-encryption-customer-algorithm ストリング このヘッダーは、x-amz-server-side-encryption-customer-key ヘッダーに保管される暗号鍵で使用するアルゴリズムおよび鍵サイズを指定するために使用されます。 この値は、ストリング AES256 に設定する必要があります。
x-amz-server-side-encryption-customer-key ストリング このヘッダーは、サーバー・サイド暗号化プロセスで使用される AES 256 鍵の Base64 エンコードのバイト・ストリング表現をトランスポートするために使用されます。
x-amz-server-side-encryption-customer-key-MD5 ストリング このヘッダーは、RFC 1321 に従う暗号鍵の Base64 エンコード 128 ビット MD5 ダイジェストをトランスポートするために使用されます。 オブジェクト・ストアはこの値を使用して、x-amz-server-side-encryption-customer-key で渡された鍵がトランスポートおよびエンコード処理中に壊れなかったことを検証します。 鍵が Base64 エンコードされる前に、鍵のダイジェストが計算される必要があります。

cURL コマンド は、以下のようになります。

curl -v -T $FILE https://$ENDPOINT/$BUCKET  \
   -H "Authorization: bearer $TOKEN" \
   -H "Content-MD5: $MD5_OBJECT_HASH" \
   -H "x-amz-server-side-encryption-customer-algorithm: AES256" \
   -H "x-amz-server-side-encryption-customer-key:$ENCRYPTION_KEY" \
   -H "x-amz-server-side-encryption-customer-key-MD5:$MD5_KEY_HASH"