Amazon Elastic Block Store (Amazon EBS) 如何使用 AWS KMS - AWS Key Management Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Elastic Block Store (Amazon EBS) 如何使用 AWS KMS

本主题详细讨论了Amazon Elastic Block Store (Amazon EBS)使用 AWS KMS 来加密卷和快照。有关加密 Amazon EBS 卷的基本说明,请参阅Amazon EBS 加密

Amazon EBS 加密

当您将加密的 Amazon EBS 卷附加到支持的 Amazon Elastic Compute Cloud (Amazon EC2) 实例类型,该卷上静态存储的数据、磁盘 I/O 和通过该卷创建的快照都会进行加密。加密在托管 Amazon EC2 实例的服务器上进行。

所有Amazon EBS 卷类型。您可以通过与访问其他卷相同的方式来访问加密卷;加密和解密以透明方式处理,您的 EC2 实例或您的应用程序都无需执行其他任何操作。加密 卷的快照会自动加密,通过加密 快照创建的卷也会自动加密。

EBS 卷的加密状态在您创建该卷时就已经确定了。您不能更改现有卷的加密状态。但是,您可以在加密卷和未加密卷之间迁移数据,并在复制快照时应用新的加密状态。

默认情况下,Amazon EBS 支持可选加密。您可以在 AWS 账户和地区中的所有新 EBS 卷和快照副本上自动启用加密功能。此配置设置不会影响现有的卷或快照。有关详细信息,请参阅。默认加密中的适用于 Linux 实例的 Amazon EC2 用户指南或者适用于 Windows 实例的 Amazon EC2 用户指南

使用 CMK 和数据密钥

当您 时创建加密 Amazon EBS 卷中,您可以指定 AWS KMS 客户主密钥 (CMK)。默认情况下,亚马逊 EBS 使用AWS 托管的 CMK对于您账户中的亚马逊 EBS(aws/ebs)。不过,您可以指定自己创建和管理的客户托管的 CMK

要使用客户托管的 CMK,您必须向 Amazon EBS 授予代表您使用 CMK 的权限。有关所需权限的列表,请参阅IAM 用户的权限中的适用于 Linux 实例的 Amazon EC2 用户指南或者适用于 Windows 实例的 Amazon EC2 用户指南

重要

Amazon EBS 仅支持对称 CMK。您无法使用非对称 CMK来加密 Amazon EBS 卷。要获取确定 CMK 是对称还是非对称的帮助,请参阅识别对称 CMK 和非对称 CMK

对于每个卷,Amazon EBS 要求 AWS KMS 生成一个在您指定的 CMK 下加密的唯一数据密钥。Amazon EBS 会将加密数据密钥与卷一起存储。然后,当您将卷连接到 Amazon EC2 实例时,Amazon EBS 会调用 AWS KMS 来解密数据密钥。Amazon EBS 使用管理程序内存中的明文数据密钥来加密卷的所有磁盘 I/O。有关详细信息,请参阅。EBS 加密的工作原理中的适用于 Linux 实例的 Amazon EC2 用户指南或者适用于 Windows 实例的 Amazon EC2 用户指南

Amazon EBS 加密上下文

在其GenerateDataKeyWithoutPlaintextDecrypt请求,Amazon EBS 将加密上下文与用于标识请求中的卷或快照的名称-值对结合使用。加密上下文中的名称不会发生变化。

加密上下文 是一组包含任意非机密数据的键值对。在加密数据的请求中包含加密上下文时,AWS KMS 会以加密方式将加密上下文绑定到加密的数据。要解密数据,您必须传入相同的加密上下文。

适用于所有卷和使用 Amazon EBS 创建的加密快照CreateSnapshot操作时,Amazon EBS 会将卷 ID 作为加密上下文值。在requestParameters字段中,加密上下文与以下内容类似:

"encryptionContext": { "aws:ebs:id": "vol-0cfb133e847d28be9" }

对于使用 Amazon EC2 创建的加密快照CopySnapshot操作时,Amazon EBS 会使用快照 ID 作为加密上下文值。在requestParameters字段中,加密上下文与以下内容类似:

"encryptionContext": { "aws:ebs:id": "snap-069a655b568de654f" }

检测 Amazon EBS 故障

要创建加密 EBS 卷或将卷附加到 EC2 实例,Amazon EBS 和 Amazon EC2 基础设施必须能够使用您为 EBS 卷加密指定的 CMK。当 CMK 无法使用时(例如,当密钥状态不是Enabled-卷创建或卷连接失败。

在这种情况下,亚马逊 EBS 会发送event添加到 Amazon CloudWatch Events,以告知您有关故障的信息。借助 CloudWatch Events,您可以创建规则以触发自动操作,从而响应这些事件。有关更多信息,请参阅 。适用于 Amazon EBS 的 Amazon EBS 的 Amazon CloudWatch EBS中的适用于 Linux 实例的 Amazon EC2 用户指南,特别是以下部分:

要修复这些故障,请确保您为 EBS 卷加密指定的 CMK 处于启用状态。要做到这一点,首先查看 CMK来确定其当前的键状态(状态列 AWS。然后,请参阅以下任一链接中的信息:

使用 AWS CloudFormation 创建加密的亚马逊 EBS 卷

您可以使用AWS CloudFormation创建加密的亚马逊 EBS 卷。有关更多信息,请参阅 。AWS::EC2::Volume中的AWS CloudFormation 用户指南