返回

MongoDB:实施内部身份验证的副本集部署指南

见解分享

引言

MongoDB 副本集是一种复制数据库和提高可用性、读写吞吐量和故障恢复能力的有效方法。为了保护副本集中数据的安全,实施身份验证至关重要。

内部身份验证

内部身份验证是 MongoDB 中一种身份验证机制,它使用存储在每个成员上的本地数据库中管理用户名和密码。它为每个副本集提供独立的安全机制,与外部身份验证提供程序(如 LDAP 或 Kerberos)不同。

部署步骤

1. 初始化副本集

  • 创建包含 3 个或更多成员的副本集。
  • 在所有成员上启用 internal 验证机制。
rs.initiate({
  _id: "my-rs",
  members: [
    { _id: 0, host: "mongo1:27017" },
    { _id: 1, host: "mongo2:27017" },
    { _id: 2, host: "mongo3:27017" }
  ],
  settings: {
    authentication: {
      internal: true
    }
  }
})

2. 添加用户

  • 使用 mongo shell 或 MongoDB Compass 创建具有管理员权限的用户。
mongo -u admin -p <admin-password>
db.createUser({
  user: "my-admin-user",
  pwd: "my-password",
  roles: [ { role: "root", db: "admin" } ]
})

3. 修改副本集设置

  • 修改副本集设置以强制执行身份验证。
rs.conf()
  • 修改 security.authorizationenabled

  • 重新配置副本集以应用更改。

rs.reconfig(rs.conf())

4. 连接到副本集

  • 使用新创建的用户名和密码连接到副本集。
mongo -u my-admin-user -p my-password -h <primary-member-host>:<port>

最佳实践

  • 使用强密码并定期更新。
  • 启用审计以跟踪数据库活动。
  • 定期备份您的副本集以防止数据丢失。
  • 保持 MongoDB 版本和安全补丁是最新的。

结论

通过实施内部身份验证,您可以在 MongoDB 中建立一个安全且可靠的副本集环境。这将保护您的数据免遭未经授权的访问,并确保您的数据库的完整性和机密性。通过遵循本指南中的步骤,您可以轻松地部署和配置内部身份验证的副本集。