具有客戶提供金鑰的伺服器端加密 (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"