kibana权限管理
实际操作步骤
-
创建工作区,设置工作区左侧导航的菜单是否显示 (只是设置隐藏,并不是这是权限访问的)
-
创建角色,设置对指定索引的读写
-
给角色指定kibana权限,选定第一步创建的工作区,设置角色对这些菜单栏是否有访问权限 (隐藏的没有访问权限,显示的有访问权限)
-
添加用户,设置用户角色,选择第二步创建的角色,并且用户想要访问登录到kibana中,还需要给用户设置kibana_system角色才行 (不是kibana_admin角色)
-
查看实际效果
1.登录后直接显示的是指定的工作区
2.左侧菜单栏显示
权限简介
权限维度
可用于控制用户对集群 API 和索引的访问权限;通过针对 Kibana Spaces 的安全功能,还可允许在 Kibana 中实现多租户。
权限分离
- RBAC / Role Based Access Control :Resource 面向指定的资源
- index / aliases / documents / fields : Permissions 所具有的操作权限列表,如可读、可写等
- Privileges 具体的权限,如可读权限
- Role 最终被绑定到相关 User 才能生效,内置了 superuser、kibana_admin、kibana_user等一些常用角色,用于绑定到内置的用户
Space维度
Space是Elastic 6.5版本引入的新特性,便于企业分组管理。
比如:开发、测试、运维、产品可以是不同的视角
案例:开发人员,只允许使用enterprise search模块,其他模块禁用
- 新建spaces
- 重新登陆,切换space
- 查看功能模块
角色维度
用户维度
操作实战
角色配置
- 创建logs_index_rw 角色,对kibana_sample_data_logs这个index具备读和写权限
# 请求
POST /_security/role/logs_index_rw
{
"indices": [
{
"names": ["kibana_sample_data_logs"],
"privileges": ["read","write"]
}
]
}
# 响应
{
"role" : {
"created" : true
}
}
- 创建data_index_r角色,对data*的index具备读权限
# 请求
POST /_security/role/user_data_r
{
"indices": [
{
"names": ["data*"],
"privileges": ["read"]
}
]
}
# 响应
{
"role" : {
"created" : true
}
}
用户配置
- 创建用户tom,绑定角色logs_index_rw,user_data_r
# 请求
POST /_security/user/tom
{
"password": "123456",
"roles": [
"logs_index_rw",
"user_data_r"
],
"full_name": "tom",
"email": "tom@example.com"
}
# 响应
{
"created" : true
}
修改密码
# 修改tom用户密码
POST /_security/user/tom/_password
{
"password" : "123456"
}
- 注意kibana访问注意需要配置kibana-role的权限,否则无法登录。