繁体   English   中英

如何使用Nginx阻止选定的Kibana子页面?

[英]How to block selected Kibana subpages using nginx?

我有一个与Nginx相关的问题。 我使用elasticsearch和Kibana来存储和可视化数据。 我想使用nginx禁止访问Kibana中的选定子页面。 在Kibana中有几个子页面(应用程序):

  • 发现(localhost:5601 / app / kibana#/ discover)
  • 可视化(localhost:5601 / app / kibana#/ visualize)
  • 仪表板(localhost:5601 / app / kibana#/ dashboard)
  • Timelion(localhost:5601 / app / timelion)
  • 开发工具(localhost:5601 / app / kibana#/ dev_tools)
  • 管理(localhost:5601 / app / kibana#/ management)

我想授予所有具有可视化,仪表板和Timelion子页面密码的用户权限。 但是我想阻止(使用不同的密码)发现,开发工具和管理子页面。 我创建了三个文件。

  • kibana.htpasswd-用户“ elastic”,该用户应具有可视化,仪表板和Timelion子页面的权限,并且不应具有“发现”,“开发工具”和“管理”子页面的权限
  • kibana-admin.htpasswd-用户“ admin”,应具有所有子页面的权限
  • kibana.conf-配置文件

kibana.conf:

server {
listen *:5611;
server_name localhost;
access_log /var/log/nginx/kibana-access.log;
error_log /var/log/nginx/kibana-error.log;

location / {
auth_basic "Access denied";
auth_basic_user_file /etc/nginx/conf.d/kibana.htpasswd;
proxy_pass localhost:5601;
}

location /app/kibana#/management {
auth_basic "Access denied";
auth_basic_user_file /etc/nginx/conf.d/kibana-admin.htpasswd;
proxy_pass localhost:5601;
}

location /app/kibana#/dev_tools {
auth_basic "Access denied";
auth_basic_user_file /etc/nginx/conf.d/kibana-admin.htpasswd;
proxy_pass localhost:5601;
}

location /app/kibana#/discover {
auth_basic "Access denied";
auth_basic_user_file /etc/nginx/conf.d/kibana-admin.htpasswd;
proxy_pass localhost:5601;
}
}

问题是,当我在浏览器中打开localhost:5611并以“弹性”用户身份登录时,我拥有所有子页面的权限。 我应该在配置文件中进行哪些更改以阻止用户“弹性”用户的管理子页面? Nginx有可能吗?

我认为nginx不可能做到这一点,您可能想研究保护木假名的替代方法。

Searchguard是保护kibana的一种很好的开源方法。 还有X-Pack ,它为ELK堆栈提供了一些有用的功能(不是那么开源...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM