静态加密:在 Amazon Keyspaces 中的工作方式 - Amazon Keyspaces(针对 Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

静态加密:在 Amazon Keyspaces 中的工作方式

Amazon Keyspaces(针对 Apache Cassandra)静态加密会使用 256 位高级加密标准 (AES-256) 来加密您的数据。这有助于保护您的数据,防止对底层存储进行未经授权的访问。默认情况下,Amazon Keyspaces 表中的所有客户数据都是静态加密的,服务器端加密是透明的,这意味着不需要更改应用程序。

静态加密Amazon Key Management Service(Amazon KMS)来管理用于加密表的加密密钥。创建新表或更新现有表时,可以选择以下选项之一客户主键选项:

  • Amazon 拥有的密钥 — 这是默认加密类型。此密钥归 Amazon Keyspaces 拥有(不另外收费)。

  • 客户托管密钥 — 此密钥存储在您的账户中,由您创建、拥有和管理。您对客户托管密钥拥有完全控制权 (Amazon KMS将收取费用)。

客户主密钥 (CMK)

静态加密使用客户主密钥保护您的所有 Amazon Keyspace 数据。默认情况下,亚马逊 Keyspaces 使用 Amazon 拥有的密钥 ,这是在 Amazon Keyspaces 服务账户中创建和管理的多租户加密密钥。但是,您可以 Keyspaces 用客户托管密钥在您的 Amazon Web Services 账户 . 您可以为密钥空间中的每个表选择不同的 KMS 密钥。为表选择的 CMK 还用于加密其所有元数据和可还原备份。

您可以在创建或更新表时为表选择 CMK。可通过以下方式随时更改表的 CMK:在 Amazon Keyspaces 控制台中或使用更改表网页。切换 KMS 密钥的过程是无缝的,不需要停机或导致服务降级。

密钥层次结构

Amazon Keyspaces 使用密钥层次结构来加密数据。在此密钥层次结构中,CMK 是根键。它用于加密和解密 Amazon Keyspaces 表加密密钥。表加密密钥用于加密 Amazon Keyspaces 内部使用的加密密钥,用于在执行读取和写入操作时对数据进行加密和解密。使用加密密钥层次结构,您可以对 KMS 密钥进行更改,而无需重新加密数据或影响应用程序和正在进行的数据操作。


            使用静态加密对 Amazon Keyspaces 表进行加密。
表密钥

Amazon Keyspaces 表密钥用作密钥加密密钥。Amazon Keyspaces 使用表密钥来保护内部数据加密密钥,这些加密密钥用于对存储在表、日志文件和可还原备份中的数据进行加密。Amazon Keyspaces 会为表中的每个底层结构生成唯一的数据加密密钥。但是,多个表项目可能受相同的数据加密密钥保护。

当您第一次将 CMK 设置为客户管理的密钥时,Amazon KMS将生成数据密钥. 这些区域有:Amazon KMS数据键是指 Amazon Keyspaces 中的表键。

当您访问加密表时,Amazon Keyspaces 会向Amazon KMS以使用 CMK 解密表密钥。然后,它会使用明文表密钥来解密 Amazon Keyspaces 数据加密密钥,并使用明文数据加密密表解密表数据。

Amazon Keyspaces 将表密钥和数据加密密钥使用并存储在Amazon KMS. 它会借助高级加密标准 (AES) 加密和 256 位加密密钥保护所有密钥。然后,它存储加密密密钥及加密数据,以便它们可根据需要用于解密表数据。

表密钥缓存

要避免调用Amazon KMS对每个 Amazon Keyspaces 操作,Amazon Keyspaces 会针对每个连接将明文表密钥缓存在内存中。如果 Amazon Keyspaces 在处于不活动状态 5 分钟后获取缓存表密钥的请求,它会向Amazon KMS解密表密钥。此调用捕获对 KMS 密钥访问策略所做的任何更改Amazon KMS或者Amazon Identity and Access Management(IAM),因为上次请求解密表密钥。

信封加密

如果更改表的客户托管密钥,Amazon Keyspaces 会生成新的表密钥。然后,它使用新的表密钥来重新加密数据加密密钥。它还使用新的表密钥对用于保护可还原备份的先前表密钥进行加密。此过程称为信封加密。这可确保即使轮换客户管理的密钥,您也可以访问可还原的备份。有关信封加密的更多信息,请参阅。信封加密中的Amazon Key Management Service开发人员指南.

Amazon拥有的密钥

Amazon 拥有的密钥 不存储在 Amazon Web Services 账户 . 它们是 KMS 密钥集合的一部分Amazon拥有并管理在多个 Amazon Web Services 账户 .Amazon服务可以使用 Amazon 拥有的密钥 保护您的数据。

您无法查看、管理或使用 Amazon 拥有的密钥 ,或审核它们的使用。但是,您无需执行任何工作或更改任何程序即可保护用于加密您的数据的密钥。

您不会因使用而向您收取月费或使用费。 Amazon 拥有的密钥 ,并且它们不会计入Amazon KMS为您的账户配额。

客户管理的密钥

客户管理的密钥是 Amazon Web Services 账户 您创建、拥有和管理的。您对这些 KMS 密钥拥有完全控制权。

使用客户托管密钥可获得以下功能:

客户托管密钥产生费用对于每个 API 调用,Amazon KMS配额适用于这些 KMS 密钥。有关更多信息,请参阅 。Amazon KMS资源或请求配额.

当您指定客户管理的密钥作为表的根加密密钥时,可恢复的备份将使用创建备份时为表指定的加密密钥进行加密。如果旋转表的 CMK,则密钥包络可确保最新的 CMK 能够访问所有可还原的备份。

Amazon Keyspaces 必须能够访问您的客户管理密钥,才能为您提供对表数据的访问权限。如果加密密钥的状态设置为禁用或计划删除,Amazon Keyspaces 将无法加密或解密数据。因此,您无法对表执行读写操作。当服务检测到您的加密密钥无法访问时,Amazon Keyspaces 会立即发送电子邮件通知以提醒您。您必须在七天内恢复对加密密钥的访问,否则 Amazon Keyspaces 会自动删除您的表。作为预防措施,Amazon Keyspaces 会在删除表之前为您的表数据创建一个可恢复的备份。Amazon Keyspaces 将可恢复备份保留 35 天。35 天后,您将无法再恢复表数据。您不需要为可还原备份付费,而是标准需支付恢复费用. 您可以使用此可还原备份将数据还原到新表中。要启动还原,必须启用用于表的最后一个客户管理密钥,Amazon Keyspaces 必须具有访问权限。

注意

当您创建使用客户管理密钥加密的表时,在创建过程完成之前无法访问或计划删除的表时,会发生错误。创建表操作失败,并向您发送电子邮件通知。

静态加密

在 Amazon Keyspaces 中使用静态加密时,请考虑以下因素。

  • 所有 Amazon Keyspaces 表上都启用了服务器端静态加密,无法禁用。整个表在静态加密,您无法选择特定的列或行进行加密。

  • 默认情况下,Amazon Keyspaces 使用单服务默认密钥 ( Amazon 拥有的密钥 )来加密您的所有表。如果此密钥不存在,将创建该密钥。无法禁用服务默认密钥。

  • 静态加密仅在持久存储介质上的静态(静态)数据时加密。如果对于正在传输的数据或正在使用的数据而言,数据安全性很重要,则必须执行额外措施:

    • 传输中的数据:您在 Amazon Keyspaces 中的所有数据都在传输过程中加密。默认情况下,与 Amazon Keyspaces 的通信将通过安全套接字层 (SSL)/传输层安全性 (TLS) 加密来进行保护。

    • 正在使用的数据:在将数据发送到 Amazon Keyspaces 之前,使用客户端加密来保护您的数据。

    • 客户托管密钥:表中的静态数据始终使用客户管理密钥进行加密。但是,执行多行原子更新的操作会使用 Amazon 拥有的密钥 在处理过程中。这包括范围删除操作和同时访问静态和非静态数据的操作。

  • 单一客户托管密钥可拥有最多 50000 个授予. 与客户托管密钥关联的每个 Amazon Keyspace 表都会消耗 2 个授权。删除表时释放一个授权。第二个授权用于创建表的自动快照,以防止 Amazon Keyspaces 无意中无法访问客户管理的密钥时数据丢失。该授权在删除表 42 天后发放。