Kibana:为不同的用户生成不同的Space
Elastic安装机制
在很多的情况下,出于安全的原因,我们需要对不同的Kibana用户分配不同的用户权限,这样使得他们之间不能互相访问彼此的资源,同时他们也应该对不同的索引拥有不同的权限,比如读,写,管理等等。Elastic Security通过基于角色的功能提供授权存取控制(RBAC-Role Based Access Control)。
一个用户可拥有不同的role,并且每一个role都含有不同操作权限。使用RBAC,您可以控制访问通过定义:
- users:创建具有不同的属性的账号(username, full name,邮件,及相应的roles)
- roles:分配一组命名权限,Elasticsearch里含有有多个内置角色
- resources:限制访问的实体,比如document或一个索引
- privileges:代表一个或多个动作的命名组可以在资源上执行
- permissions:应用于一个特权的一组一个或多个特权或更多资源
Resource 权限 许可 Index 读 读取twitter索引 Index 所有 对用户的索引进行所有的操作
什么是Space(空间)?
通过Space可以组织仪表板和其他将对象保存到有意义的类别中。在默认的情况下这个功能是启动的。可以在elasticsearch.yml文件中进行配置:
xpack.spaces.enabled: false
上面的配置将使得这个功能被取消。
在一个空间内创建的对象只能从该空间进行访问。启用安全性后,您可以控制哪个用户拥有访问哪些空间。来自特定空间的已保存对象将被标记为在该空间的对象。
在默认的情况下,Kibana在启动时帮我们创建一个名字叫做Default的空间。当我们从一个没有空间的版本升级后,那么所有的visualization将会被存于Default的空间里。当我们创建一个Space时,它只需要一个名字,它被用来生产URL识别符,我们还可以加入一些描述符。
下面我们来通过一个实验来了解Space是如何工作的。
准备工作
1、创建space
点击左上角的Space空间,默认是Defalut,点击“Manage Sapce”。进入到Space界面后,点击右上角的“Create a space”.输入名称,然后点击“Create space”.
同样操作创建另一个space,最终显示界面信息如下:
2.创建角色Role
3、点击左上角space,切换到test1的space
然后点击“Dev Tools”工具,在这个Test1 space下创建一个索引test1: PUT /test1/_doc/1 { "name":"test1" } **注意:我这边是先创建的role管理的索引,后创建的索引,注意索引名称** 然后回到“Management”下的“Kibana”的“Index Patterns”,创建一个索引模式,输入的时候会提示有test1和test2,但是我们只选择test1,最终效果如下:
然后点击左边导航第一个“Discover”,会发现,在test1这个space下只能看到test1*
, 在test2这个space下只能看到test2*
,在default这个默认的space下看不到任何索引。
总结:深刻理解这句话:在一个空间内创建的对象只能从该空间进行访问
若是已有索引模式,则可以先删除索引模式,然后创建space,创建角色,创建用户等,切换到创建的space,再创建索引模式。也就是说需要在这个space下进行操作才行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!