選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

搭配 AWS KMS 金鑰 (DSSE-KMS) 指定雙層伺服器端加密

焦點模式
搭配 AWS KMS 金鑰 (DSSE-KMS) 指定雙層伺服器端加密 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

上傳新物件或複製現有物件時,您都可以套用加密。

您可以使用 Amazon S3 主控台、Amazon S3 REST API 和 AWS Command Line Interface (AWS CLI) 來指定 DSSE-KMS。如需詳細資訊,請參閱下列主題。

注意

您可以在 Amazon S3 AWS KMS keys 中使用多區域。但是,Amazon S3 目前將多區域金鑰視為單區域金鑰,並且不使用金鑰的多區域功能。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的使用多區域金鑰

注意

若您想要使用其他帳戶的 KMS 金鑰,您必須具有該金鑰的使用權限。如需詳細了解 KMS 金鑰跨帳戶權限,請參閱《AWS Key Management Service 開發人員指南》中的建立其他帳戶可使用的 KMS 金鑰

本節說明如何使用 Amazon S3 主控台設定或變更物件的加密類型,以使用雙層伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (DSSE-KMS)。

注意
  • 如果您的物件小於 5 GB,您可以變更物件的加密。如果您的物件大於 5 GB,您必須使用 AWS CLIAWS SDK 來變更物件的加密。

  • 如需變更物件加密所需的其他許可清單,請參閱Amazon S3 API 操作所需的許可。如需授予此許可的範例政策,請參閱Amazon S3 的身分型政策範例

  • 如果您變更物件的加密,則會建立新物件來取代舊物件。如果啟用 S3 版本控制,則系統會建立物件的新版本,且現有物件會變成較舊的版本。變更屬性的角色也會成為新物件 (或物件版本) 的擁有者。

新增或變更物件的加密
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在導覽窗格中,選擇儲存貯體,然後選擇一般用途儲存貯體索引標籤。導覽至包含您要變更之物件的 Amazon S3 儲存貯體或資料夾。

  3. 選取您要變更之物件的核取方塊。

  4. 動作功能表上顯示的選項清單中,選擇編輯伺服器端加密

  5. 捲動至伺服器端加密區段。

  6. 加密設定底下,選擇使用預設加密的儲存貯體設定覆寫預設加密的儲存貯體設定

  7. 若您選擇覆寫預設加密的儲存貯體設定,請設定下列加密設定。

    1. 加密類型下,選擇具有 AWS Key Management Service 金鑰的雙層伺服器端加密 (DSSE-KMS)

    2. AWS KMS 金鑰之下,執行下列其中一個動作,以選擇 KMS 金鑰:

      • 若要從可用的 KMS 金鑰清單中選擇,請選擇從 AWS KMS keys中選擇,然後從可用金鑰清單中選擇您的 KMS 金鑰

        AWS 受管金鑰 (aws/s3) 和您的客戶受管金鑰都會顯示在此清單中。如需詳細了解客戶受管金鑰,請參閱《AWS Key Management Service 開發人員指南》中的客戶金鑰和 AWS 金鑰

      • 若要輸入 KMS 金鑰 ARN,請選擇輸入 AWS KMS key ARN,然後在出現的欄位中輸入您的 KMS 金鑰 ARN。

      • 若要在 AWS KMS 主控台中建立新的客戶受管金鑰,請選擇建立 KMS 金鑰

        如需建立 的詳細資訊 AWS KMS key,請參閱《 AWS Key Management Service 開發人員指南》中的建立金鑰

      重要

      您只能使用在與儲存貯體相同的 AWS 區域 中可用的 KMS 金鑰。Amazon S3 主控台僅會列出與儲存貯體位於相同區域的前 100 個 KMS 金鑰。若要使用未列出的 KMS 金鑰,必須輸入 KMS 金鑰 ARN。若您想要使用其他帳戶的 KMS 金鑰,您必須先具有該金鑰的使用權限,然後輸入 KMS 金鑰 ARN。

      Amazon S3 僅支援對稱加密 KMS 金鑰,而不支援非對稱 KMS 金鑰。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的識別非對稱 KMS 金鑰

  8. 儲存貯體金鑰下,選擇停用。DSSE-KMS 不支援 S3 儲存貯體金鑰。

  9. 其他複製設定下,選擇複製來源設定不要指定設定指定設定複製來源設定是預設選項。如果您只想複製物件但不想包含來源設定屬性,請選擇不要指定設定。選擇指定設定以指定儲存類別、ACL、物件標籤、中繼資料、伺服器端加密和額外檢查總和的設定。

  10. 選擇 Save changes (儲存變更)。

