我應該使用 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