Amazon EBS 加密 - Amazon EBS

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

Amazon EBS 加密

使用 Amazon EBS 加密 作为与 EC2 实例关联的 EBS 资源的直接加密解决方案。借助 Amazon EBS 加密,您无需构建、维护和保护自己的密钥管理基础设施。创建加密卷和快照时,Amazon EBS 加密使用 AWS KMS keys 。

加密操作发生在托管 EC2 实例的服务器上,从而确保两者的安全, data-at-rest 以及实例 data-in-transit 与其连接的 EBS 存储之间的安全。

您可以同时将加密卷和未加密卷附加到实例。

EBS 加密的工作原理

您可以加密 EC2 实例的引导卷和数据卷。

在创建加密的 EBS 卷并将其附加到支持的实例类型后,将对以下类型的数据进行加密:

  • 卷中的静态数据

  • 在卷和实例之间移动的所有数据

  • 从卷创建的所有快照

  • 从这些快照创建的所有卷

Amazon EBS 通过数据密钥使用行业标准的 AES-256 数据加密来加密您的卷。数据密钥由您的密钥生成, AWS KMS 然后由 AWS KMS 您的 AWS KMS 密钥加密,然后与您的卷信息一起存储。所有快照以及使用相同 AWS KMS 密钥从这些快照创建的任何后续卷共享相同的数据密钥。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的数据密钥

Amazon EC2 使用加密和解密您的 EBS 卷的方式略有不同,具体取决于您创建加密卷的快照是加密还是未加密。 AWS KMS

快照加密时 EBS 加密的工作原理

当您使用自己拥有的加密快照创建加密卷时,Amazon EC2 会按如下方式 AWS KMS 对您的 EBS 卷进行加密和解密:

  1. Amazon EC2 向发送GenerateDataKeyWithoutPlaintext请求 AWS KMS,指定您为批量加密选择的 KMS 密钥。

  2. 如果使用与快照相同的 KMS 密钥加密卷,则 AWS KMS 使用与快照相同的数据密钥并使用相同的 KMS 密钥对其进行加密。如果使用不同的 KMS 密钥对卷进行加密,则 AWS KMS 会生成新的数据密钥并使用您指定的 KMS 密钥对其进行加密。加密的数据密钥会发送到 Amazon EBS,并与卷元数据存储在一起。

  3. 当您将加密卷附加到实例时,Amazon EC2 会向发送CreateGrant请求, AWS KMS 以便它可以解密数据密钥。

  4. AWS KMS 解密加密的数据密钥并将解密后的数据密钥发送到 Amazon EC2。

  5. Amazon EC2 使用 Nitro 硬件中的明文数据密钥来加密卷的磁盘 I/O。只要卷附加到实例,纯文本数据密钥就会保留在内存中。

快照未加密时 EBS 加密的工作原理

当您从未加密的快照创建加密卷时,Amazon EC2 和 AWS KMS 结合使用对 EBS 卷进行加密和解密,如下所示:

  1. Amazon EC2 向发送CreateGrant请求 AWS KMS,以便它可以加密根据快照创建的卷。

  2. Amazon EC2 向发送GenerateDataKeyWithoutPlaintext请求 AWS KMS,指定您为批量加密选择的 KMS 密钥。

  3. AWS KMS 生成新的数据密钥,使用您为卷加密选择的 KMS 密钥对其进行加密,然后将加密的数据密钥发送到 Amazon EBS,以便与卷元数据一起存储。

  4. Amazon EC2 向发送解密请求 AWS KMS 以解密加密的数据密钥,然后使用该密钥对卷数据进行加密。

  5. 当您将加密卷附加到实例时,Amazon EC2 会向发送CreateGrant请求 AWS KMS,以便它可以解密数据密钥。

  6. 当您将加密卷附加到实例时,Amazon EC2 会向发送解密请求 AWS KMS,指定加密的数据密钥。

  7. AWS KMS 解密加密的数据密钥并将解密后的数据密钥发送到 Amazon EC2。

  8. Amazon EC2 使用 Nitro 硬件中的明文数据密钥来加密卷的磁盘 I/O。只要卷附加到实例,纯文本数据密钥就会保留在内存中。

有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的 Amazon Elastic Block Store(Amazon EBS)如何使用 AWS KMSAmazon EC2 示例 2

不可用的 KMS 密钥如何影响数据密钥

当 KMS 密钥不可用时,您可以立即发现(取决于最终一致性)。KMS 密钥的密钥状态会出现变更,以反映其新情况,并且加密操作中使用 KMS 密钥的所有请求都将失败。

当执行让 KMS 密钥不可用的操作时,不会立即对 EC2 实例或连接的 EBS 卷产生影响。卷附加到实例时,Amazon EC2 使用数据密钥(而不是 KMS 密钥),对所有磁盘 I/O 进行加密。

