我應該使用 AWS KMS 受管金鑰或是客戶管理 KMS 金鑰來加密 Amazon S3 上的物件?

上次更新日期:2021 年 11 月 1 日

我想要將伺服器端加密搭配 AWS Key Management Service (SSE-KMS) 用於存放在 Amazon Simple Storage Service (Amazon S3) 上的物件。我應該使用客戶管理的 AWS KMS 金鑰嗎? 或者,我應該使用稱為 aws/s3 的 AWS KMS 受管金鑰嗎? 這兩種金鑰有什麼差別?

解決方案

AWS KMS 會管理預設的 aws/s3 KMS 金鑰,但您可以完全控制客戶管理的金鑰。

使用預設的 aws/s3 KMS 金鑰

注意: 在 Amazon S3 主控台中,KMS 金鑰的名稱是 aws/s3,但是,如果您使用 AWS Command Line Interface (AWS CLI),則不會指定該名稱或 ID。

在下列情況下,請考慮使用預設的 aws/s3 KMS 金鑰:

  • 您正在使用與 KMS 金鑰位於相同 AWS 帳戶中的 AWS Identity and Access Management (IAM) 委託人上傳或存取 S3 物件。
  • 您不想管理 KMS 金鑰的政策。

若要使用預設 aws/s3 KMS 金鑰加密物件,請在上傳期間將加密方法定義為 SSE-KMS,但請勿指定金鑰:

aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms

注意:如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版 AWS CLI

使用客戶管理的金鑰

在下列情況下,請考慮使用客戶管理的金鑰:

  • 您想要建立、輪換、停用或定義金鑰的存取控制。
  • 您想要授予對 S3 物件的跨帳戶存取權。您可以設定客戶管理金鑰的政策,以允許從其他帳戶存取。

若要使用客戶管理的金鑰來加密物件,請在上傳期間將加密方法定義為 SSE-KMS。然後,將您的客戶管理的金鑰指定為金鑰 (--sse-kms-key-id):

aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms --sse-kms-key-id testkey

若要控制對客戶管理金鑰的存取權,請修改金鑰政策。如需有關如何建立金鑰政策的詳細資訊,請參閱金鑰政策範例