我是否应该为每个需要访问 MongoDB 的物理开发人员创建一个 Mongo 用户,还是我们应该共享一个“sysadmin”帐户?
我们三个人需要完全访问权限,每个人都需要相同的权限。我们只有几千名用户,没有任何特殊的合规性要求(不是医疗保健、金融等)。我认为团队中的每个人都值得信赖且有能力。我们都拥有 sudo 访问权限,服务器上没有其他 Linux 帐户(除了 apache 等)。
我正在考虑这一点,因为设置多个用户需要做很多工作,而且好处微乎其微。(如果团队成员离开,我只会更改密码)。但是,如果有真正理由创建单独的用户(如果它有助于事后审计/调查等),我会非常乐意这样做。
如果我们共享,我会创建一个简单的 bash 脚本来“包装” mongo 命令,就像这样,并将其添加到仅给我们三个开发人员的组中:
#!/bin/bash
/path/to/bin/mongo -u="username" -p="password" $@
这将首先阻止密码离开服务器。
我最初考虑编写类似上述脚本的安全隐患,该脚本为每个用户设置一个唯一的密码,并让用户拥有具有700
权限的文件。假设将密码“隐藏”在用户面前比将密码放在剪贴板上/存储在本地计算机桌面上的某个随机文件中更安全password.txt
。
sudo cat
但是,我开始思考:如果我们三个人都能看到对方的密码,那么就没有理由设立三个独立的账户。
我认为让每个用户使用密码管理器在本地保存密码是过度的,因为他们已经有了 sudo,所以首先在 Mongo 配置文件中禁用身份验证就很容易了。
答案1
共享帐户意味着如果出现问题,就更难(或者说如果没有适当的系统/访问日志记录就不可能)确定谁实际登录了。
此外,如果其中一个人被解雇/辞职,您不能仅删除他们的访问权限,您必须更改共享帐户的密码,正如您所说。
如果人们确实在系统上以明文形式存储密码,那么将会出现一系列其他安全问题需要解决。
我不确定您为什么认为 3 个独立帐户被认为是一项大量工作,因为您可能花了更多时间来写这个问题。