美文网首页
mongodb 基于角色的访问控制(RBAC)

mongodb 基于角色的访问控制(RBAC)

作者: JohnYuCN | 来源:发表于2020-01-12 20:01 被阅读0次

    一、授权(Authorization)及鉴权(Authentication)的原理:

    (一)过程

    1. 授权:是由actions和resource组合成为privilege,再把privileges定义成为role,最后把roles定义成为user。
    2. 鉴权: 在user登录后,对resource的每一个action,都会由其roles进行鉴别。

    (二)概念:

    1. 资源(resource)
      是被保护的对象,可以是 db,collection,cluster
    2. 动作(action)
      是预定义好的对资源执行的操作,如:dropCollection。
    3. 权限(privilege)
      是资源(resourcde)和动作集合(actions)的组合体,即表示对某项resource的actions是什么,定义形式如下:
          {
             actions: [ "dropCollection","otherAction" ],
             resource: { db: "", collection: "system.views" }
           }
    
    1. 角色(role):
      是具名的,privilege的集合;也是对用户进行授权的最小单位,定义形式如下:
    use admin
    db.createRole(
       {
         role: "dropSystemViewsAnyDatabase",
         privileges: [
           {
             actions: [ "dropCollection" ],
             resource: { db: "", collection: "system.views" }
           }
         ],
         roles: []
       }
    )
    
    1. 用户(user)
      它代表数据库使用者的身份;是具名的,角色的集合(roles);定义形式如下:
    ## 创建test1.john的user
    use test1
    db.createUser(
        {
          user: "john",
          pwd: "123",      
          customData: { email:"",other:"" },//任意document
          roles: [
            { role: "<role>", db: "<database>" } | "<role>",
            ...
          ]
          //,后面省略了一些其它配置,一般情况以上就足够使用了。
        }
    )
    
    • 更多的参见 用户管理

    • 要引起注意的是:

      (1)user自身也是资源(resource)。
      (2)user是位于db下的二级资源,与collection,index是同级资源。

    二、启用RBAC

    原理:
    只有启用了Access Control,mongodb才可以根据用户进行鉴权,此时mongo可以被匿名登录,但只是不具备任何权限。

    1. 方式一:
      mongd --auth

    2. 方式二:
      修改配置文件:

    #/etc/mongod.conf
    security:
      authorization: enabled
    

    然后:service mongod restart

    三、用户登录方式:

    方式一,在登录前:

    mongo -u 用户名 -p 密码 ----authenticationDatabase 用户所属于的库名
    

    方式二,在登录后:

    use [用户所属于的库名]
    db.auth(用户名,密码)
    

    相关文章

      网友评论

          本文标题:mongodb 基于角色的访问控制(RBAC)

          本文链接:https://www.haomeiwen.com/subject/gxdwactx.html