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