本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本
Amazon S3 儲存貯體金鑰使用 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 降低 Amazon S3 伺服器端加密的成本。使用 SSE-KMS 的儲存貯體層級金鑰,可將 AWS KMS 請求流量從 Amazon S3 減少至 ,從而降低高達 99% 的請求成本 AWS KMS。只要在 中按幾下滑鼠 AWS Management Console,而且用戶端應用程式沒有任何變更,您就可以將儲存貯體設定為在新物件上使用 S3 儲存貯體金鑰進行 SSE-KMS 加密。
注意
S3 儲存貯體金鑰不支援使用 AWS Key Management Service (AWS KMS) 金鑰 (DSSE-KMS) 的雙層伺服器端加密。
SSE-KMS 的 S3 儲存貯體金鑰
存取以 SSE-KMS 加密的數百萬或數十億個物件的工作負載可能會產生大量的請求 AWS KMS。當您使用 SSE-KMS 來保護沒有 S3 儲存貯體金鑰的資料時,Amazon S3 會為每個物件使用個別 AWS KMS 的資料金鑰。在此情況下,Amazon S3 AWS KMS 每次針對 KMS 加密的物件提出請求時都會呼叫 。如需 SSE-KMS 運作方式的相關資訊,請參閱將伺服器端加密與 AWS KMS 金鑰搭配使用 (SSE-KMS)。
當您將儲存貯體設定為使用 SSE-KMS 的 S3 儲存貯體金鑰時, 會從中 AWS 產生短期儲存貯體層級金鑰 AWS KMS,然後暫時將其保留在 S3 中。此儲存貯體層級金鑰會其生命週期中建立資料金鑰。S3 儲存貯體金鑰在 Amazon S3 內的有限期間內使用,減少 S3 向 提出請求 AWS KMS 以完成加密操作的需求。這可降低從 S3 到 的流量 AWS KMS,讓您以先前成本的一小部分存取 Amazon S3 中的 AWS KMS加密物件。
每個請求者至少擷取一次唯一的儲存貯體層級金鑰,以確保請求者對金鑰的存取權是在 a AWS KMS CloudTrail 事件中擷取。當來電者使用不同的角色或帳戶,或具有不同範圍政策的相同角色時,Amazon S3 會將來電者視為不同的請求者。 AWS KMS 請求節省會反映請求者的數量、請求模式和請求物件的相對年齡。例如,較少的請求者數量、在有限的時間範圍內請求多個物件,以及使用相同的儲存貯體層級金鑰加密,會節省更多成本。
注意
使用 S3 儲存貯體金鑰可讓您透過使用儲存貯體層級金鑰,將 Encrypt
、 GenerateDataKey
和 Decrypt
操作 AWS KMS 的請求減少為 ,以節省 AWS KMS 請求成本。根據設計,利用此儲存貯體層級金鑰的後續請求不會導致 AWS KMS API 請求或根據 AWS KMS 金鑰政策驗證存取權。
當您設定 S3 儲存貯體金鑰時,儲存貯體中已存在的物件不會使用 S3 儲存貯體金鑰。若要為現有物件設定 S3 儲存貯體金鑰,您可以使用 CopyObject
操作。如需詳細資訊,請參閱在物件層級設定 S3 儲存貯體金鑰 。
Amazon S3 只會針對相同 AWS KMS key加密的物件共用 S3 儲存貯體金鑰。S3 儲存貯體金鑰與由 建立的 KMS 金鑰 AWS KMS、匯入的金鑰材料,以及由自訂金鑰存放區支援的金鑰材料相容。
設定 S3 儲存貯體金鑰
您可以透過 Amazon S3 主控台 AWS CLI、SSE 或 Word 將儲存貯體設定為在新物件KMS上使用 REST-API 的 Amazon S3 儲存貯 AWS SDKs金鑰。在儲存貯體上啟用 S3 儲存貯體金鑰時,使用不同指定 SSE-KMS 金鑰上傳的物件將使用自己的 S3 儲存貯體金鑰。無論您的 S3 儲存貯體金鑰設定為何,您都可以在請求中包含具有 true
或 false
值的 x-amz-server-side-encryption-bucket-key-enabled
標頭,以覆寫儲存貯體設定。
在您將儲存貯體設定為使用 S3 儲存貯體金鑰之前,請先檢閱 啟用 S3 儲存貯體金鑰之前,要注意的變更。
使用 Amazon S3 主控台設定 S3 儲存貯體金鑰
建立新儲存貯體時,您可以將儲存貯體設定為在新物件上使用 SSE-KMS 的 S3 儲存貯體金鑰。您也可以透過更新儲存貯體屬性,將現有儲存貯體設定為在新物件上使用 SSE-KMS 的 S3 儲存貯體金鑰。
如需詳細資訊,請參閱將儲存貯體設定為將 S3 儲存貯體金鑰與 SSE-KMS 用於新物件。
S3 儲存貯體金鑰的 REST API AWS CLI和 AWS SDK 支援
您可以使用 REST API AWS CLI或 AWS SDK,將儲存貯體設定為在新物件上使用 SSE-KMS 的 S3 儲存貯體金鑰。您也可以在物件層級啟用 S3 儲存貯體金鑰。
如需詳細資訊,請參閱下列內容:
下列 API 操作支援 SSE-KMS 的 S3 儲存貯體金鑰:
-
-
ServerSideEncryptionRule
接受啟用和停用 S3 儲存貯體金鑰的BucketKeyEnabled
參數。
-
-
-
ServerSideEncryptionRule
會傳回BucketKeyEnabled
的設定。
-
-
PutObject、CopyObject、CreateMultipartUpload和單POST物件
-
x-amz-server-side-encryption-bucket-key-enabled
請求標頭啟用或停用在物件層級的 S3 儲存貯體金鑰。
-
-
HeadObject、GetObject、UploadPartCopy、UploadPart 和 CompleteMultipartUpload
-
x-amz-server-side-encryption-bucket-key-enabled
回應標頭表示是否為物件啟用或停用 S3 儲存貯體金鑰。
-
使用 AWS CloudFormation
在 中 AWS CloudFormation,AWS::S3::Bucket
資源包含一個名為 的加密屬性,您可以使用BucketKeyEnabled
它來啟用或停用 S3 儲存貯體金鑰。
如需詳細資訊,請參閱使用 AWS CloudFormation。
啟用 S3 儲存貯體金鑰之前,要注意的變更
啟用 S3 儲存貯體金鑰之前,請注意下列相關變更:
IAM或 AWS KMS 金鑰政策
如果您現有的 AWS Identity and Access Management (IAM) 政策或 AWS KMS 金鑰政策使用物件 Amazon Resource Name (ARN) 作為加密內容,以精簡或限制對 KMS 金鑰的存取,則這些政策將無法與 S3 儲存貯體金鑰搭配使用。S3 儲存貯體金鑰使用儲存貯體 ARN 作為加密內容。啟用 S3 儲存貯體金鑰之前,請更新您的 IAM 政策或 AWS KMS 金鑰政策,以使用儲存貯體 ARN 作為加密內容。
如需加密內容與 S3 儲存貯體金鑰的詳細資訊,請參閱 加密內容。
的 CloudTrail 事件 AWS KMS
啟用 S3 儲存貯體金鑰後, AWS KMS CloudTrail 事件會記錄儲存貯體 ARN,而不是物件 ARN。此外,您會在日誌中看到較少的 SSEWordKMS 物件KMS CloudTrail 事件。由於 Amazon S3 中金鑰材料有時間限制,因此請求較少 AWS KMS。
使用 S3 儲存貯體金鑰與複寫
您可以搭配同區域複寫 (SRR) 和跨區域複寫 (CRR) 使用 S3 儲存貯體金鑰。
Amazon S3 複寫加密物件時,通常會在目的地儲存貯體中保留複本物件的加密設定。不過,如果來源物件未加密,且目的地儲存貯體使用預設加密或 S3 儲存貯體金鑰,Amazon S3 會使用目的地儲存貯體的組態加密物件。
下列範例說明 S3 儲存貯體金鑰如何與複寫搭配使用。如需詳細資訊,請參閱複寫加密物件 (SSE-S3、SSE-KMS、DSSE-KMS、SSE-C)。
範例 1 — 來源物件使用 S3 儲存貯體金鑰,目的地儲存貯體使用預設加密
如果您的來源物件使用 S3 儲存貯體金鑰,但目的地儲存貯體使用 SSE-KMS 的預設加密,則複本物件會在目的地儲存貯體中維護其 S3 儲存貯體金鑰加密設定。目的地儲存貯體仍會與 SSE-KMS 搭配使用預設加密。
範例 2 – 來源物件未加密;目的地儲存貯體使用 S3 儲存貯體金鑰搭配 SSE-KMS
如果您的來源物件未加密,且目的地儲存貯體搭配 SSE-KMS 使用 S3 儲存貯體金鑰,則會在目的地儲存貯體中使用 S3 儲存貯體金鑰搭配 SSE-KMS 加密複本物件。這會導致來源物件的 ETag
與複本物件的 ETag
不同。您必須更新可使用 ETag
的應用程式來容納這項差異。
使用 S3 儲存貯體金鑰
如需啟用及使用 S3 儲存貯體金鑰的詳細資訊,請參閱下列章節: