本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在物件層級設定 S3 儲存貯體金鑰
當您使用、PUT或執行或COPY操作時 REST API AWS SDKs AWS CLI,您可以在物件層級啟用或停用 S3 儲存貯體金鑰,方法是新增具有true
或false
值的x-amz-server-side-encryption-bucket-key-enabled
請求標頭。S3 儲存貯體金鑰可使用 AWS Key Management Service (AWS KMS) (SSE-KMS) 將 Amazon S3 的請求流量減少到伺服器端加密的成本 AWS KMS。如需詳細資訊,請參閱KMS使用 Amazon S3 儲存貯體金鑰降低成本 SSE。
當您使用PUT或COPY操作為物件設定 S3 儲存貯體金鑰時,Amazon S3 只會更新該物件的設定。目的地儲存貯體的 S3 儲存貯體金鑰設定不會變更。如果您在啟用 S3 儲存貯體金鑰的情況下將已KMS加密物件的PUT或COPY請求提交至儲存貯體,除非您停用請求標頭中的金鑰,否則物件層級操作將自動使用 S3 儲存貯體金鑰。如果您沒有為物件指定 S3 儲存貯體金鑰,Amazon S3 會將目的地儲存貯體的 S3 儲存貯體金鑰設定套用至物件。
必要條件:
將物件設定為使用 S3 儲存貯體金鑰之前,請先檢閱 啟用 S3 儲存貯體金鑰之前,要注意的變更。
Amazon S3 批次操作
若要加密現有的 Amazon S3 物件,您可以使用 Amazon S3 批次操作。您可以為 S3 Batch 操作提供要操作的物件清單,Batch 操作會呼叫相應的物件API以執行指定的操作。
您可以使用 S3 批次操作複製操作來複製現有的未加密物件,並在相同的儲存貯體中寫入新的加密物件。單一批次操作任務可在數十億個物件上執行指定的操作。如需詳細資訊,請參閱「在 Amazon S3 物件上執行大規模批次操作」和使用 Amazon S3 批次操作來加密物件
使用 REST API
使用 SSE-時KMS,您可以使用下列API操作為物件啟用 S3 儲存貯體金鑰:
-
PutObject— 上傳物件時,您可以指定
x-amz-server-side-encryption-bucket-key-enabled
要求標頭,以在物件層級啟用或停用 S3 儲存貯體金鑰。 -
CopyObject— 複製物件並設定 SSE-時KMS,您可以指定
x-amz-server-side-encryption-bucket-key-enabled
要求標頭以啟用或停用物件的 S3 儲存貯體金鑰。 -
POST物件 — 當您使用
POST
作業上傳物件並設定 SSE-時KMS,您可以使用x-amz-server-side-encryption-bucket-key-enabled
表單欄位為物件啟用或停用 S3 儲存貯體金鑰。 -
CreateMultipartUpload— 當您使用
CreateMultipartUpload
API操作和設定 SSE-來上傳大型物件時KMS,您可以使用x-amz-server-side-encryption-bucket-key-enabled
請求標頭為物件啟用或停用 S3 儲存貯體金鑰。
若要在物件層級啟用 S3 儲存貯體金鑰,請包含 x-amz-server-side-encryption-bucket-key-enabled
請求標頭。若要取得有關 SSE-KMS 和的更多資訊 RESTAPI,請參閱使用 REST API。
使用 AWS SDK對於 Java(PutObject)
您可以使用下列範例,使用 AWS SDK for Java在物件層級設定 S3 儲存貯體金鑰。
使用 AWS CLI (PutObject)
您可以使用下列 AWS CLI 範例在物件層級設定 S3 儲存貯體金鑰作為PutObject
請求的一部分。
aws s3api put-object --bucket
amzn-s3-demo-bucket
--keyobject key name
--server-side-encryption aws:kms --bucket-key-enabled --bodyfilepath