1. 程式人生 > >MongoDB復制集安全認證

MongoDB復制集安全認證

沒有權限 http 逼格 今天 file 原來 priority 操作 進行

之前我有一篇博客寫的是“node.js通過權限驗證連接MongoDB”,這篇博客上提到如何在啟動文件中通過配置auth參數來開啟權限認證,但這種認證方式只適合單機節點,當我們使用復制集時應該怎麽開啟權限認證來保證復制集的安全捏?
先給大家看一下我在centos虛擬機上搭建的復制集

這和我之前的那篇博客上展示的不是同一個復制集,因為昨天我在原來那臺虛擬機上瞎幾把搞的時候改錯了一個配置文件然後系統就GG了。。。。。於是今天我又重新裝了一遍。
上面展示的五個文件夾分別是五個數據庫的安裝路徑,文件夾名後面的數字是端口號。27017是priority最高的一個,27018、27019為普普通通的節點,27020為延時300秒的從節點,27021為投票節點。

那麽要開啟復制集的安全認證首先需要關閉全部節點,而且在此之前不應該對某個節點使用單機節點的認證方式,即不可以在某個節點的啟動文件中配置auth=true且在該節點裏創建用戶。因為這樣子做只適合單機節點,在復制集中這樣做會導致該節點發現不了復制集中的其他節點,因為沒有權限訪問。復制集的安全認證需要通過配置keyfile文件的方式進行。
接下來我們需要在每個節點的安裝路徑下新建一個keyFile文件,文件中的具體內容其實就是一行字符串,但復制集對keyFile文件有所要求
1.內容:以base64編碼集中中的字符進行編寫,即字符串只能包含a-z、A-Z、+、/
2.長度不能超過1000字節
3.權限最多到600
那麽如何高效且高逼格生成一個合適的keyFile文件呢?
有這樣一個方法分享給大家,我們在mongo27017中執行下面的操作

這裏需要註意一下在第一次輸出的時候我們需要檢查它輸出的字符串中是否有不是baase64的字符。第二行命令是把上面生成的字符串輸入到keyFile中。由於之前所說,復制集對keyFile的權限有要求,最多到600,所以我們需要

chmod 600 keyFile
1
然後我們把這個文件復制到其他節點的安裝路徑中。
然後我們到啟動文件中配置參數

這裏我們需要註意最後一個參數keyFile,其值為之前我們生成的keyFile文件的地址。由於我們配置了keyFile參數相當於就開啟了安全認證,所以就不必在配置auth參數了。

最後我們再啟動復制集,在主節點中創建用戶,第一個創建的用戶必須在admin庫中創建,創建方式如下

之後不管在主節點還是從節點中,我們都需要在admin庫中通過db.auth()進行認證

以上就是配置復制集安全認證的全部過程,後面我將為大家介紹如何通過nodejs連接復制集。

---------------------

本文來自 wopelo 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/wopelo/article/details/73004216?utm_source=copy

MongoDB復制集安全認證