但是,当加密的 EBS 卷从 EC2 实例分离时,Amazon EBS 将从 Nitro 硬件中删除该数据密钥。下次将加密的 EBS 卷附加到 EC2 实例时,附加会失败,因为 Amazon EBS 无法使用 KMS 密钥来解密卷的加密数据密钥。要再次使用 EBS 卷,您必须使该 KMS 密钥可重新使用。

提示

如果不再希望对存储在 EBS 卷中的数据进行访问,该数据使用由 KMS 密钥生成的数据密钥进行加密,但您打算让其无法使用,我们建议您在让 KMS 密钥不可用之前将 EBS 卷与 EC2 实例分离。

有关更多信息,请参见《AWS Key Management Service 开发人员指南》中的不可用的 KMS 密钥如何影响数据密钥

加密 EBS 资源

您可以通过启用加密来加密 EBS 卷:使用默认加密,或者在创建要加密的卷时启用加密。

加密卷时,可以指定用于加密该卷的对称加密 KMS 密钥。如果未指定 KMS 密钥,则用于加密的 KMS 密钥 取决于源快照的加密状态及其所有权。有关更多信息,请参阅加密结果表

注意

如果您正在使用 API 或 AWS CLI 指定 KMS 密钥,请注意这会异步对 KMS 密钥 AWS 进行身份验证。如果您指定了无效的 KMS 密钥 ID、别名或 ARN,则操作可能会显示完成,但最终失败。

您无法更改与现有快照或卷关联的 KMS 密钥。但是,您可在快照复制操作期间关联另一个 KMS 密钥,从而使生成的已复制快照由新 KMS 密钥 进行加密。

在创建时加密空卷

创建新的空 EBS 卷时,可以通过为特定卷创建操作启用加密来对其进行加密。如果默认情况下启用了 EBS 加密,则会使用 EBS 加密的默认 KMS 密钥 自动加密卷。您也可以为特定的卷创建操作指定不同的对称加密 KMS 密钥。卷从其首次可用时开始加密,因此您的数据始终安全。有关详细步骤,请参阅创建 Amazon EBS 卷

默认情况下,您在创建卷时选择的 KMS 密钥 会对从该卷拍摄的快照加密,并对从这些加密的快照还原的卷加密。您无法从加密卷或快照删除加密,这意味着从加密快照还原的卷或者加密快照的副本始终加密。

加密卷的快照无法公开,但您可以与特定账户共享加密快照。有关详细指导,请参阅共享 Amazon EBS 快照

加密未加密的资源

您无法直接加密现有未加密卷或快照。但是,您可以从未加密的卷或快照创建加密卷或快照。如果预设情况下启用加密,Amazon EBS 将使用 EBS 加密的原定设置 KMS 密钥自动加密新卷和快照。否则,您可以在创建单个卷或快照时启用加密,使用用于 Amazon EBS 加密的原定设置 KMS 密钥或对称客户管理加密密钥。有关更多信息,请参阅 创建 Amazon EBS 卷复制 Amazon EBS 快照

要将快照副本加密到 客户托管密钥,您必须同时启用加密并指定 KMS 密钥,如 复制未加密的快照(未启用默认加密) 中所示。

重要

Amazon EBS 不支持非对称加密 KMS 密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的使用对称和非对称加密 KMS 密钥

在从由 EBS 支持的 AMI 启动实例时,您还可以应用新的加密状态。这是因为 EBS 支持的 AMI 包括可以按照所述进行加密的 EBS 卷的快照。有关更多信息,请参阅将加密与 EBS 支持的 AMI 结合使用

旋转 AWS KMS 钥匙

加密最佳实践建议不要广泛重复使用加密密钥。

要创建用于 Amazon EBS 加密的新加密材料,您可以创建新的客户托管密钥,然后将应用程序更改为使用新的 KMS 密钥。或者,您可以为现有客户管理的密钥启用自动密钥轮换。

当您为客户托管密钥启用自动密钥轮换时,每年会为 KMS 密钥 AWS KMS 生成新的加密材料。 AWS KMS 保存加密材料的所有先前版本,以便您可以继续解密和使用以前使用该 KMS 密钥材料加密的卷和快照。 AWS KMS 在您删除 KMS 密钥之前,不会删除任何轮换的密钥材料。

当您使用轮换的客户托管密钥加密新卷或快照时,将 AWS KMS 使用当前(新)密钥材料。当您使用轮换的客户托管密钥解密卷或快照时,将 AWS KMS 使用用于加密卷或快照的加密材料版本。如果使用先前版本的加密材料对卷或快照进行加密,则 AWS KMS 将继续使用先前版本对其进行解密。 AWS KMS 不会在密钥轮换后重新加密先前加密的卷或快照以使用新的加密材料。它们仍使用最初加密时使用的加密材料进行加密。您可以安全地在应用程序和 AWS 服务中使用轮换的客户托管密钥,而无需更改代码。

注意
  • 只有具有 AWS KMS 创建密钥材料的对称客户托管密钥才支持自动密钥轮换。

  • AWS KMS AWS 托管式密钥 每年自动轮换。您无法启用或禁用 AWS 托管式密钥的密钥轮换。

有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 轮换 KMS 密钥