《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.5.配置集群安全访问(3) https://developer.aliyun.com/article/1231352
在这里,我们定义了一个叫做 monitor_role,它具有 monitor 的权限
把 role 赋予给用户
我们打开我们的用户列表。针对我的情况,我们打开 liuxg 用户:
我们修改 liuxg 账号的 Roles。把刚才创建的 monitor_role 赋予给liuxg用户。点击UpdateUser 按钮。这样我们的设定就好了。设定好的账号是这样的:
从上面,我们可以看出来liuxg账号是有 monitor_role 的,而 user1 账号是没有的。
下面我们来做一些基本的测试。我们在一个 terminal 中打入如下的命令:
curl -u liuxg:123456 "http://localhost:9200/_cluster/health?pretty"
注意这里的 123456 是 liuxg 的账号密码。执行上面的显示结果是:
我们显然看到了结果。那么我们同样地对 use1 账号来进行实验:
curl -u user1:123456 "http://localhost:9200/_cluster/health?pretty"
显示的结果是:
显然,user1 账号没有得到任何结果。这个根本的原因是因为这个账号没有相应的权限。
文档级或字段级安全
现在,我们知道了如何创建新用户,创建新角色以及将角色分配给用户,让我们探讨如何针对给定的索引/文档对文档和字段施加安全性。接下来,我们使用我之前给大家输入进的
employee 索引来展示。
案例1
当用户搜索员工详细信息时,该用户不允许包含在属于员工索引的文档中的薪水/地址详细信息。这就是我们所说的字段级安全。首先,让我们来创建一个叫做 employee_read 的role。这个 role 只具有 employee 索引的 read 权限。为了限制字段,我们可以在设置里做相应的配置:
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.5.配置集群安全访问(5) https://developer.aliyun.com/article/1231350