Mongodb 集群啟用密碼驗(yàn)證1.md

簡介

  • 以及公司對(duì)安全重視,增加用戶密碼登錄
  • 對(duì)于搭建好的mongodb副本集加分片集群,為了安全,啟動(dòng)安全認(rèn)證,使用賬號(hào)密碼登錄。
  • 默認(rèn)的mongodb是不設(shè)置認(rèn)證的。只要ip和端口正確就能連接,這樣是不安全的。

具體操作

第一步關(guān)鍵 創(chuàng)建擁有添加刪除用戶權(quán)限的帳號(hào)
  • 創(chuàng)建用戶,需要在分片上和對(duì)應(yīng)mongos還有config的主節(jié)點(diǎn)上面
登錄到mongos切換到admin庫,如果不切換默認(rèn)是在test庫,會(huì)導(dǎo)致程序無法連接到mongodb 切記

db.createUser({
 user:"useradmin",
 pwd:"test110",
 roles: [ { role: "root",db:"admin"}]
}) 

db.auth("useradmin","test110")//認(rèn)證該用戶

開啟分片集群權(quán)限驗(yàn)證
  • 首先生成一個(gè)添加keyFile文件----->用于認(rèn)證使用

  • 1.在分片集群環(huán)境中,副本集內(nèi)成員之間需要用keyFile認(rèn)證,mongos與配置服務(wù)器,副本集之間也要keyFile認(rèn)證,集群所有mongod和mongos實(shí)例使用內(nèi)容相同的keyFile文件。

  • 2.進(jìn)行初始化,修改副本集時(shí),都從本地例外登錄進(jìn)行操作

  • 3.由于啟用了認(rèn)證,需要建立一個(gè)管理員帳號(hào),才能從遠(yuǎn)程登錄。建立管理員帳戶,利用管理員賬戶從遠(yuǎn)程登錄后,需要建立一個(gè)可以操作某個(gè)數(shù)據(jù)庫的用戶,客戶端就用這個(gè)用戶訪問數(shù)據(jù)庫。

  • 4.分片集群中的管理員帳號(hào)需要具備配置服務(wù)器中admin和config數(shù)據(jù)庫的讀寫權(quán)限,才能進(jìn)行分片相關(guān)操作

  • 5.集群中每個(gè)分片有自己的admin數(shù)據(jù)庫,存儲(chǔ)了集群的各自的證書和訪問權(quán)限。如果需要單獨(dú)遠(yuǎn)程登錄分片,可以按照3.2的辦法建立用戶

  • 操作步驟

openssl rand -base64  test110 > ./keyFile.key
chmod 600 ./keyFile.key   #權(quán)限必須是600
scp ./keyFile.key   #到對(duì)應(yīng)的在分片和Configserver的config配置文件路徑下

  • Shard和Configserver配置文件添加相關(guān)配置信息
#開啟權(quán)限驗(yàn)證
auth=true
keyFile=/home/mongodb/config/keyFile.key
  • mongos配置文件中添加如下配置
#指向keyFile
keyFile=/usr/local/mongodb/key/keyFile.key

  • 快速添加
echo "keyFile=/home/mongodb/config/keyFile.key"  >>  config*
echo "keyFile=/home/mongodb/config/keyFile.key"  >>  mongos*
echo "keyFile=/home/mongodb/config/keyFile.key"  >>  shard1*
echo "keyFile=/home/mongodb/config/keyFile.key"  >>  shard2*
echo "keyFile=/home/mongodb/config/keyFile.key"  >>  shard3*

echo "auth=true"  >>  config*
echo "auth=true"  >>  shard1*
echo "auth=true"  >>  shard2*
echo "auth=true"  >>  shard3*
測(cè)試登錄
  • 測(cè)試
mongo 192.168.128.10 -u admin -p test110

  • 對(duì)應(yīng)的業(yè)務(wù)程序升級(jí)增加配置配置用戶名和密碼,并驗(yàn)證業(yè)務(wù)是否正常。
還原回退操作
  • 把如下配置還原

Shard和Configserver配置文件取消添加相關(guān)配置信息
#開啟權(quán)限驗(yàn)證
auth=true
keyFile=/home/mongodb/config/keyFile.key

mongos配置文件中添加取消如下配置
#指向keyFile
keyFile=/usr/local/mongodb/key/keyFile.key

  • 快速回退
sed -i '/keyFile/d'    config*
sed -i '/keyFile/d'    mongos*
sed -i '/keyFile/d'    shard1*
sed -i '/keyFile/d'    shard2*
sed -i '/keyFile/d'    shard3*
sed -i '/auth=true/d'   config*
sed -i '/auth=true/d'   mongos*
sed -i '/auth=true/d'   shard1*
sed -i '/auth=true/d'   shard2*
sed -i '/auth=true/d'   shard3*
  • 重啟mongodb服務(wù),驗(yàn)證功能是否正常。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容