3.2版中的新功能。
企业功能
仅在MongoDB Enterprise中可用。
重要
仅适用于WiredTiger存储引擎。
在版本4.0中更改
Windows上的MongoDB Enterprise不再支持AES256-GCM
。该密码现在仅在Linux上可用。
MongoDB Enterprise 3.2为WiredTiger存储引擎引入了本机加密选项。对于存储加密,加密密钥的安全管理至关重要。
只有主密钥在服务器外部,并且需要外部管理。为了管理主密钥,MongoDB的加密存储引擎支持两个密钥管理选项:
以下教程概述了配置MongoDB进行加密和密钥管理的过程。
MongoDB Enterprise通过兼容的密钥管理设备支持密钥的安全传输。使用密钥管理器允许将密钥存储在密钥管理器中。
MongoDB Enterprise支持符合密钥管理互操作性协议(KMIP)的密钥管理设备的密钥安全传输。任何支持KMIP的设备供应商都应该兼容。
有关MongoDB认证合作伙伴的列表,请参阅合作伙伴列表。要查看安全性合作伙伴,选择“安全” 技术从过滤器,而“认证” 认证的过滤器。
推荐的
使用密钥管理器符合法规密钥管理准则,例如HIPAA,PCI-DSS和FERPA,建议在本地密钥管理上使用。
要创建新密钥,请mongod
从mongod
以下选项开始连接到密钥管理器
:
包括配置所需的其他选项。例如,如果您希望远程客户端连接到您的部署,或者您的部署成员在不同的主机上运行,请指定
--bind_ip
。有关更多信息,请参见
Localhost绑定兼容性更改。
以下操作在密钥管理器中创建一个新的主密钥,该主密钥
mongod
用于加密mongod
为每个数据库生成的密钥。
连接到KMIP服务器时,mongod
验证指定的内容是否与KMIP服务器提供的证书--kmipServerName
中的“使用者备用名称” SAN
(如果SAN
不存在,则为“通用名称” CN
)匹配。[1]如果SAN
存在,mongod
则与匹配CN
。如果主机名与SAN
(或CN
)不匹配
,mongod
则将无法连接。
要验证密钥创建和使用是否成功,请检查日志文件。如果成功,该过程将记录以下消息:
也可以看看
您可以使用KMIP服务器创建和管理的现有主密钥。要使用现有密钥,请mongod
从mongod
以下选项开始连接到密钥管理器:
--enableEncryption
--kmipServerName
--kmipPort
--kmipServerCAFile
--kmipClientCertificateFile
--kmipKeyIdentifier
包括配置所需的其他选项。例如,如果您希望远程客户端连接到您的部署,或者您的部署成员在不同的主机上运行,请指定
--bind_ip
。有关更多信息,请参见
Localhost绑定兼容性更改。
连接到KMIP服务器时,mongod
验证指定的内容是否与KMIP服务器提供的证书--kmipServerName
中的“使用者备用名称” SAN
(如果SAN
不存在,则为“通用名称” CN
)匹配。[1]如果SAN
存在,mongod
则与匹配CN
。如果主机名与SAN
(或CN
)不匹配,mongod
则将无法连接。
也可以看看
[1] | (1,2)在MongoDB中4.2开始,执行SAN的比较时,MongoDB的支持DNS名或IP地址的比较。在以前的版本中,MongoDB仅支持DNS名称的比较。 |
重要
使用密钥文件方法不符合大多数法规密钥管理准则,并且要求用户安全地管理自己的密钥。
密钥文件的安全管理至关重要。
要使用密钥文件进行加密,您必须具有一个base64编码的密钥文件,其中包含单个16或32个字符串。密钥文件只能由mongod
进程的所有者访问。
使用16或32个字符串创建base64编码的密钥文件。您可以使用任何喜欢的方法来生成编码的密钥文件。例如,
更新文件权限。
要使用密钥文件,请从mongod
以下选项开始:
--enableEncryption
,--encryptionKeyFile <path to keyfile>
,包括配置所需的其他选项。例如,如果您希望远程客户端连接到您的部署,或者您的部署成员在不同的主机上运行,请指定
--bind_ip
。有关更多信息,请参见
Localhost绑定兼容性更改。
验证加密密钥管理器是否已成功使用密钥文件初始化。如果操作成功,则该过程将记录以下消息:
也可以看看