Elasticsearch7.1权限管理(X-Pack API)

最近Elasticsearch官方宣布免费提供部分安全管理功能,发布内容在6.8.0和7.1.0版本中,详细内容请查看官网博客说明:
https://www.elastic.co/cn/blog/security-for-elasticsearch-is-now-free

 

https://github.com/memoryFuhao/elasticsearch_client  (打个广告 以上链接是本人开发的一个es客户端工具,支持es大部分 CRUD操作  分页、分组、嵌套分组、and or ···,有需要的朋友可以pull代码直接使用)

 

想要对es进行权限相关的控制,需要借助X-Pack模块完成,现在步骤介绍如何使用X-Pack Api对es进行权限管理:
1、安装
    下载链接(浏览器下载较慢,建议使用迅雷下载):
    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz
    
    修改配置文件(解压安装包后,进入config目录):
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true

    network.host: 0.0.0.0
    http.port: 9200
    cluster.initial_master_nodes: ["slave1"]    #安装es机器的hostname
    
    启动es:
    进入bin路径下,执行 ./elasticsearch 启动。
        
2、配置系统用户密码
    进入解压包bin路径下,执行 ./elasticsearch-setup-passwords interactive
    依次输入配置各账号密码即可。


3、创建角色
角色对集群和索引的权限参考:https://www.elastic.co/guide/en/elastic-stack-overview/6.3/security-privileges.html
基本使用如下,创建拥有不同权限的两个角色:
curl -X POST -u elastic "localhost:9200/_security/role/test_role" -H 'Content-Type: application/json' -d'
{
  "cluster": ["all"],
  "indices": [
    {
      "names": [ "test" ],
      "privileges": ["all"]
    }
  ]
}
'


curl -X POST -u elastic "localhost:9200/_security/role/test_read_role" -H 'Content-Type: application/json' -d'
{
  "cluster": ["all"],
  "indices": [
    {
      "names": [ "test" ],
      "privileges": ["read"]
    }
  ]
}
'


4、创建用户并配置角色
创建用户详细参数设置可参考:https://www.elastic.co/guide/en/elasticsearch/reference/6.3/security-api-put-user.html
基本使用如下,创建用户并赋予不同角色:
curl -X POST -u elastic "localhost:9200/_security/user/fuhao" -H 'Content-Type: application/json' -d'
{
  "password" : "123456",
  "roles" : [ "test_role" ],
  "full_name" : "memory",
  "email" : "fuhao@example.com",
  "metadata" : {
    "intelligence" : 7
  }
}
'

curl -X POST -u elastic "localhost:9200/_security/user/fuhao_read" -H 'Content-Type: application/json' -d'
{
  "password" : "123456",
  "roles" : [ "test_read_role" ],
  "full_name" : "memory2",
  "email" : "fuhao@example.com",
  "metadata" : {
    "intelligence" : 7
  }
}
'
    
5.查看role和user

查看全部role:
curl -X GET -u elastic "localhost:9200/_security/role"

查看全部全部user:
curl -X GET -u elastic "localhost:9200/_security/user"


6.使用不同用户对索引进行CRUD操作,验证权限配置是否有效。

···

 

ps:目前es官网只免费提供权限管理到索引级别,如果要将权限粒度控制到更细粒度(字段级别),需付费使用。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值