本教程向您展示如何构建一个应用程序来实现MongoDB Queryable Encryption功能,以自动加密和解密文档字段。
本教程包括以下部分:
设置项目:安装驾驶员和加密依赖项,配置环境变量,并使用所需的应用程序变量创建项目文件。
配置加密:创建客户主密钥( 集合扫描 ),配置KMS提供商和自动加密设置,以及创建启用加密的客户端和集合。
执行加密操作:插入具有加密字段的文档,对加密字段查询,然后运行应用程序以查看解密结果。
在下拉菜单中选择您的驾驶员语言,学习;了解如何创建自动加密和解密文档字段的应用程序。
重要
请勿在生产环境中使用此示例应用程序
本教程中的操作说明包括在不安全的环境中存储加密密钥,因此您不应在生产环境中使用此应用程序的未修改版本。在生产环境中使用此应用程序存在以下风险:未经授权访问加密密钥或丢失解密数据所需的密钥。本教程旨在演示如何使用 Queryable Encryption,而无需设置密钥管理系统。
您可以使用密钥管理系统将加密密钥安全地存储在生产环境中。KMS 是一种远程服务,可安全地存储和管理加密密钥。要了解如何设置使用 KMS 且支持 Queryable Encryption 的应用程序,请参阅 Queryable Encryption 教程。
开始之前
在开始本教程之前,请完成以下先决条件步骤:
从MongoDB下载中心下载自动加密共享库。导航至 MongoDB Enterprise Server Download部分并选择以下选项:
在 Version 下拉菜单中,选择标记为
"current"的版本。在 Platform 下拉列表中,选择您的平台。
在 Package 下拉菜单中,选择
crypt_shared。
提取存档文件并保存共享库文件的路径以供将来使用。
注意
查询分析组件
自动加密共享库是
mongocryptd的首选替代方案,并且不需要生成新进程来执行自动加密。本教程使用自动加密共享库。配置 MongoDB Atlas 集群或本地副本集部署,并保存连接字符串以备将来使用。要了解更多信息,请参阅入门教程。
确保数据库用户对以下命名空间具有
dbAdmin权限:encryption.__keyVaultmedicalRecordsdatabase
完整应用程序代码
步骤
在本教程中,您创建了一个应用程序,用于自动加密和解密 patients集合中的 ssn 和 billing 字段。由于应用程序使用加密客户端,因此查询会返回解密的字段值。未配置加密密钥的客户端将看到这些字段的加密值。
了解详情
要查看有关使用远程KMS进行生产就绪的Queryable Encryption的教程,请参阅Queryable Encryption教程。
要学习;了解Queryable Encryption 的工作原理,请参阅Queryable Encryption基础知识。
如需详细了解本指南中提到的主题,请参阅以下链接: