独的权限,该密钥可进一步防止未经受权地访问 Amazon S3 中的对象。SSE-KMS 还向您提供审核跟踪,显示您的 CMK 的使用时间和使用者。此外,您还能够建立和管理客户托管 CMK,或者使用您、服务和区域独有的 AWS 托管 CMK。有关更多信息,请参阅使用具备 AWS Key Management Service 中存储的 CMK 的服务器端加密 (SSE-KMS) 保护数据。html
具备客户提供密钥的服务器端加密 (SSE-C)服务器
使用具备客户提供密钥的服务器端加密 (SSE-C) 时,您管理加密密钥,而 Amazon S3 管理加密(在它对磁盘进行写入时)和解密(在您访问您的对象时)。有关更多信息,请参阅经过使用客户提供的加密密钥的服务器端加密 (SSE-C) 保护数据。ide
客户端加密
客户端加密 是在将数据发送到 Amazon S3 以前加密数据的行为。要启用客户端加密,您能够选择如下方法:ui
使用 AWS KMS 中存储的 CMK
在上传对象时 — 经过使用客户主密钥 (CMK) ID,客户端先向 AWS KMS 发送请求以获取可用于加密对象数据的 CMK。AWS KMS 返回两个随机生成的数据密钥版本:加密
- 客户端用于加密对象数据的数据密钥的纯文本版本
- 客户端将做为对象元数据上传到 Amazon S3 的同一数据密钥的密码 blob
下载对象时 — 客户端首先从 Amazon S3 下载加密的对象以及做为对象元数据存储的数据密钥的密码 blob 版本。而后,客户端将密码 blob 发送到 AWS KMS 以获取密钥的纯文本版本,以便让客户端解密对象数据。code
客户端将为其上传的每一个对象获取一个惟一的数据密钥。htm
使用在应用程序中存储的主密钥
- 上传对象时 — 将客户端主密钥提供给 Amazon S3 加密客户端。该客户端仅使用该主密钥来加密客户端随机生成的数据加密密钥。该过程的工做方式以下所示:
- Amazon S3 加密客户端在本地生成一个一次性对称密钥 (也称为“数据加密密钥”或“数据密钥”)。它使用数据密钥加密单个 Amazon S3 对象的数据。该客户端将为每一个对象生成一个单独的数据密钥。
- 该客户端使用您提供的主密钥来加密数据加密密钥。客户端会将加密的数据密钥及其材料说明做为对象元数据的一部分上传。该客户端利用材料描述来肯定要用于解密的客户端主密钥。
- 该客户端将加密数据上传到 Amazon S3 并在 Amazon S3 中将加密数据密钥保存为对象元数据 (
x-amz-meta-x-amz-key
)。
- 下载对象时 — 该客户端从 Amazon S3 下载加密的对象。经过使用对象元数据中的材料说明,该客户端将肯定要用于解密数据密钥的主密钥。该客户端将使用该主密钥解密数据密钥,而后使用该数据密钥对对象进行解密。
您提供的客户端主密钥能够是对称密钥,也能够是公有/私有密钥对。对象
- SSE-KMS 须要额外的费用,使用 SSE-S3/SSE-C 免费
2、KMS 秘钥自动轮换方式
- 备用密钥管理。AWS KMS 会保留 CMK 的全部备用密钥,即便密钥轮换处于禁用状态。只有删除 CMK 后才会删除备用密钥。若是使用 CMK 进行加密,AWS KMS 会使用当前的备用密钥。若是使用 CMK 进行解密,AWS KMS 会使用加密时所用的备用密钥。
- 启用和禁用密钥轮换。默认状况下,客户管理的 CMK 的自动密钥轮换处于禁用状态。当您启用(或从新启用)密钥轮换时,AWS KMS 会在启用日期 365 天后自动轮换 CMK,并在此后每隔 365 天轮换一次。
- 已禁用的 CMK。 禁用 CMK 后,AWS KMS 不会对它进行轮换。可是,密钥轮换状态不会发生改变,而且在 CMK 处于禁用状态时不能对其进行更改。从新启用 CMK 后,若是备用密钥已超过 365 天,AWS KMS 会当即轮换,并在此后每隔 365 天轮换一次。若是备用密钥少于 365 天,AWS KMS 会恢复原始密钥轮换计划。
- 待删除的 CMK。 对于待删除的 CMK,AWS KMS 不会对它进行轮换。密钥轮换状态设为
false
,处于待删除状态时不能更改。若是删除被取消,将恢复以前的密钥轮换状态。若是备用密钥已超过 365 天,AWS KMS 会当即轮换,并在此后每隔 365 天轮换一次。若是备用密钥少于 365 天,AWS KMS 会恢复原始密钥轮换计划。
- AWS 托管 CMK。 对于 AWS 托管 CMK,您没法管理其密钥轮换。AWS KMS 每隔三年(1095 天)自动轮换一次 AWS 托管 CMK。
- AWS 拥有的 CMK。 对于 AWS 拥有的 CMK,您没法管理其密钥轮换。AWS 拥有的 CMK 的密钥轮换策略由建立和管理 CMK 的 AWS 服务肯定。有关详细信息,请参阅服务的用户指南或开发人员指南中的静态加密 主题。
- AWS 服务。在 AWS 服务中,您能够在用于服务器端加密的 客户托管 CMK 上启用自动密钥轮换。年度轮换是透明的,并与 AWS 服务兼容。
- 监控密钥轮换。 当 AWS KMS 自动轮换 AWS 托管 CMK 或客户托管 CMK 的密钥材料时,会将 KMS CMK Rotation (KMS CMK 轮换) 事件写入 Amazon CloudWatch Events 中。您能够经过该事件验证 CMK 是否已轮换。
- 不支持的 CMK 类型。 如下类型的 CMK 不 支持自动密钥轮换,但您能够手动轮换这些 CMK。