我们在 Mongo 3.2。我们使用 mongo 部署了我们的第一个应用程序,没有在数据库模式中进行用户身份验证。
现在我们想在数据库级别启用身份验证,但希望避免应用程序停机。
在 Mongo 中,我们是否可以在数据库级别启用此身份验证,以避免任何人通过控制台登录和运行命令。
应用程序不应占用时间。
我们在 Mongo 3.2。我们使用 mongo 部署了我们的第一个应用程序,没有在数据库模式中进行用户身份验证。
现在我们想在数据库级别启用身份验证,但希望避免应用程序停机。
在 Mongo 中,我们是否可以在数据库级别启用此身份验证,以避免任何人通过控制台登录和运行命令。
应用程序不应占用时间。
MongoDB 3.2 及更早版本需要停机并协调重启您的部署和应用程序以启用访问控制:所有客户端和部署成员必须在启用后使用身份验证。有一个localhost 异常允许您在
admin
启用身份验证后在数据库上创建第一个用户。通过规划,这可能是一个相对较快的过程,但为了尽量减少潜在的停机时间,我强烈建议首先在具有代表性的暂存环境中进行测试。
启用访问控制和身份验证是一项显而易见的安全措施,但仍然会使您容易受到其他可能的攻击。例如,您还应该配置 TLS/SSL以保护您的网络通信并限制通过防火墙或您的应用程序服务器和 MongoDB 部署之间的 VPN/VPC 的远程网络访问。
有关安全措施的完整列表和相关教程的链接,请参阅MongoDB 手册中的安全检查表。
您可以在暂存环境中测试几个步骤,以帮助确保过渡顺利进行,包括:
MongoDB 3.4
--transitionToAuth
另一个值得一提以备将来考虑的选项(虽然通常不是在现有部署上启用身份验证的最快途径)是升级到 MongoDB 3.4。
MongoDB 3.4 包含一个新
--transitionToAuth
选项,可以滚动升级到身份验证;请参阅:在不停机的情况下在副本集中实施密钥文件访问控制。