我想要求auth_basic nginx身份validation保存所有kibana 4仪表板,但允许任何人查看仪表板没有身份validation。
我最近使用DigitalOcean 教程在Ubuntu 14.04上安装了ELK(Elasticsearch 1.4.5,Logstash 1:1.5.2-1和Kibana 4.1.1)堆栈。
由于kibana使用基于浏览器的JavaScript来发送查询到elasticsearch,我不知道如何找出保护什么。
DigitalOcean提供了一个nginxconfiguration来完全保护对kibana 4的访问。
FILE:/etc/nginx/sites-available/default server { listen 80; return 301 https://logstash.nyc.3top.com; } server { listen 443; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; server_name logstash.example.com; access_log /var/log/nginx/kibana.access.log; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.users; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Elastic提供了一个nginx 样例configuration来完成这个Kibana 3,但不是Kibana 4:
server { listen *:80 ; server_name kibana.myhost.org; access_log /var/log/nginx/kibana.myhost.org.access.log; location / { root /usr/share/kibana3; index index.html index.htm; } location ~ ^/_aliases$ { proxy_pass http://127.0.0.1:9200; proxy_read_timeout 90; } location ~ ^/.*/_aliases$ { proxy_pass http://127.0.0.1:9200; proxy_read_timeout 90; } location ~ ^/_nodes$ { proxy_pass http://127.0.0.1:9200; proxy_read_timeout 90; } location ~ ^/.*/_search$ { proxy_pass http://127.0.0.1:9200; proxy_read_timeout 90; } location ~ ^/.*/_mapping { proxy_pass http://127.0.0.1:9200; proxy_read_timeout 90; } # Password protected end points location ~ ^/kibana-int/dashboard/.*$ { proxy_pass http://127.0.0.1:9200; proxy_read_timeout 90; limit_except GET { proxy_pass http://127.0.0.1:9200; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/conf.d/kibana.myhost.org.htpasswd; } } location ~ ^/kibana-int/temp.*$ { proxy_pass http://127.0.0.1:9200; proxy_read_timeout 90; limit_except GET { proxy_pass http://127.0.0.1:9200; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/conf.d/kibana.myhost.org.htpasswd; } } }
有没有人知道如何做到这一点Kibana 4?
这里是我的elasticsearch和kibana的configuration文件:
/etc/elasticsearch/elasticsearch.yml
network.host: localhost
/opt/kibana/config/kibana.yml
port: 5601 host: "localhost" elasticsearch_url: "http://localhost:9200" elasticsearch_preserve_host: true kibana_index: ".kibana" default_app_id: "discover" request_timeout: 300000 shard_timeout: 0 verify_ssl: true bundled_plugin_ids: - plugins/dashboard/index - plugins/discover/index - plugins/doc/index - plugins/kibana/index - plugins/markdown_vis/index - plugins/metric_vis/index - plugins/settings/index - plugins/table_vis/index - plugins/vis_types/index - plugins/visualize/index
如果通过POST完成日志保存,则可以仅对所有POST请求进行身份validation。 从另一个服务器故障回答 :
limit_except GET HEAD { auth_basic 'Restricted'; auth_basic_user_file /path/to/userfile; }
看看SearchGuard。 这就像Elastic的安全附加组件,但是免费的。
基本上,没有简单的方法来做到这一点与Kibana 4没有authentication更多地集成到Elasticsearch和Kibana。