ElasticSearch | 集群身份认证 | 用户鉴权

身份认证 | Authentication

认证体系的几种类型
  • 提供用户名和密码
  • 提供秘钥或 Kerberos 票据
Realms

在 ElasticSearch 中的认证服务被称为 Realms,提供了收费和免费两种不同形式的 Realms;

  • 内置 Realms(免费):File / Native(用户名和密码保存在 ElasticSearch 的索引中);
  • 外部 Realms(收费):LDAP / Active Directory / PKI / SAML / Kerberos;

用户鉴权 | RBAC

在 ElasticSearch 中,权限包括索引级,字段级,集群及。

Privilege
  • Cluster Privileges:all / monitor / manager / manage_index / manage_index_template / manage_rollup
  • Indices Privileges:all / create / create_index / delete / delete_index / index / manage / read / write / view_index_metadata

ElasticSearch Authentication | 举个栗子

运行启动命令 | 开启 xpack

bin/elasticsearch -E node.name=node0 -E cluster.name=geektime -E path.data=node0_data -E http.port=9200 -E xpack.security.enabled=true

运行密码设定命令设置 ES 内置用户及其初始密码

bin/elasticsearch-setup-passwords interactive

访问集群 http://localhost:9200/_cat/nodes
  • 输入用户名和密码就可以访问了;

Kibana Authentication | 举个栗子

设置 Kibana 的用户名及密码
  • 修改配置文件 kibana.yml;
elasticsearch.username: "kibana"
elasticsearch.password: "changeme"
启动 Kibana,使用用户 elastic 登录,密码 elastic

./bin/kibana

写入信用卡信息 | 数据准备
POST orders/_bulk
{"index":{}}
{"product" : "1","price" : 18,"payment" : "master","card" : "9876543210123456","name" : "jack"}
{"index":{}}
{"product" : "2","price" : 99,"payment" : "visa","card" : "1234567890123456","name" : "bob"}
在 Kibana 中 Settings / Security / Roles 中创建角色 read_orders
  • 添加对索引 orders 的 read 权限;
  • Run as privileges 设置成 kibana_user;
  • Minimum privileges for all spaces 设置成 read;
在 Kibana 中 Settings / Security / Users 中创建用户 demo
  • Roles 设置成 read_orders;
退出用户 elastic
用新创建的 demo 用户登录
  • 可以搜索索引 orders;
  • 但是不可以删除;

你可能感兴趣的:(ElasticSearch | 集群身份认证 | 用户鉴权)