静态加密与传输加密和保护相关帐户,密码和加密密钥的良好安全策略结合使用时,可以帮助确保符合HIPAA,PCI-DSS和FERPA等安全和隐私标准。
3.2版中的新功能。
企业功能
仅在MongoDB Enterprise中可用。
重要
仅适用于WiredTiger存储引擎。
MongoDB Enterprise 3.2为WiredTiger存储引擎引入了本机加密选项。此功能允许MongoDB加密数据文件,以便只有具有解密密钥的各方才能解码和读取数据。
在版本4.0中更改
Windows上的MongoDB Enterprise不再支持AES256-GCM
。该密码现在仅在Linux上可用。
如果启用了加密,则MongoDB Enterprise使用的默认加密模式是AES256-CBC
通过OpenSSL(或密码块链接模式下的256位高级加密标准)。AES-256使用对称密钥;即使用相同的密钥来加密和解密文本。适用于Linux的MongoDB Enterprise还支持经过身份验证的加密
AES256-GCM
(或Galois / Counter模式下的256位高级加密标准)。还可以使用FIPS模式加密。
AES256-GCM和文件系统备份
对于使用加密模式的加密存储引擎AES256-GCM
,AES256-GCM
要求每个进程都使用唯一的计数器块值和密钥。
对于
配置了密码的加密存储引擎AES256-GCM
:
从4.2开始,如果您从通过“热”备份(即mongod
正在运行)获取的文件中还原,则MongoDB可以在启动时检测到“脏”密钥并自动翻转数据库密钥以避免IV(初始化向量)重用。
但是,如果您从通过“冷”备份获取的文件中恢复(即mongod
未运行),则MongoDB无法在启动时检测到“脏”密钥,并且IV的重用会使机密性和完整性保证无效。
从4.2开始,为避免从冷文件系统快照还原后重新使用密钥,MongoDB添加了一个新的命令行选项--eseDatabaseKeyRollover
。使用该--eseDatabaseKeyRollover
选项启动后
,mongod
实例将滚动使用AES256-GCM
密码配置的数据库密钥
并退出。
小费
AES256-GCM
加密模式,请不要复制数据文件或从文件系统快照(“热”或“冷”)还原。数据加密过程包括:
加密在存储层中透明地进行;即,从文件系统的角度来看,所有数据文件都经过完全加密,并且数据仅以未加密状态存在于内存中和传输过程中。
要加密MongoDB的所有网络流量,可以使用TLS / SSL(传输层安全性/安全套接字层)。请参阅 为TLS / SSL和 客户端的TLS / SSL配置配置mongod和mongos。
重要
加密密钥的安全管理至关重要。
数据库密钥在服务器内部,并且仅以加密格式分页到磁盘。在任何情况下,MongoDB都不会将主密钥分页到磁盘。
只有主密钥在服务器外部(即与数据密钥和数据库密钥保持隔离),并且需要外部管理。为了管理主密钥,MongoDB的加密存储引擎支持两个密钥管理选项:
要配置MongoDB进行加密并使用两个密钥管理选项之一,请参阅 配置加密。
加密不是复制的一部分:
尽管您可以为节点重用相同的密钥,但是MongoDB建议为每个节点使用单独的密钥以及使用传输加密。
有关详细信息,请参见旋转加密密钥。
3.4版中的新功能:仅在MongoDB Enterprise中可用
日志文件未作为MongoDB加密存储引擎的一部分进行加密。阿mongod
与运行记录
可以输出潜在的敏感信息登录文件作为正常操作的一部分,这取决于所配置的日志详细。
MongoDB 3.4 Enterprise提供了security.redactClientLogData
防止潜在敏感信息进入
mongod
流程日志的设置。redactClientLogData
减少日志中的详细信息,并使日志诊断复杂化。
有关更多信息,请参见日志编辑手册。