

# 静态 DynamoDB 加密
<a name="EncryptionAtRest"></a>

Amazon DynamoDB 中存储的所有用户数据在静态状态下进行完全加密。DynamoDB 静态加密使用存储在 [Amazon Key Management Service (Amazon KMS)](https://www.amazonaws.cn/kms/) 中的加密密钥，对所有静态数据加密，增强安全性。此功能减少保护敏感数据时涉及的操作负担和复杂性。利用静态加密，可以构建符合严格加密合规性和法规要求的安全敏感型应用程序。

如果数据存储在耐用介质中，DynamoDB 静态加密可提供额外的数据保护，始终保护加密表中的数据 — 包括主键、本地和全局二级索引、流、全局表、备份和 DynamoDB Accelerator (DAX) 集群。组织政策、行业或政府法规以及合规性需求通常要求使用静态加密增强数据安全性。有关数据库应用程序加密的更多信息，请参阅[Amazon 数据库加密 SDK](https://docs.amazonaws.cn/database-encryption-sdk/latest/devguide/what-is-database-encryption-sdk.html)。

静态加密集成 Amazon KMS，管理用于加密表的加密密钥。有关密钥类型和状态的更多信息，请参阅《Amazon Key Management Service 开发人员指南》**中的 [Amazon Key Management Service 概念](https://docs.amazonaws.cn/kms/latest/developerguide/key-state.html#key-state-cmk-type)。

创建新表时，可以选择以下 Amazon KMS key 类型之一来加密表：您可以随时在这些密钥类型之间切换。
+ **Amazon 拥有的密钥 –** 默认加密类型。此密钥归 DynamoDB 拥有（不另外收费）。
+ **Amazon 托管式密钥 –** 此密钥存储在您的账户中，由 Amazon KMS 管理（收取 Amazon KMS 费用）。
+ **客户管理的密钥 -** 此密钥存储在您的账户中，由您创建、拥有和管理。您对 KMS 密钥拥有全部控制权（收取 Amazon KMS 费用）。

有关密钥类型的更多信息，请参阅 [客户密钥和 Amazon 密钥](/kms/latest/developerguide/concepts.html#key-mgmt)。

**注意**  
创建启用静态加密的新 DAX 集群时，将使用 Amazon 托管式密钥 加密集群中的静态数据。
如果表具有排序键，则标记范围边界的一些排序键将以明文形式存储在表元数据中。

访问加密表时，DynamoDB 会以透明方式解密表数据。无需更改任何代码或应用程序即可使用或管理加密表。DynamoDB 继续提供您预期的个位数毫秒级延迟，所有 DynamoDB 查询可以无缝处理加密数据。

可以使用 Amazon Web Services 管理控制台、Amazon Command Line Interface (Amazon CLI) 或 Amazon DynamoDB API 在创建新表指定加密密钥，或切换现有表加密密钥。要了解如何操作，请参阅 [管理 DynamoDB 中的加密表](encryption.tutorial.md)。

使用 Amazon 拥有的密钥 静态加密不另外收取费用。但 Amazon KMS 将收取 Amazon 托管式密钥 和客户托管密钥的费用。有关定价的更多信息，请参阅 [Amazon KMS 定价](https://www.amazonaws.cn/kms/pricing)。

所有 Amazon 区域提供 DynamoDB 静态加密，包括 Amazon 中国（北京）和 Amazon 中国（宁夏）区域以及 Amazon GovCloud（美国）区域。有关更多信息，请参阅[DynamoDB 静态加密：工作原理](encryption.howitworks.md)和[DynamoDB 静态加密使用注意事项](encryption.usagenotes.md)。