我使用 AWS Key Management Service (KMS)。我想針對儲存在 Amazon Simple Storage Service (Amazon S3) 上的物件以 AWS KMS (SSE-KMS) 進行伺服器端加密。我需要決定要使用客戶受管 AWS KMS key 還是 aws/s3 AWS KMS 受管金鑰。
解決方法
注意: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱 Troubleshooting errors for the AWS CLI (對 AWS CLI 錯誤進行疑難排解)。此外,請務必使用最新版 AWS CLI。
請根據您所需的控制程度來選擇金鑰。AWS KMS 會為您管理預設的 aws/s3 AWS KMS key,但您對客戶受管金鑰擁有完全的控制權。
使用預設 aws/s3 KMS 金鑰的時機
在下列情境中,請使用預設的 aws/s3 KMS 金鑰:
- 您針對與 AWS KMS key 位於相同 AWS 帳戶的 S3 物件,使用 AWS Identity and Access Management (IAM) 主體。
- 您不想管理 AWS KMS key 的政策。
若要使用 aws/s3 AWS KMS key 來加密物件,請在上傳期間將加密方法定義為 SSE-KMS,但不要指定金鑰。請執行下列 cp AWS CLI 命令:
aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms
注意: 請將 DOC-EXAMPLE-BUCKET 替換為您的 S3 儲存貯體名稱。
使用客戶受管金鑰的時機
在下列情境中,請使用客戶受管金鑰:
- 您想要建立、輪換、停用或定義金鑰的存取控制。
- 您想要授予您的 S3 物件跨帳戶存取權。
注意: 您可以設定客戶受管金鑰的政策,以允許另一個帳戶進行存取。
若要使用客戶受管金鑰來加密物件,請在上傳期間將加密方法定義為 SSE-KMS。此外,請將您的客戶受管金鑰指定為金鑰 (--sse-kms-key-id)。請執行下列 cp 命令:
aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms --sse-kms-key-id testkey
注意: 請將 mytextfile.txt 替換為您的檔案名稱,將 DOC-EXAMPLE-BUCKET 替換為您的 Amazon S3 儲存貯體名稱,並將 testkey 替換為您的金鑰 ID。
若要您客戶受管金鑰的存取權,請修改金鑰政策。如需更多資訊,請參閱 Creating a key policy (建立金鑰政策)。
使用 SSE-S3 加密的時機
您可以使用 Amazon S3 受管金鑰 (SSE-S3) 加密來取代 AWS KMS 加密。雖然 AWS KMS 加密提供強大的安全性控制,但在下列情境中,您必須使用預設的 SSE-S3 加密:
相關資訊
Protecting data with server-side encryption (使用伺服器端加密保護資料)
Using server-side encryption with AWS KMS keys (SSE-KMS) (使用 AWS KMS key (SSE-KMS) 進行伺服器端加密)