本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon S3 受管金鑰 (SSE-S3) 指定伺服器端加密
根據預設,所有 Amazon S3 儲存貯體都設定了加密,所有上傳到 S3 儲存貯體的新物件都會在靜態時自動加密。伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 是 Amazon S3 中每個儲存貯體的預設加密組態。若要使用不同類型的加密,您可以指定 S3 PUT
請求中要使用的伺服器端加密類型,也可以在目的地儲存貯體中設定預設加密組態。
如果您想要在PUT
請求中指定不同的加密類型,您可以使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)、雙層伺服器端加密搭配 AWS KMS 金鑰 (DSSE-KMS),或伺服器端加密搭配客戶提供的金鑰 (SSE-C)。若您想在目的地儲存貯體中設定不同的預設加密組態,您可以使用 SSE-KMS 或 DSSE-KMS。
您可以使用 SSE-S3S3 AWS CLI。 APIs AWS SDKs AWS Command Line Interface 如需詳細資訊,請參閱「對 Amazon S3 儲存貯體設定預設伺服器端加密行為」。
本主題說明如何使用 AWS Management Console設定或變更物件所使用的加密類型。當您使用主控台複製物件時,Amazon S3 會依原樣複製物件。這表示,若來源物件已加密,則目標物件也會加密。您可以使用主控台來新增或變更物件的加密。
注意
-
如果您的物件小於 5 GB,您可以變更物件的加密。如果您的物件大於 5 GB,您必須使用 AWS CLI 或 AWS SDK 來變更物件的加密。
-
如需變更物件加密所需的其他許可清單,請參閱Amazon S3 API 操作所需的許可。如需授予此許可的範例政策,請參閱Amazon S3 的身分型政策範例。
如果您變更物件的加密,則會建立新物件來取代舊物件。如果啟用 S3 版本控制,則系統會建立物件的新版本,且現有物件會變成較舊的版本。變更屬性的角色也會成為新物件 (或物件版本) 的擁有者。
變更物件的加密
登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/
:// 開啟 Amazon S3 主控台。 -
在導覽窗格中,選擇儲存貯體,然後選擇一般用途儲存貯體索引標籤。導覽至包含您要變更之物件的 Amazon S3 儲存貯體或資料夾。
-
選取您要變更之物件的核取方塊。
-
從動作功能表上顯示的選項清單中,選擇編輯伺服器端加密。
捲動至伺服器端加密區段。
在加密設定底下,選擇使用預設加密的儲存貯體設定或覆寫預設加密的儲存貯體設定。
-
若您選擇覆寫預設加密的儲存貯體設定,請設定下列加密設定。
-
在加密類型下,選擇使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3)。SSE-S3 使用目前最強大的其中一種區塊加密法,也就是 256 位元進階加密標準 (AES-256),來加密每個物件。如需詳細資訊,請參閱使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密。
-
-
在其他複製設定下,選擇複製來源設定、不要指定設定或指定設定。複製來源設定是預設選項。如果您只想複製物件但不想包含來源設定屬性,請選擇不要指定設定。選擇指定設定以指定儲存類別、ACL、物件標籤、中繼資料、伺服器端加密和額外檢查總和的設定。
-
選擇 Save changes (儲存變更)。
注意
此動作會將加密套用至所有指定的物件。加密資料夾時,請等待儲存作業完成,然後再將新物件新增至資料夾。
建立物件時 (也就是當您上傳新的物件或複製現有物件時),可以指定是否在請求中新增 x-amz-server-side-encryption
標頭,讓 Amazon S3 以 Amazon S3 受管金鑰 (SSE-S3) 加密您的資料。將標頭值設為 Amazon S3 支援的加密演算法 AES256
。Amazon S3 會傳回回應標頭 x-amz-server-side-encryption
,確認已使用 SSE-S3 存放物件。
下列 REST 上傳 API 操作,接受 x-amz-server-side-encryption
要求標頭。
使用分段上傳 API 操作上傳大型物件時,可以對啟動分段上傳要求新增 x-amz-server-side-encryption
標頭,指定伺服器端加密。複製現有物件時,除非明確地要求伺服器端加密,否則無論來源物件是否經過加密,都不會加密目標物件。
使用 SSE-S3 存放物件時,下列 REST API 操作的回應標頭會傳回 x-amz-server-side-encryption
標頭。
注意
如果物件使用 SSE-S3,請勿為 GET
請求與 HEAD
請求傳送加密請求標頭,否則您會收到 HTTP 狀態碼 400 (錯誤的請求) 錯誤。
使用 AWS SDKs時,您可以請求 Amazon S3 搭配 Amazon S3 受管加密金鑰 (SSE-S3) 使用伺服器端加密。本節提供以多種語言使用 AWS SDKs的範例。如需其他 SDK 的資訊,請前往範例程式碼與程式庫
若要在使用 上傳物件時指定 SSE-S3 AWS CLI,請使用下列範例。
aws s3api put-object --bucket
--key
amzn-s3-demo-bucket1
object-key-name
--server-side-encryption AES256 --bodyfile path
如需詳細資訊,請參閱 AWS CLI 參考中的 put-object
如需使用 設定加密的範例 AWS CloudFormation,請參閱AWS CloudFormation 《 使用者指南》中的使用伺服器端加密搭配 S3 儲存貯體金鑰範例,建立具有預設加密的儲存貯體和建立儲存貯AWS::S3::Bucket ServerSideEncryptionRule
體。 AWS KMS S3