注意

此動作會將加密套用至所有指定的物件。加密資料夾時,請等待儲存作業完成,然後再將新物件新增至資料夾。

本節說明如何使用 Amazon S3 主控台設定或變更物件的加密類型,以使用雙層伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (DSSE-KMS)。

注意
  • 如果您的物件小於 5 GB,您可以變更物件的加密。如果您的物件大於 5 GB,您必須使用 AWS CLIAWS SDK 來變更物件的加密。

  • 如需變更物件加密所需的其他許可清單,請參閱Amazon S3 API 操作所需的許可。如需授予此許可的範例政策,請參閱Amazon S3 的身分型政策範例

  • 如果您變更物件的加密,則會建立新物件來取代舊物件。如果啟用 S3 版本控制,則系統會建立物件的新版本,且現有物件會變成較舊的版本。變更屬性的角色也會成為新物件 (或物件版本) 的擁有者。

新增或變更物件的加密
  1. 登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/:// 開啟 Amazon S3 主控台。

  2. 在導覽窗格中,選擇儲存貯體,然後選擇一般用途儲存貯體索引標籤。導覽至包含您要變更之物件的 Amazon S3 儲存貯體或資料夾。

  3. 選取您要變更之物件的核取方塊。

  4. 動作功能表上顯示的選項清單中,選擇編輯伺服器端加密

  5. 捲動至伺服器端加密區段。

  6. 加密設定底下,選擇使用預設加密的儲存貯體設定覆寫預設加密的儲存貯體設定

  7. 若您選擇覆寫預設加密的儲存貯體設定,請設定下列加密設定。

    1. 加密類型下,選擇具有 AWS Key Management Service 金鑰的雙層伺服器端加密 (DSSE-KMS)

    2. AWS KMS 金鑰之下,執行下列其中一個動作,以選擇 KMS 金鑰:

      • 若要從可用的 KMS 金鑰清單中選擇,請選擇從 AWS KMS keys中選擇,然後從可用金鑰清單中選擇您的 KMS 金鑰

        AWS 受管金鑰 (aws/s3) 和您的客戶受管金鑰都會顯示在此清單中。如需詳細了解客戶受管金鑰,請參閱《AWS Key Management Service 開發人員指南》中的客戶金鑰和 AWS 金鑰

      • 若要輸入 KMS 金鑰 ARN,請選擇輸入 AWS KMS key ARN,然後在出現的欄位中輸入您的 KMS 金鑰 ARN。

      • 若要在 AWS KMS 主控台中建立新的客戶受管金鑰,請選擇建立 KMS 金鑰

        如需建立 的詳細資訊 AWS KMS key,請參閱《 AWS Key Management Service 開發人員指南》中的建立金鑰

      重要

      您只能使用在與儲存貯體相同的 AWS 區域 中可用的 KMS 金鑰。Amazon S3 主控台僅會列出與儲存貯體位於相同區域的前 100 個 KMS 金鑰。若要使用未列出的 KMS 金鑰,必須輸入 KMS 金鑰 ARN。若您想要使用其他帳戶的 KMS 金鑰,您必須先具有該金鑰的使用權限,然後輸入 KMS 金鑰 ARN。

      Amazon S3 僅支援對稱加密 KMS 金鑰,而不支援非對稱 KMS 金鑰。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的識別非對稱 KMS 金鑰

  8. 儲存貯體金鑰下,選擇停用。DSSE-KMS 不支援 S3 儲存貯體金鑰。

  9. 其他複製設定下,選擇複製來源設定不要指定設定指定設定複製來源設定是預設選項。如果您只想複製物件但不想包含來源設定屬性,請選擇不要指定設定。選擇指定設定以指定儲存類別、ACL、物件標籤、中繼資料、伺服器端加密和額外檢查總和的設定。

  10. 選擇 Save changes (儲存變更)。

注意

此動作會將加密套用至所有指定的物件。加密資料夾時,請等待儲存作業完成,然後再將新物件新增至資料夾。

當您建立物件時,也就是當您上傳新物件或複製現有物件時,您可以指定使用雙層伺服器端加密搭配 AWS KMS keys (DSSE-KMS) 來加密資料。若要執行這項操作,請將 x-amz-server-side-encryption 標頭新增至要求。將標頭的值設為加密演算法 aws:kms:dsse。Amazon S3 會傳回回應標頭 x-amz-server-side-encryption,確認已使用 DSSE-KMS 加密存放物件。

如果您使用 aws:kms:dsse 的值指定 x-amz-server-side-encryption 標頭,也可以使用下列要求標頭:

  • x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId

  • x-amz-server-side-encryption-context: SSEKMSEncryptionContext

