DynamoDB 加密吗?
加密。所有 DynamoDB 数据默认进行静态加密,使用存储在 AWS Key Management Service(KMS)中的加密密钥,且加密无法关闭。你选择密钥类型——AWS 拥有的密钥(默认,免费)、AWS 托管的密钥,或客户托管的密钥——而传输中的数据由 HTTPS/TLS 保护。
静态加密涵盖什么
加密适用于加密表存储在持久介质上的一切:表本身(包括其主键)、本地和全局二级索引、流、全局表以及备份。请注意,如果你的表有排序键,一些标记范围边界的排序键会以明文形式存储在表元数据中。
三种密钥选项
- AWS 拥有的密钥——默认项。由 DynamoDB 拥有和管理,不产生额外费用。
- AWS 托管的密钥——存储在你的账户中并由 AWS KMS 管理(会产生 KMS 费用)。
- 客户托管的密钥——由你创建、拥有和轮换,对访问拥有完全控制(会产生 KMS 费用)。
你可以随时通过控制台、CLI 或 API 在各密钥类型之间切换。
对你的应用是透明的
DynamoDB 在你读取时透明地解密数据。使用加密表无需更改任何代码,查询照常运行,延迟保持在相同的个位数毫秒级范围内。若要在各个属性值离开你的应用之前对其进行端到端保护,AWS 还通过 AWS Database Encryption SDK 提供客户端加密。
深入了解
备份也是加密的——在备份与 PITR 指南中了解它们如何工作,用定价计算器估算表成本(KMS 另行计费),并下载 DynoTable 来浏览你的加密表——解密由 AWS 在数据到达任何客户端之前完成。
参考资料
- DynamoDB encryption at rest — Amazon DynamoDB Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- What is the AWS Database Encryption SDK? — AWS Database Encryption SDK Developer Guide
最后核实于 2026-07-13,依据上方所链接的 AWS 官方文档。