静态加密:工作原理 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

静态加密:工作原理

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

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

注意

2022年5月,将轮换时间表 Amazon 托管式密钥 从每三年(约1,095天) Amazon KMS 改为每年(约365天)。

新 Amazon 托管式密钥 版本在创建一年后自动轮换,此后大约每年轮换一次。

现有 Amazon 托管式密钥 人员在最近一次轮换一年后自动轮换,此后每年轮换。

Amazon 拥有的密钥

Amazon 拥有的密钥 未存储在您的 Amazon 账户中。它们是 KMS 密钥集合的一部分,这些密钥 Amazon 拥有并管理,可在多个 Amazon 账户中使用。 Amazon 服务可以 Amazon 拥有的密钥 用来保护您的数据。 Amazon 拥有的密钥 DynamoDB 使用的版本每年轮换一次(大约 365 天)。

您无法查看、管理 Amazon 拥有的密钥、使用或审核其使用情况。但是无需执行任何工作或更改任何计划即可保护用于加密数据的密钥。

您无需支付月费或使用费 Amazon 拥有的密钥,也不会计入您账户的 Amazon KMS 配额。

Amazon 托管式密钥

Amazon 托管式密钥 是您账户中的 KMS 密钥,由与集成的 Amazon 服务代表您创建、管理和使用 Amazon KMS。您可以查看账户中的 Amazon 托管式密钥 、查看其密钥策略以及在 Amazon CloudTrail 日志中审核其使用情况。但是无法管理这些 KMS 密钥或更改其权限。

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

有关管理权限的更多信息 Amazon 托管式密钥,请参阅《Amazon Key Management Service 开发人员指南》 Amazon 托管式密钥中的授权使用

客户管理密钥

客户托管密钥是您在 Amazon 账户中创建、拥有和管理的 KMS 密钥。您可以完全控制这些 KMS 密钥,包括建立和维护其密钥策略、IAM 策略和授权;启用和禁用它们;轮换加密材料;添加标签;创建用于引用的别名;以及计划删除。有关管理客户管理型密钥权限的更多信息,请参阅客户管理型密钥策略

如果指定客户托管密钥作为表级加密密钥,DynamoDB 表、本地和全局二级索引以及流将使用同一客户托管密钥加密。按需备份使用创建备份时指定的表级加密密钥进行加密。更新表级加密密钥不会更改与现有按需备份关联的加密密钥。

将客户托管密钥的状态设置为禁用或计划删除,将使所有用户和 DynamoDB 服务无法加密或解密数据以及对表执行读写操作。DynamoDB 必须有权访问加密密钥,确保您可以继续访问表并防止数据丢失。

如果禁用客户托管密钥或计划删除,则表状态将变为无法访问。为了确保可以继续使用表,必须在七天内提供对指定加密密钥的 DynamoDB 访问权限。一旦服务检测到您的加密密钥无法访问,DynamoDB 会立即向您发送电子邮件通知以提醒您。

注意
  • 如果 DynamoDB 服务无法访问客户托管密钥超过七天,则表将被存档,无法再访问。DynamoDB 为表创建按需备份,并收取费用。可以使用此按需备份将数据还原到新表。要还原,必须启用表上最后一个客户托管密钥,DynamoDB 必须具有访问权限。

  • 如果用于加密全局表副本的客户托管密钥无法访问,DynamoDB 将从副本组删除此副本。检测到客户托管密钥无法访问 20 小时后,副本将不会被删除,停止从该区域复制。

有关更多信息,请参阅 启用密钥删除密钥

使用注意事项 Amazon 托管式密钥

除非可以访问存储在您账户中的 KMS 密钥,否则 Amazon DynamoDB 无法读取您的表数据。 Amazon KMS DynamoDB 使用封装加密和密钥层次结构加密数据。您的 Amazon KMS 加密密钥用于加密此密钥层次结构的根密钥。有关更多信息,请参阅 开发人员指南 中的Amazon Key Management Service 信封加密

您可以使用 Amazon CloudTrail 和 Amazon CloudWatch Logs 来跟踪 DynamoDB 代表您 Amazon KMS 发送的请求。有关更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的监控 DynamoDB 与 Amazon KMS 的交互

DynamoDB 不会调用每个 DynamoDB 操作 Amazon KMS 。每个有活跃流量的来电者每 5 分钟刷新一次密钥。

确保您配置 SDK 反复使用连接。否则,您将遇到 DynamoDB 必须为每个 DynamoDB 操作重新建立新的 Amazon KMS 缓存条目所带来的延迟。此外,您可能不得不面对更高的 CloudTrail费用 Amazon KMS 和成本。例如,要使用 Node.js SDK 执行此操作,可以创建开启 keepAlive 的新 HTTPS 代理。有关更多信息,请参阅《Amazon SDK for JavaScript 开发人员指南》在 Node.js 中配置 keepAlive