zoukankan      html  css  js  c++  java
  • 基于xpack的ES用户管理(授权)

    基于xpack的ES用户管理(授权)

    之前研究了【基于xpack的用户认证】,了解了用户认证的原理和具体操作,继续研究基于xpack的授权

    基本概念

    • RBAC

      Elasticsearch默认的授权管理是通过RBAC机制,也就是基于角色的访问控制(role based access control)

    • 受保护的资源(Secured Resource)

      在ES中集群、索引、文档、字段、别名、用户都可以是被保护的对象

    • 权限字(Privilege)

      每个被保护的资源都有与之对应的一组允许执行的动作,集群的权限有:all,manage,monitor等,索引的权限有:all,create,delete,index,read,write,manage等

    • 许可(permissions)

      一组被授权的资源和其权限字的集合

    • 角色(Role)

    ​ 一组许可的集合,默认的角色有:superuser,kibana_system,logstash_system,apm_system,monitor_system等,可以通过命令查看

    GET /_security/role
    
    • 用户(User)
      被认证的用户,系统自带的用户可以通过命令查看
    GET /_security/user
    

    授权控制级别

    Elasticsearch自带的xpack插件支持多个级别和层次的授权

    • 集群级别

    • 索引级别

    • 文档级别(基础版不支持,需要license)

    • 字段级别(基础版不支持,需要license)

    如何通过角色授权

    首先要确保elasticsearch.yml中安全配置xpack.security.enabledxpack.security.dls_fls.enabledtrue

    在xpack中有三种方式可以添加角色,分别是:

    • 通过图形化界面;Kibana->Security->Roles

    • 设置ES_HOME/config/roles.yml

    • 通过role API

      • role API的格式

        POST /_security/role/clicks_admin
        {
          "run_as": [ "clicks_watcher_1" ],
          "cluster": [ "monitor" ],
          "indices": [
            {
              "names": [ "events-*" ],
              "privileges": [ "read" ],
              "field_security" : {
                "grant" : [ "category", "@timestamp", "message" ]
              },
              "query": "{"match": {"category": "click"}}"
            }
          ]
        }
        
        
      • 给用户赋予角色

        PUT /_security/user/wangzhen
        {
          roles:[clicks_admin]
        }
        

    注意事项

    • field_security 和 query 即文档级和字段级的权限需要更高级的license如黄金级和白金级
    • 文档级和字段级的权限是OR的关系,如role_1有文档级的权限,role_2没有,当用户同时有role_1和role_2两个角色是就能看到所有的文档(因为role_2可以看到所有的文档)
    • 文档级和字段级的权限只对"读"操作有效,对于"写"操作无效,即仍然可以修改看不到的字段
  • 相关阅读:
    正则表达式的与或非
    正则中需要转义的符号
    HTTP 错误状态码讯息
    HTTP协议详解
    TCP/IP、Http、Socket的区别
    CSS样式中标点符号的作用
    HighCharts: 设置时间图x轴的宽度
    可以尝试用Google Font API来摆脱网页字体的单调 仅仅抛砖引玉
    Oracle 权限(grant、revoke)
    网站加上图标
  • 原文地址:https://www.cnblogs.com/wangzhen3798/p/13361995.html
Copyright © 2011-2022 走看看