身份认证 | 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;
- 但是不可以删除;
网友评论