天天看点

MongoDB安全实战之Kerberos认证

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

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

1

1、环境准备

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

2

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

MongoDB安全实战之Kerberos认证

3

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

use $external

db.createUser(

   {

    user:”[email protected]”,

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

   }

)

MongoDB安全实战之Kerberos认证

4

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

4.1

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

vi /etc/mongod.conf

添加以下内容:

security:

  authorization: enabled

setParameter:

  authenticationMechanisms: GSSAPI

MongoDB安全实战之Kerberos认证

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/[email protected]认证生成的keytab文件。

MongoDB安全实战之Kerberos认证

启动成功!

5

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

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

MongoDB安全实战之Kerberos认证