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

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

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

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

Amazon EBS 加密

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

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

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

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

使用 CMK 和数据密钥

当您 时创建加密 Amazon EBS 卷,您可以指定Amazon KMS客户主密钥 (CMK)。默认情况下,亚马逊 EBS 使用Amazon托管 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

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

Amazon EBS 加密上下文

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

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

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

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

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

"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 CloudWatch Events EBS 的 Amazon EBS中的适用于 Linux 实例的 Amazon EC2 用户指南,尤其是以下部分:

要修复这些故障,请确保您为 EBS 卷加密指定的 CMK 处于启用状态。为此,请先查看 CMK 以确定其当前密钥状态 ( 中的 StatusAmazon Web Services Management Console 列)。然后,请参阅以下任一链接中的信息:

使用Amazon CloudFormation要创建加密 Amazon EBS 卷

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