MongoDB 安全设置的要点包括以下几个方面:
-
启用账户认证:
- 打开配置文件
mongod.conf
,设置auth=true
。如果配置文件为 YAML 格式,则在security
选项下设置authorization: enabled
。
- 打开配置文件
-
创建和管理用户:
- 创建新的用户并分配适当的角色。例如,创建一个只读用户:
db.createUser({ user: "readonlyUser", pwd: "readonlyPass", roles: [ { role: "read", db: "yourDatabase" } ] })
- 修改现有用户使其为只读:
db.updateUser("existingUser", { roles: [ { role: "read", db: "yourDatabase" } ] }) ```。
- 创建新的用户并分配适当的角色。例如,创建一个只读用户:
-
修改默认端口:
- 修改
mongod.conf
中的port
设置为所需的端口号,例如port = 27017
。
- 修改
-
网络访问控制:
- 修改
mongod.conf
,添加bind_ip
配置以限制访问来源。例如,只允许本机访问:net: bindIp: 127.0.0.1 ```。
- 修改
-
启用 SSL:
- 使用 SSL 加密客户端和服务器之间的通信,防止数据在传输过程中被窃听或篡改。
-
禁止不必要的接口:
- 禁止 HTTP 状态接口和 REST 接口,以防止未经认证的访问。
-
角色和权限管理:
- 使用基于角色的访问控制(RBAC)来管理用户权限。创建角色并分配适当的权限,例如
readWrite
角色用于读写操作。
- 使用基于角色的访问控制(RBAC)来管理用户权限。创建角色并分配适当的权限,例如
-
定期更新和补丁管理:
- 定期检查并应用 MongoDB 的最新补丁,以修复已知的安全漏洞。
-
物理和设备隔离:
- 限制对数据库的物理访问,使用专用服务账户运行 MongoDB,以减少对操作系统的风险。
-
安全审计:
- 启用安全审计功能,记录重要的用户行为和安全事件,以便进行事后分析和追踪。
通过上述措施,可以显著提高 MongoDB 的安全性,保护数据不受未授权访问和潜在的安全威胁。