支援 DSSE-KMS 的 Amazon S3 REST API 操作

下列 REST API 操作接受 x-amz-server-side-encryptionx-amz-server-side-encryption-aws-kms-key-idx-amz-server-side-encryption-context 請求標頭。

  • PutObject – 使用 PUT API 操作上傳資料時,您可以指定這些請求標頭。

  • CopyObject – 複製物件時,您會同時有來源物件與目標物件。當您使用 CopyObject 操作傳遞 DSSE-KMS 標頭時,這些標頭只會套用至目標物件。複製現有物件時,除非明確地要求伺服器端加密,否則無論來源物件是否經過加密,都不會加密目標物件。

  • POST 物件 – 使用 POST 操作上傳物件時,您會提供與表單欄位中相同的資訊,而不是請求標頭。

  • CreateMultipartUpload – 透過分段上傳來上傳大型物件時,您可以在 CreateMultipartUpload 請求中指定這些標頭。

使用伺服器端加密存放物件時,下列 REST API 操作的回應標頭會傳回 x-amz-server-side-encryption 標頭。

重要
  • 如果您不使用 Secure Sockets Layer (SSL)、Transport Layer Security (TLS) 或 Signature 第 4 版,則受 保護物件的所有 GETPUT請求都會 AWS KMS 失敗。

  • 如果您的物件使用 DSSE-KMS,請勿傳送 GET 請求與 HEAD 請求的加密請求標頭,否則您會收到 HTTP 400 (錯誤的請求) 錯誤。

加密內容 (x-amz-server-side-encryption-context)

如果您指定 x-amz-server-side-encryption:aws:kms:dsse,則 Amazon S3 API 支援具有 x-amz-server-side-encryption-context 標頭的加密內容。加密內容是一組金鑰值對,其中包含資料的其他相關內容資訊。

Amazon S3 會自動使用物件的 Amazon Resource Name (ARN) 作為加密內容配對,例如 arn:aws:s3:::object_ARN

您可以使用 x-amz-server-side-encryption-context 標頭來提供其他加密內容對。不過,加密內容未加密,因此請確保其中不包含敏感資訊。Amazon S3 會一起存放此附加金鑰對與預設加密內容。

如需 Amazon S3 中加密內容的相關資訊,請參閱 加密內容。如需有關加密內容的更多資訊,請參閱《AWS Key Management Service 開發人員指南》中的 AWS Key Management Service 概念:加密內容

AWS KMS 金鑰 ID (x-amz-server-side-encryption-aws-kms-key-id)

您可以使用 x-amz-server-side-encryption-aws-kms-key-id 標頭來指定用來保護資料之客戶受管金鑰的 ID。如果您指定 x-amz-server-side-encryption:aws:kms:dsse 標頭,但未提供 x-amz-server-side-encryption-aws-kms-key-id標頭,Amazon S3 會使用 AWS 受管金鑰 (aws/s3) 來保護資料。如果您想要使用客戶受管的金鑰,則必須提供客戶受管金鑰的 x-amz-server-side-encryption-aws-kms-key-id 標頭。

重要

當您在 Amazon S3 中使用 AWS KMS key 進行伺服器端加密時,您必須選擇對稱加密 KMS 金鑰。Amazon S3 只支援對稱加密 KMS 金鑰。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的對稱加密 KMS 金鑰

當您建立物件時,也就是當您上傳新物件或複製現有物件時,您可以指定使用雙層伺服器端加密搭配 AWS KMS keys (DSSE-KMS) 來加密資料。若要執行這項操作,請將 x-amz-server-side-encryption 標頭新增至要求。將標頭的值設為加密演算法 aws:kms:dsse。Amazon S3 會傳回回應標頭 x-amz-server-side-encryption,確認已使用 DSSE-KMS 加密存放物件。

如果您使用 aws:kms:dsse 的值指定 x-amz-server-side-encryption 標頭,也可以使用下列要求標頭:

  • x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId

  • x-amz-server-side-encryption-context: SSEKMSEncryptionContext

支援 DSSE-KMS 的 Amazon S3 REST API 操作

下列 REST API 操作接受 x-amz-server-side-encryptionx-amz-server-side-encryption-aws-kms-key-idx-amz-server-side-encryption-context 請求標頭。

  • PutObject – 使用 PUT API 操作上傳資料時,您可以指定這些請求標頭。

  • CopyObject – 複製物件時,您會同時有來源物件與目標物件。當您使用 CopyObject 操作傳遞 DSSE-KMS 標頭時,這些標頭只會套用至目標物件。複製現有物件時,除非明確地要求伺服器端加密,否則無論來源物件是否經過加密,都不會加密目標物件。

  • POST 物件 – 使用 POST 操作上傳物件時,您會提供與表單欄位中相同的資訊,而不是請求標頭。

  • CreateMultipartUpload – 透過分段上傳來上傳大型物件時,您可以在 CreateMultipartUpload 請求中指定這些標頭。

