温馨提示×

MongoDB配置中的安全设置怎么做

小樊
39
2025-12-07 13:40:13
栏目: 云计算

MongoDB 安全设置实操清单

一 启用认证与 RBAC

  • 在配置文件 /etc/mongod.conf 中开启鉴权(YAML 格式):
    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
    
  • 使用主机防火墙限制来源(示例仅放通内网网段到 27017/tcp):
    • firewalld:
      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 与强认证,并尽量限制来源 IP。
  • 安全提示:避免将 bindIp 设为 0.0.0.0 暴露到公网;对管理口与业务口分离部署更稳妥。

三 加密通信 TLS/SSL

  • 自签名证书快速示例(生产建议使用受信任 CA):
    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
    
  • 在配置中启用传输加密(字段名可用 ssltls,二者等效):
    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 可保护数据在传输过程中的机密性与完整性,是公网与跨机房访问的推荐配置。

四 复制集与分片的安全加固

  • mongod.conf 中为复制集/分片启用 keyFile(各节点一致,权限 600):
    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
      
  • 安全更新与监控:
    • 及时升级到包含安全修复的版本;对异常登录、权限变更、慢查询与复制异常建立监控与告警。
  • 云数据库场景补充:
    • 若使用云托管 MongoDB,可在控制台开通 SSL 加密、下载 CA 证书 并在客户端配置;开通/关闭/更新证书通常会触发实例重启,建议提前安排维护窗口并确保应用具备自动重连能力。

0