MongoDB 安全设置实操清单
一 启用认证与 RBAC
security:
authorization: enabled
如使用旧版 INI 格式可用:auth=true。完成后重启服务。首次启用前,先在本地无鉴权状态下连接到 admin 库创建管理员:use admin
db.createUser({
user: "admin",
pwd: "StrongPass!23",
roles: ["root"]
})
之后以鉴权连接并验证:mongo -u "admin" -p "StrongPass!23" --authenticationDatabase "admin"
为业务库按需创建最小权限用户(示例仅授予 readWrite):use mydb
db.createUser({
user: "app_user",
pwd: "AppPass!45",
roles: [{ role: "readWrite", db: "mydb" }]
})
说明:MongoDB 默认无默认账户,启用鉴权后所有客户端必须提供凭据;建议遵循最小权限原则与 RBAC 精细化授权。二 网络与访问控制
net:
bindIp: 127.0.0.1,192.168.1.10
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="27017" protocol="tcp" accept'
sudo firewall-cmd --reload
三 加密通信 TLS/SSL
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 \
-keyout /etc/ssl/private/mongodb-key.pem \
-out /etc/ssl/certs/mongodb-cert.pem
chmod 600 /etc/ssl/private/mongodb-key.pem
net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/private/mongodb-key.pem
CAFile: /etc/ssl/certs/mongodb-cert.pem
重启后,客户端连接需开启 SSL,例如:mongo --ssl --host your_host --sslCAFile /path/to/ca.pem -u app_user -p AppPass!45 --authenticationDatabase mydb
说明:开启 TLS/SSL 可保护数据在传输过程中的机密性与完整性,是公网与跨机房访问的推荐配置。四 复制集与分片的安全加固
security:
authorization: enabled
keyFile: /path/to/mongodb-keyfile
replication:
replSetName: rs0
生成 keyFile 示例:openssl rand -base64 745 > /path/to/mongodb-keyfile
chmod 600 /path/to/mongodb-keyfile
说明:keyFile 既用于节点间认证,也会隐式启用鉴权;变更配置后按顺序重启各节点,避免主从异常切换导致的中断。五 运维与审计要点
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
logLevel: 2
mongodump --out /backup/$(date +%F)
mongorestore /backup/2025-12-07