Google Cloud Compute MongoDB 部署安全问题和 keyFile 问题

Google Cloud Compute MongoDB 部署安全问题和 keyFile 问题

我今天遇到了这个非常烦人的问题。

基本上,我已经使用 GCP Marketplace 产品设置了一个 MongoDB 数据库。它设置了一个主节点、辅助节点和一个仲裁节点。这太酷了。但它没有提供安全性。就像,一点都没有。所以很自然我必须自己设置它。好吧,现在 20 小时过去了,我挨了几记重拳,我仍然在努力让它运行起来。

基本上,这是我的部分配置:

security:
  authorization: enabled
  keyFile: '/etc/mongodKey'

如果我注释掉,keyFile实例就会运行。但由于启用了安全性,它无法连接到任何其他节点。而且,我无法禁用它,你疯了吗?

但是关于 keyFile 的事情...据我所知,mongod无法打开它,所以它无法启动。我想/etc这不是一个放它的好地方吧?我试过其他文件夹,但无济于事。什么都不起作用。

我需要采取这种安全措施,因为我的同事需要使用 Robo 3T 连接数据库。因此删除外部 IP 地址是不可能的。

我做错了什么?请帮帮我,我快要抓狂了。

这是输出sudo service mongod status

● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2019-08-21 15:28:08 UTC; 4min 29s ago
     Docs: https://docs.mongodb.org/manual
  Process: 1024 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=1/FAILURE)
 Main PID: 1024 (code=exited, status=1/FAILURE)
Aug 21 15:28:08 m-vm-0 systemd[1]: Started MongoDB Database Server.
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Main process exited, code=exited, status=1/F
Aug 21 15:28:08 m-vm-0 systemd[1]: mongod.service: Unit entered failed state.
Aug 21 15:28:08 m-0 systemd[1]: mongod.service: Failed with result 'exit-code'.

编辑:

我检查了mongod.log。是的,这是一个权限问题。我无法解决它。

我尝试过,sudo chmod 400 /etc/mongodKey但什么也没做。请问,我应该把密钥文件放在哪里,以便 mongodb 可以读取它?这非常重要!

答案1

如果您使用名为“MongoDB”的 GCP MongoDB 市场部署,它允许您设置复制,请了解以下内容:

他们没有在初始配置中设置安全性,因此有两个选项:

  1. 关闭外部 IP
  2. 在中启用授权mongod.conf

如果选择第一个解决方案,您将无法轻松地从任何其他外部源连接到数据库。

如果选择第二种解决方案,则需要执行以下操作:

  1. 生成密钥,整个过程可以在这里找到:https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/

  2. 复制文件内容

  3. 通过 SSH 连接到所有 Compute Engine 实例
  4. 选择目录
  5. sudo touch <path to key>
  6. sudo nano <path to key>
  7. 将生成的密钥粘贴到计算机上并保存
  8. sudo chmod 600 <path to key>
  9. sudo chown mongodb: <path to key>
  10. 更新您mongod.conf/etc/mongod.conf
  11. 取消注释security, authorization,keyFile
  12. keyFile提供密钥下的密钥文件路径
  13. 停止所有实例并重新启动它们

现在 MongoDB 可以访问密钥文件了。

简直是噩梦。而且它chmod 400 <path to key>并没有按照文档中所述为我工作。我不得不将其设置为chmod 600 <path to key>

相关内容