我希望对我在 Amazon Simple Storage Service (Amazon S3) 上存储的对象进行 AWS Key Management Service 服务器端加密 (SSE-KMS)。我应该使用自定义的 AWS KMS 客户主密钥 (CMK)? 还是应该使用 AWS KMS 管理的 CMK(称作aws/s3)? 这两者之间有何区别?

AWS KMS 管理默认的 aws/s3 CMK,但您可以完全控制自定义 CMK。

使用默认的 aws/s3 CMK

注意:此 CMK 在 Amazon S3 控制台中的名称为 aws/s3,如果您使用 AWS 命令行界面 (AWS CLI),则无需指定该名称或 ID。

如果有下列任何情况,请考虑使用默认的 aws/s3 CMK:

  • 您上传或访问 S3 对象时将使用的 AWS Identity and Access Management (IAM) 委托人与该 CMK 来自同一 AWS 账户。
  • 您不希望管理 CMK 的策略。
  • 您不希望轮换 CMK。

如要使用默认的 aws/s3 CMK 进行对象加密,请在上传期间将加密方法选择为 SSE-KMS,但不要指定密钥:

aws s3 cp ./mytextfile.txt s3://mytestbucket/ --sse aws:kms

使用自定义 CMK

如果有下列任何情况,请考虑使用自定义 CMK:

  • 您希望创建、轮换、禁用 CMK 或定义其访问控制。
  • 您希望授予对 S3 对象的跨账户访问权限。您可以配置自定义 CMK 的策列以允许来自其他账户的访问。

如要使用您创建的自定义 CMK 进行对象加密,请在上传期间将加密方法选择为 SSE-KMS。然后将密钥指定为您的自定义 CMK (--sse-kms-key-id):

aws s3 cp ./mytextfile.txt s3://mytestbucket/ --sse aws:kms --sse-kms-key-id testkey

此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间:2019 年 2 月 6 日