返回
MongoDB:实施内部身份验证的副本集部署指南
见解分享
2023-12-17 17:25:08
引言
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.authorization
为enabled
。 -
重新配置副本集以应用更改。
rs.reconfig(rs.conf())
4. 连接到副本集
- 使用新创建的用户名和密码连接到副本集。
mongo -u my-admin-user -p my-password -h <primary-member-host>:<port>
最佳实践
- 使用强密码并定期更新。
- 启用审计以跟踪数据库活动。
- 定期备份您的副本集以防止数据丢失。
- 保持 MongoDB 版本和安全补丁是最新的。
结论
通过实施内部身份验证,您可以在 MongoDB 中建立一个安全且可靠的副本集环境。这将保护您的数据免遭未经授权的访问,并确保您的数据库的完整性和机密性。通过遵循本指南中的步骤,您可以轻松地部署和配置内部身份验证的副本集。