MongoDB安全實戰之Kerberos認證

鄧開表同學MongoDB系列文章,本文主要講訴MongoDB的Kerberos配置實戰。MongoDB Enterprise版本支持Kerberos服務認證。Kerberos是大型客戶端/服務器系統的行業標準認證協議。上一篇文章是:

MongoDB Compass--MongoDB DBA必備的管理工具



1、環境準備

需要事先在機器上安裝MongoDB Enterprise版本和Kerberos,在這裡安裝的是MongoDB Enterprise 3.6.2和Kerberos 1.10.

2、啟動mongod服務,並連接到mongoshell。

MongoDB安全實戰之Kerberos認證

3、在$external數據庫下(注意:必須在$external數據庫,否則添加用戶必須pwd密碼鍵),創建一個用戶(這裡的用戶需要是Kerberos的一個賬戶)並分配bigdata數據庫“讀”的權限。

use $external

db.createUser(

{

user:”[email protected]”,

roles:[{role:”read”,db:”bigdata”}]

}

)

MongoDB安全實戰之Kerberos認證

4、配置mongod服務支持Kerberos認證

4.1、編輯修改MongoDB配置文件/etc/mongd.conf

vi /etc/mongod.conf

添加以下內容:

security:

authorization: enabled

setParameter:

authenticationMechanisms: GSSAPI

MongoDB安全實戰之Kerberos認證

4.2 設置mongod服務支持Kerberos認證

由於這裡安裝MongoDB Enterprise是採用rpm包安裝,mongod服務默認在/etc/sysconfig/mongod

執行以下語句:

env KRB5_KTNAME=/usr/local/mongodb.keytab \

/usr/bin/mongod --config /etc/mongod.conf

這裡的mongodb.keytab文件是已經在kerberos上對mongodb/[email protected]認證生成的keytab文件。

MongoDB安全實戰之Kerberos認證

啟動成功!

5、使用認證連接mongo shell

mongo --host other--authenticationMechanism=GSSAPI --authenticationDatabase=’$external’--username [email protected]

MongoDB安全實戰之Kerberos認證

mongo shell的認證連接成功!

測試用戶[email protected],執行以下語句:

use bigdata

show collections

use admin

show collections

由於在bigdata數據庫下,[email protected]用戶具有讀權限,showcollections可以通過;當轉換到admin數據庫下時,則提示沒有認證!

MongoDB安全實戰之Kerberos認證


分享到:


相關文章: