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 市集部署(讓您設定複製),請了解以下資訊:

他們在初始配置中沒有設定安全性,因此有 2 個選項:

  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,,authorizationkeyFile
  12. keyFile提供密鑰下的密鑰檔案路徑
  13. 停止所有實例並重新啟動它們

現在 MongoDB 可以存取金鑰檔案了。

惡夢什麼的。並且chmod 400 <path to key>按照文檔中的指定對我不起作用。我必須將其設為chmod 600 <path to key>.

相關內容