IBM Cloud Docs
具有客戶提供金鑰的伺服器端加密 (SSE-C)

具有客戶提供金鑰的伺服器端加密 (SSE-C)

SSE-C 在物件上強制執行。 讀取或寫入使用客戶受管理金鑰的物件或其 meta 資料的要求,會將必要的加密資訊傳送為 HTTP 要求中的標頭。 此語法與 S3 API 相同,而且支援 SSE-C 的 S3 相容程式庫針對 IBM Cloud® Object Storage 如預期運作。

必須使用 SSL 傳送任何使用 SSE-C 標頭的要求。 回應標頭中的 ETag 是物件的 MD5 雜湊,而是隨機產生的 32 個位元組的十六進位字串。

一般 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"