Search Guard 1.4 Kibana 访问权限
本文
-
安装Search Guard Kibana插件
-
配置这个插件
-
对用户赋予访问权限
-
测试插件的安装
既然安装了ElasticSearch且配置了用户和角色,现在需要一个可视化工具,Kinana入选。
安装Search Guard Kibana插件
最简单安装Kibana插件的方法是从线上的Maven仓库安装它。
从Maven仓库,匹配的精确的Kinana版本,复制这个URL** Search Guard Kibana plugin zip **:
-
停止Kibana
-
进入Kibana安装目录
-
执行如下命令
bin/kibana-plugin install https://url/to/search-guard-kibana-plugin-<version>.zip
配置这个插件
在Kibana的配置目录找到kibana.yml
,增加一些配置进去:
searchguard.auth.type: "basicauth"
searchguard.cookie.password: <encryption key, min. 32 characters>
elasticsearch.hosts: "https://<hostname>.com:<http port>"
elasticsearch.username: "kibanaserver"
elasticsearch.password: "kibanaserver"
elasticsearch.ssl.verificationMode: none
elasticsearch.requestHeadersWhitelist: ["Authorization", "sgtenant"]
searchguard.auth.type: “basicauth”
告诉Search Guard使用HTTP基础权限认证
searchguard.cookie.password
Search Guard使用一种** 加密 **的cookie保存session数据。这个设置定义这个密码使用加密。
虽然这个设置是可选的,且Search Guard会退回到这个默认的密码。但此设置去生成一个最少32字符的String字符串是明智的 (建议) 。
elasticsearch.hosts
Kibana将会连接的Elasticsearch的主机。由于Search Guard添加了TLS在Elasticsearch的REST的API上,确保你这里使用的https
而不是http
。
elasticsearch.username 和 elasticsearch.password
Kibana使用了内部的一个服务用户去执行任务和健康检测。这个Search Guard配置带来了一个用有所需的权限的Kibana用户可以去使用。
对于生产安装,你至少需要改变其密码,对于这个Kibana服务用户。
elasticsearch.ssl.verificationMode
由于Search Guard 的demo安装,使用的是自签名的TLS证书,我禁用证书验证。
对于生产安装,你需要配置这个root的CA在kibana.yml配置文件中,而不是禁用证书验证。
elasticsearch.requestHeadersWhitelist
默认情况下,Kibana不会转发任何的HTTP 头信息到Elasticsearch。因此我们需要把Search Guard使用的HTTP头信息加入到白名单。
对用户赋予Kibana访问权限
为了给用户赋予Kibana访问权限,我们需要分配它们到 build-in Search Guard role SGS_KIBANA_USER
SGS_KIBANA_USER:
backend_roles:
- hr_department
- devops
这将所有的后端角色hr_department
或者devops
映射到SGS_KIBANA_USER
角色。
测试插件安装
当改变配置和开启Kibana,一旦我们尝试登录,将会看到Search Guard登录屏幕。
我们尝试用用户jdoe
和密码jdoe
登录。
这个用户被分配给单一的sg_human_resources
角色。然而仅仅只赋予索引humanresources
只读的权限。
因此,如果我们尝试建立索引规则,那么只有索引humanresources
能访问。