使用伺服器端加密存放物件時,下列 REST API 操作的回應標頭會傳回 x-amz-server-side-encryption 標頭。

重要
  • 如果您不使用 Secure Sockets Layer (SSL)、Transport Layer Security (TLS) 或 Signature 第 4 版,則受 保護物件的所有 GETPUT請求都會 AWS KMS 失敗。

  • 如果您的物件使用 DSSE-KMS,請勿傳送 GET 請求與 HEAD 請求的加密請求標頭,否則您會收到 HTTP 400 (錯誤的請求) 錯誤。

加密內容 (x-amz-server-side-encryption-context)

如果您指定 x-amz-server-side-encryption:aws:kms:dsse,則 Amazon S3 API 支援具有 x-amz-server-side-encryption-context 標頭的加密內容。加密內容是一組金鑰值對,其中包含資料的其他相關內容資訊。

Amazon S3 會自動使用物件的 Amazon Resource Name (ARN) 作為加密內容配對,例如 arn:aws:s3:::object_ARN

您可以使用 x-amz-server-side-encryption-context 標頭來提供其他加密內容對。不過,加密內容未加密,因此請確保其中不包含敏感資訊。Amazon S3 會一起存放此附加金鑰對與預設加密內容。

如需 Amazon S3 中加密內容的相關資訊,請參閱 加密內容。如需有關加密內容的更多資訊,請參閱《AWS Key Management Service 開發人員指南》中的 AWS Key Management Service 概念:加密內容

AWS KMS 金鑰 ID (x-amz-server-side-encryption-aws-kms-key-id)

您可以使用 x-amz-server-side-encryption-aws-kms-key-id 標頭來指定用來保護資料之客戶受管金鑰的 ID。如果您指定 x-amz-server-side-encryption:aws:kms:dsse 標頭,但未提供 x-amz-server-side-encryption-aws-kms-key-id標頭,Amazon S3 會使用 AWS 受管金鑰 (aws/s3) 來保護資料。如果您想要使用客戶受管的金鑰,則必須提供客戶受管金鑰的 x-amz-server-side-encryption-aws-kms-key-id 標頭。

重要

當您在 Amazon S3 中使用 AWS KMS key 進行伺服器端加密時,您必須選擇對稱加密 KMS 金鑰。Amazon S3 只支援對稱加密 KMS 金鑰。如需詳細資訊,請參閱《AWS Key Management Service 開發人員指南》中的對稱加密 KMS 金鑰

當上傳新物件或複製現有物件時,您可以指定使用 DSSE-KMS 來加密資料。若要執行這項操作,請將 --server-side-encryption aws:kms:dsse 參數新增至請求。使用 --ssekms-key-id example-key-id 參數來新增您已建立的客戶受管 AWS KMS 金鑰。如果您指定 --server-side-encryption aws:kms:dsse,但未提供 AWS KMS 金鑰 ID,則 Amazon S3 將使用 AWS 受管金鑰 (aws/s3)。

aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id --body filepath

您可以將未加密的物件加密以使用 DSSE-KMS,方法是將物件複製回原位。

aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --body filepath --bucket amzn-s3-demo-bucket --key example-object-key --sse aws:kms:dsse --sse-kms-key-id example-key-id --body filepath

當上傳新物件或複製現有物件時,您可以指定使用 DSSE-KMS 來加密資料。若要執行這項操作,請將 --server-side-encryption aws:kms:dsse 參數新增至請求。使用 --ssekms-key-id example-key-id 參數來新增您已建立的客戶受管 AWS KMS 金鑰。如果您指定 --server-side-encryption aws:kms:dsse,但未提供 AWS KMS 金鑰 ID,則 Amazon S3 將使用 AWS 受管金鑰 (aws/s3)。

aws s3api put-object --bucket amzn-s3-demo-bucket --key example-object-key --server-side-encryption aws:kms:dsse --ssekms-key-id example-key-id --body filepath

您可以將未加密的物件加密以使用 DSSE-KMS,方法是將物件複製回原位。

aws s3api copy-object --bucket amzn-s3-demo-bucket --key example-object-key --body filepath --bucket amzn-s3-demo-bucket --key example-object-key --sse aws:kms:dsse --sse-kms-key-id example-key-id --body filepath
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。