Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

静态加密:工作原理

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 分钟刷新一次密钥。

请确保您将开发工具包配置为重用连接。否则,由于 DynamoDB 必须为每个 DynamoDB 操作重新建立新的 AWS KMS 缓存条目,您将经历延迟,并可能需要面临更高的 AWS KMS 和 CloudTrail 成本。例如,要使用 Node.js 开发工具包完成此操作,您可以创建一个新的 HTTPS 代理并将 keepAlive 保持开启。有关更多信息,请参阅 AWS SDK for JavaScript 开发人员指南中的在 Node.js 中配置 maxSockets

有关管理 AWS 托管 CMK 的权限的更多信息,请参阅授权使用服务默认密钥

您可以使用 AWS CloudTrail 和 Amazon CloudWatch Logs 来跟踪 DynamoDB 代表您发送到 AWS KMS 的请求。有关更多信息,请参阅使用 AWS KMS 监控 DynamoDB 交互

本页内容: