2017-03-06 47 views
0

我有一個與nginx相關的問題。我使用elasticsearch和Kibana來存儲和可視化數據。我想要阻止使用nginx訪問Kibana中的選定子頁面。有一對夫婦的子頁面(應用程序)在Kibana:如何使用nginx阻止選定的Kibana子頁面?

  • 發現(本地主機:5601 /應用/ kibana#/發現)
  • 可視化(本地主機:5601 /應用/ kibana#/可視化)
  • 儀表板(本地主機:5601 /應用/ kibana#/儀表盤)
  • 天聯(本地主機:5601 /應用/天聯)
  • 開發工具(本地主機:5601 /應用/ kibana#/ dev_tools)
  • 管理(本地主機:5601/app/kibana#/ management)

我想授予所有擁有可視化,儀表盤和Timelion子頁面密碼的用戶的權限。但我想阻止(使用不同的密碼)發現,開發工具和管理子頁面。我創建了三個文件。

  • kibana.htpasswd - 用戶「彈性」,這應該具有可視化,儀表盤和天聯子網頁的權限,應該沒有權限去發現,開發工具和管理子頁面
  • kibana-admin.htpasswd - 用戶「管理員,這應該允許所有的子頁面
  • 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並以'elastic'用戶身份登錄時,我有權訪問所有子頁面。我應該在配置文件中更改以阻止用戶'elastic'的管理子頁面?用nginx可以嗎?

+0

你看看這篇文章:https://www.mapr.com/blog/how -secure-elasticsearch-and-kibana – Adonis

+0

感謝您的評論。我讀過這篇文章,這真的很有趣,但是我沒有在我的問題上找到答案。 –

回答

1

我不認爲這可能與nginx有關,您可能需要尋找保護kibana的替代方案。

Searchguard是保護kibana的一個很好的開源方法。另外還有X-Pack,它爲ELK堆棧提供了一些有用的功能(不是那麼開源......)

+0

感謝您的回答。我會檢查Searchguard,但據我記得很難配置。但我會給它一個機會。 –

+0

是的,這是一個痛苦的設置,文檔是如此分散在許多不同的頁面。 –