MongoDB安全实战之Kerberos认证

邓开表同学MongoDB系列文章,本文主要讲诉MongoDB的Kerberos配置实战。MongoDB Enterprise版本支持Kerberos服务认证。Kerberos是大型客户端/服务器系统的行业标准认证协议。上一篇文章是:

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




1

1、环境准备

需要事先在机器上安装MongoDB Enterprise版本和Kerberos,在这里安装的是MongoDB Enterprise 3.6.2Kerberos 1.10.

 

2

2、启动mongod服务,并连接到mongoshell

MongoDB安全实战之Kerberos认证_第1张图片

 

3

3、在$external数据库下(注意:必须在$external数据库,否则添加用户必须pwd密码键),创建一个用户(这里的用户需要是Kerberos的一个账户)并分配bigdata数据库“读”的权限。

use $external

db.createUser(

   {

    user:”[email protected]”,

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

   }

)

MongoDB安全实战之Kerberos认证_第2张图片

 

4

4、配置mongod服务支持Kerberos认证

 

4.1

4.1、编辑修改MongoDB配置文件/etc/mongd.conf

vi /etc/mongod.conf

添加以下内容:

security:

  authorization: enabled

setParameter:

  authenticationMechanisms: GSSAPI

MongoDB安全实战之Kerberos认证_第3张图片

 

4.2

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/other@MONGODB.COM认证生成的keytab文件。

640?wx_fmt=png

启动成功!

 

5

5、使用认证连接mongo shell

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

640?wx_fmt=png

 

mongo shell的认证连接成功!

 

测试用户[email protected],执行以下语句:

use bigdata

show collections

use admin

show collections

由于在bigdata数据库下,[email protected]用户具有读权限,showcollections可以通过;当转换到admin数据库下时,则提示没有认证!

MongoDB安全实战之Kerberos认证_第4张图片

 

加入技术讨论群




为了方便大家相互交流学习,社区群人数已经2500+,欢迎大家加下面助手微信,拉大家进群,自由交流。

640?wx_fmt=jpeg



喜欢QQ群的,可以扫描下面二维码:

MongoDB安全实战之Kerberos认证_第5张图片

欢迎大家通过二维码打赏支持技术社区(英雄请留名,社区感谢您,打赏次数超过50+):

640?wx_fmt=jpeg


你可能感兴趣的:(MongoDB安全实战之Kerberos认证)