1-8-用户空间
在很多的情况下 , 出于安全的原因 , 我们需要对不同的Kibana用户分配不同的用户权限 , 这样使得他们之间不能互相访问彼此的资源 , 同时他们也应该对不同的索引拥有不同的权限 , 比如读 , 写 , 管理等等。Elastic Security 通过基于角色的功能提供授权存取控制(RBAC-Role Based Access Control) 。

一个用户可拥有不同的role , 并且每一个 role 都含有不同操作权限。使用 RBAC , 您可以控制访问通过定义:
users: 创建具有不同的属性的账号(username, full name, 邮件 , 及相应的roles)roles: 分配一组命名权限 ,Elasticsearch里含有有多个内置角色resources: 限制访问的实体 , 比如document或一个索引privileges: 代表一个或多个动作的命名组可以在资源上执行permissions: 应用于一个特权的一组一个或多个特权或更多资源
1. SPACE空间
通过Space可以组织仪表板和其他将对象保存到有意义的类别中。在默认的情况下这个功能是启动的。可以在 kibana.yml 文件中进行配置:
xpack.spaces.enabled: false上面的配置将使得这个功能被取消。
在一个空间内创建的对象只能从该空间进行访问。启用安全性后 , 您可以控制哪个用户拥有访问哪些空间。来自特定空间的已保存对象将被标记为在该空间的对象。
在默认的情况下 , Kibana在启动时帮我们创建一个名字叫做 Default 的空间。当我们从一个没有空间的版本升级后 , 那么所有的 visualization 将会被存于 Default 的空间里。当我们创建一个 Space 时 , 它只需要一个名字 , 它被用来生产 URL 识别符 , 我们还可以加入一些描述符。
下面我们来通过一个实验来了解 Space 是如何工作的。
2. 准备环境
安装对应软件包, 并且准备实验环境数据
我们将使用
Kibana中自带的eCommerce及Flight数据来操作。首先打开我们的Kibana:
点击
Load a data set and a Kibana dashboad。然后我们可以看到:
我们分部点击
eCommerce及flight两个的Add data按钮。这样两个样本数据都进入到我们的Elasticsearch里去了。我们可以对这两个索引的数据Visualization分别处理。我们点击Dashboard按钮 , 我们可以看到在Dashboard里有显示两个Dashboard的列表。我们可以点击上面的链接来分别看一下数据的呈现。
3. 创建SPACE
创建
Space其实是非常的方便。我们点击Management按钮:
在上面我们看见了一个叫做
Default的默认空间。也就是我们通常操作的空间。我们点击Create a space按钮:
在上面我们创建一个叫做
flight_analyst的空间。在我们创建时 , 我们可以选择一个我们自己喜欢的颜色或Initial。针对我们的情况 , 我们选择F字母及一个红色来标识这个空间。最后 , 我们选择Create space按钮来创建这个空间。如法炮制 , 我们创建一个叫做ecommerce_analyst的空间。最后我们可以在列表中看到我们创建的空间。
4. 创建role
接下来 , 我们来创建我们的
role, 也就是我们的所说的角色。我们点击Management页面左下角的role:
从上面我们可以看出来 , 有好多已经帮我们创建好的
role。在我们创建用户的时候 , 我们可以选择已经被创建好的role来使用 , 针对我们的情况 , 我们想创建自己的role。点击Create role按钮:
最后的配置是这样的:

点击
Create role按钮。这样就完成了我们flight_analyst的role创建。如法炮制 , 我们可与创建另外一个叫做ecommerce_analyst的role。只是对这个role来说 , 它只可以访问kibana_sample_data_ecommerce索引 , 并具有read权限。同时它拥有对该Space的所有的权限。
这样 , 我们就创建了我们所需要的两个
role。
4. 创建用户
接下来我们来创建两个用户:
flight及ecommerce。
按照上面的步骤 , 我们来首先创建一个叫做
flight的用户:
我们按照上面的信息进行填写。密码可以选一个自己喜欢的密码。记得选择
flight_analyst作为它的role。点击Create user来创建我们的用户。同样的方法 , 我们来创建一个叫做ecommerce的用户:
点击
Create User按钮。这样我们就完成了创建两个用户的工作。
4. 为空间创建 Visualization
在这一步我们将为我们创建的两个空间分别创建它们的可视化
Dashboard。首先我们点击Saved Objects:
在这一步 , 我们想导出所有关于
Flight可视化的对象。我们首先在搜索框里输入flight, 并同时把Rows per page设置为50。这样我们一次性地可以把所有的对象都导出来。我们记住浏览器左下角的一个以ndjson为扩展名的文件。同时 , 我们也做如下的事情:
我们也导出这个叫做
kibana_sample_data_flights的对象。等我们操作完这上面的两步后,删除所有刚才已经选过的文件。
接下来,我们选择我们的
Space。点击做事上角的Space选择按钮:
当我们选择完后,我们可以看到做上角的那个
Space的地方显示的是红色,并且有一个“F”字样。我们点击Saved Object,并选择右上角的import。
我们可以通过拖拽的方式把刚才存下来的两个导出来的
ndjson文件导入到该Space。等导入完后,我们点击我们的Dashboard按钮:
我们可以看到
Flight的Dashboard在这个空间里。如法炮制,我们把eCommerce的数据导入到eCommerce的空间里。
至此,我们已经完成了我们所有的为空间 flight_analyst 及 ecommerce_analyst 的所有操作。
5. 使用不同的用户登录
最后是我们检查的时候了。我们可以使用我们之前创建的两个账号 flight 及 ecommerce 进行登录。最重要的是我们来查看在两个空间里分别看到的 dashboard。我们首先登出使用elastic 登录的账号,然后使用 flight 进行登录。

对于这个账号,我们只看见 Flight 的 Dashboard,但是我们看不到 eCommerce 的 Dashboard。这个也同样使用于 ecommerce 的账号。它只能看到 eCommerce 的 Dashboard,而看不到 Flight 的 Dashboard。

参考链接
Kibana: 为不同的用户生成不同的 Space_kibana space-CSDN博客