DynamoDB 静态加密

时间:2021-09-16 04:01:55

DynamoDB 静态加密

存储在 Amazon DynamoDB 中的所有用户数据完全处于静态加密之中。DynamoDB 静态加密使用 AWS Key Management Service (AWS KMS) 中存储的加密密钥来加密您的所有静态数据,提供了增强的安全性。此功能可以帮助减少在保护敏感数据时涉及的操作负担和复杂性。通过静态加密,您可以构建符合严格的加密合规性和法规要求的安全敏感型应用程序。

DynamoDB 静态加密通过在加密表中保护数据来提供额外的一层数据保护,包括其主键、本地和全局二级索引、流、全局表、备份和 DynamoDB Accelerator (DAX) 集群(只要数据存储在持久性的媒体中)。组织政策、行业或*法规以及合规性需求通常要求使用静态加密来提高应用程序的数据安全性。

静态加密与 AWS KMS 集成,以管理用于加密您的表的加密密钥。有关更多信息,请参阅 AWS Key Management Service 概念

创建新表时,可以选择以下客户主密钥 (CMK) 之一加密您的表:

  • AWS 拥有的 CMK – 默认加密类型。此密钥归 DynamoDB 拥有(不另外收费)。

  • AWS 托管的 CMK – 此密钥存储在您的账户中,由 AWS KMS 管理(收取 AWS KMS 费用)。

当您访问加密表时,DynamoDB 会以透明方式解密表数据。您可以在任何给定时间在 AWS 拥有的 CMK 和 AWS 托管的 CMK 之间切换。您不必更改任何代码或应用程序即可使用或管理加密的表。DynamoDB 持续交付您希望的相同个位数毫秒级延迟,并且所有 DynamoDB 查询都在加密数据上无缝执行。

静态加密:工作原理

Amazon DynamoDB 静态加密使用 256 位高级加密标准 (AES-256) 加密您的数据,通过防止对基础存储进行未经授权的访问来帮助保护您的数据。

静态加密与 AWS Key Management Service (AWS KMS) 集成,以管理用于加密您的表的加密密钥。

在现有表上创建新表或切换加密密钥时,可以选择以下客户主密钥 (CMK) 之一:

  • AWS 拥有的 CMK – 默认加密类型。此密钥归 DynamoDB 拥有(不另外收费)。

  • AWS 托管的 CMK – 此密钥存储在您的账户中,由 AWS KMS 管理(收取 AWS KMS 费用)。

AWS 托管的 CMK 提供了以下附加功能:

  • 您可以查看 CMK 及其密钥策略。(您无法更改密钥策略。)

  • 您可以使用 AWS CloudTrail 检查针对 AWS KMS 的 DynamoDB API 调用,从而审核 DynamoDB 表的加密和解密。

AWS 托管的 CMK

静态加密自动与 AWS KMS集成,以管理用于加密表的适用于 DynamoDB (aws/dynamodb) 的 AWS 托管 CMK。如果在您创建加密的 DynamoDB 表时,AWS 托管 CMK 不存在,则 AWS KMS 会自动为您创建一个新密钥。此密钥将用于未来创建的加密表。AWS KMS 将安全、高度可用的硬件和软件结合起来,以提供可针对云扩展的密钥管理系统。

注意

除非对存储在您的 AWS KMS 账户中的 AWS 托管 CMK 有访问权限,否则 Amazon DynamoDB 无法读取您的表数据。DynamoDB 使用信封加密和密钥层次结构来加密数据。您的 AWS KMS 加密密钥用于加密该密钥层次结构的根密钥。有关更多信息,请参阅 AWS Key Management Service Developer Guide 中的信封加密

DynamoDB 不会为每一个 DynamoDB 操作调用 AWS KMS。对于具有活动流量的每个客户端连接,将每 5 分钟刷新一次密钥。