Comment on page
安全检查列表
MongoDB还为如何保护MongoDB部署提供了一个建议的操作列表即[安全检查列表]((https://docs.mongodb.com/manual/administration/security-checklist/))
最后更新于:2019-12-05
这个文档提供了一个保护MongoDB应该实施的安全措施列表。这个列表并不是完整无遗的。
生产环境前的检查列表/注意事项
启动访问控制和指定身份认证的机制。你可以使用MongoDB的SCRMA或者x.509身份认证机制或者集成你已经使用的Kerberos/LDAP基础设施。身份认证要求所有的客户端和服务端在连接到系统之前提供有效的凭证。
首先创建一个管理员用户,然后再创建其他的用户。为每一人/应用程序创建唯一的用户以访问系统。
遵循最小权限原则。为一组用户创建他们所需的确切访问权限的角色。然后创建用户并且仅为他们分配执行操作所需的角色。一个用户可以是个人或者一个客户端程序。
提示:一个用户在不同数据库可以拥有不同的权限。如果一个用户要求在多个数据库的权限,使用有多个可授予适当数据库权限的角色来创建一个单一用户,而不是给不同的数据库创建多个用户。
从4.0版本开始,MongoDB使用操作系统原生的TLS/SSL库:
操作系统 | 使用的系统库 |
---|---|
Linux/BSD | OpenSSL |
macOS | Secure Transport |
注意
如果你没有使用WiredTiger的静态加密,MongoDB的数据应该在每台主机上使用文件系统、设备或物理加密(例如dm-crypt)。使用文件系统权限保护MongoDB数据。MongoDB数据包括数据文件、配置文件、审计日志以及秘钥文件。
将日志收集到一个中央日志存储区。这些日志包含了DB身份认证尝试及其源IP地址.
确保MongoDB运行在受信任的网络环境中并且配置防火墙或者安全组来控制MongoDB实例的入站和出站流量。
只允许受信任的客户端访问MongoDB实例所在的网络接口和端口。例如,使用白名单机制允许受信任的IP地址访问。
注意从MongoDB 3.6开始,MongoDB的二进制文件:mongod
和mongos
会默认绑定在localhost
上。MongoDB 2.6到3.4版本,只有官方MongoDB RPM(Red Hat、CentOS、Fedora Linux和衍生品)和DEB(Debian、Ubuntu和衍生品)包中的二进制文件默认绑定在localhost。了解更多关于这个改变的信息,请参阅localhost绑定兼容变更
请参阅:
禁用直接SSH root访问。
跟踪对数据库配置和数据的访问和更改。MongoDB企业版包含了一个系统审计工具,可以记录MongoDB实例上的系统事件(例如用户操作、连接事件)。这些审计记录使审查分析得以进行并且允许管理员去验证适当的控制。可以设置过滤器来记录特定的事件,例如身份认证事件。
使用一个专用的操作系统账户运行MongoDB进程。确保这个账户除了访问数据,没有不必要的权限。
确保你的信息安全管理的系统策略和程序在你安装的MongoDB上生效,包括执行以下操作:
- 定期对你的设备打补丁并且检查操作指南
- 检查策略及流程变更,尤其是网络规则的更改,以防无意中将MongoDB暴露在互联网。
- 检查MongoDB数据库用户并定期进行轮换。
译者:傅立
最近更新 2yr ago