

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

# 使用 AWS 数据库加密 SDK 带有 AWS KMS
<a name="using-kms"></a>


****  

|  | 
| --- |
| 我们的客户端加密库已重命名为 AWS 数据库加密 SDK。本开发人员指南仍提供有关 [DynamoDB 加密客户端](legacy-dynamodb-encryption-client.md)的信息。 | 

要使用 AWS 数据库加密 SDK，您需要配置[密钥环](keyrings.md)并指定一个或多个包装密钥。如果您没有密钥基础设施，我们建议使用 [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/)。

 AWS 数据库加密 SDK 支持两种类型的 AWS KMS 密钥环。传统的 [AWS KMS 密钥环](use-kms-keyring.md)使用 [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys) 生成、加密和解密数据密钥。您可以使用对称加密（`SYMMETRIC_DEFAULT`）或非对称 RSA KMS 密钥。由于 AWS 数据库加密 SDK 使用唯一的数据密钥对每条记录进行加密和签名，因此每次加密和解密操作都必须调 AWS KMS 用密 AWS KMS 钥环。对于需要最大限度地减少调用次数的应用程序 AWS KMS， AWS 数据库加密 SDK 还支持[AWS KMS 分层密钥环](use-hierarchical-keyring.md)。分层密钥环是一种加密材料缓存解决方案，它使用 AWS KMS 保存在Amazon DynamoDB表中的受保护*分支密钥*，然后在本地缓存用于加密和解密操作的分支密钥材料，从而减少 AWS KMS 调用次数。我们建议尽可能使用 AWS KMS 钥匙圈。

要与之交互 AWS KMS， AWS 数据库加密 SDK 需要使用以下 AWS KMS 模块 适用于 Java 的 AWS SDK。

**要准备使用 AWS 数据库加密 SDK 带有 AWS KMS**
+ 创建对称加密 AWS KMS key。有关帮助信息，请参阅《AWS Key Management Service 开发人员指南**》中的[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。
**提示**  
要 AWS KMS key 以编程方式使用，您需要的 Amazon 资源名称 (ARN)。 AWS KMS key要获得有关查找 AWS KMS key的 ARN 的帮助，请参阅《AWS Key Management Service 开发人员指南**》中的[查找密钥 ID 和 ARN](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn)。