本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
静态加密:它在 Amazon Keyspaces 中的工作原理
Amazon Keyspaces(for r r r r r r r r r r r r r r)静态加密使用 256 位高级加密标准 (AES-256) 加密数据。这有助于保护您的数据,防止对底层存储进行未经授权的访问。默认情况下,Amazon Keyspaces 表中的所有客户数据都是静态加密的,服务器端加密是透明的,这意味着无需更改应用程序。
静态加密集成 Amazon Key Management Service (Amazon KMS),管理用于加密表的加密密钥。创建新表或更新现有表时,可以选择以下Amazon KMS关键选项之一:
-
Amazon 拥有的密钥— 这是默认的加密类型。此密钥归Amazon Keyspaces 拥有(不另外收费)。
-
客户托管密钥 — 此密钥存储在账户中,由您创建、拥有和管理。您对客户托管密钥拥有全部控制权(Amazon KMS收取费用)。
- Amazon KMS密钥(KMS 密钥)
-
静态加密使用密钥保护您的所有 Amazon Keyspaces 数据。Amazon KMS默认情况下,Amazon Keyspaces 使用在 Amazon Keyspaces 服务账户中创建并管理的多租户加密密钥。Amazon 拥有的密钥
但是,您可以使用您的客户托管密钥对您的 Amazon Keyspaces 表进行加密Amazon Web Services 账户。您可以为密钥空间中的每个表选择不同的 KMS 密钥。您为表选择的 KMS 密钥也可用于加密其所有元数据和可还原备份。
您可以在创建或更新表时为表选择 KMS 密钥。您可以通过以下方式随时更改表的 KMS 密钥:在 Amazon Keyspaces 控制台中或使用 ALTER TAB LE 语句。切换 KMS 密钥的过程是无缝的,不需要停机或导致服务降级。
- 密钥层次结构
-
Amazon Keyspaces 使用密钥层次结构加密数据。在此密钥层次结构中,KMS 密钥是根密钥。它用于加密和解密 Amazon Keyspaces 表加密密钥。表加密密钥用于加密 Amazon Keyspaces 内部使用的加密密钥,用于在执行读写操作时加密和解密数据。
使用加密密钥层次结构,您可以更改 KMS 密钥,无需重新加密数据或影响应用程序和持续的数据操作。
- 表格密钥
Amazon Keyspaces 表密钥用作密钥加密密钥。Amazon Keyspaces 使用表密钥保护用于加密存储在表、日志文件和可还原备份中的数据的内部数据加密密钥。Amazon Keyspaces 为表中的每个底层结构生成唯一的数据加密密钥。但是,多个表行可能受相同的数据加密密钥保护。
首次将 KMS 密钥设置为客户托管密钥时,Amazon KMS会生成数据密钥。Amazon KMS数据键是指 Amazon Keyspaces 中的表键。
如果访问加密表,Amazon Keyspaces 会向发送请求Amazon KMS以使用 KMS 密钥解密表密钥。然后,它使用纯文本表密钥解密 Amazon Keyspaces 数据加密密钥,并使用纯文本数据加密密钥解密表数据。
Amazon Keyspaces 在外部使用和存储表密钥和数据加密密钥Amazon KMS。它会借助高级加密标准
(AES) 加密和 256 位加密密钥保护所有密钥。然后,它将加密的密钥与加密数据一起存储,以便它们可用于按需解密表数据。 - 表密钥缓存
为了避免Amazon KMS针对每个 Amazon Keyspaces 操作调用,Amazon Keyspaces 会针对每个连接将明文表密钥缓存在内存中。如果 Amazon Keyspaces 在处于不活动状态 5 分钟后获得缓存表密钥的请求,它会向发送新请求Amazon KMS以解密表密钥。此调用捕获自上次请求解密表密钥以来对Amazon KMS或Amazon Identity and Access Management (IAM) 中的 KMS 密钥的访问策略所做的任何更改。
- 信封加密
-
如果更改表的客户托管密钥,Amazon Keyspaces 会生成新的表密钥。然后,它使用新的表密钥重新加密数据加密密钥。它还使用新的表密钥来加密以前用于保护可恢复备份的表密钥。此过程称为信封加密。这样可以确保即使您轮换客户管理的密钥,您也可以访问可恢复的备份。有关信封加密的更多信息,请参阅Amazon Key Management Service开发人员指南中的信封加密。
Amazon拥有的钥匙
Amazon 拥有的密钥不存储在你的Amazon Web Services 账户. 它们是Amazon拥有并管理以用于多个中的 KMS 密钥集合的一部分Amazon Web Services 账户。 Amazon服务可用于Amazon 拥有的密钥保护您的数据。
您无法查看、管理或使用Amazon 拥有的密钥,或者审计其使用情况。但是,您无需执行任何工作或更改任何计划即可保护用于加密数据的密钥。
使用,无需支付月费或使用费Amazon 拥有的密钥,它们不会计入账户的Amazon KMS配额。
客户托管密钥
客户托管密钥是在您Amazon Web Services 账户的中创建、拥有和管理的密钥。您对这些 KMS 密钥拥有全部控制权。
使用客户托管密钥可获得以下功能:
客户托管密钥针对每个 API 调用会产生费用
如果指定客户托管密钥作为表的根加密密钥,可还原备份将使用创建备份时为表指定的同一加密密钥进行加密。如果表的 KMS 密钥被轮换,密钥封装可确保最新的 KMS 密钥可以访问所有可恢复的备份。
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 中的所有数据都在传输中加密。默认情况下,通过安全套接字层 (SSL) /传输层安全性 (TLS) /传输层安全性 (TLS) 保护与 Amazon Keyspaces 的通信。
-
正在使用的数据:在将数据发送到 Amazon Keyspaces 之前,使用客户端加密保护数据。
客户管理的密钥:表中的静态数据始终使用客户管理的密钥进行加密。但是,对多行执行原子更新的操作会在处理Amazon 拥有的密钥过程中临时使用对数据进行加密。这包括范围删除操作和同时访问静态和非静态数据的操作。
-
单个客户管理的密钥最多可以获得 50,000 次授权。与客户托管密钥关联的每个 Amazon Keyspaces 表都消耗 2 次授权。删除表后,将发放一项授权。第二项授权用于创建表的自动快照,以防在 Amazon Keyspaces 无意中失去对客户托管密钥的访问权限时丢失数据。该补助金在删除该表 42 天后发放。