Kibana 4, панель инструментов Logstash: как я требую аутентификации Nginx при сохранении, но позволяю анонимные представления?

Я хотел бы потребовать, чтобы auth_basic nginx аутентификация сохранил весь kibana 4 панели инструментов, но позволил любому просматривать панели инструментов без аутентификации.

Я недавно установил ЛОСЯ (Elasticsearch 1.4.5, Logstash 1:1.5.2-1 и Kibana 4.1.1) стек на Ubuntu 14.04 с помощью учебного руководства DigitalOcean.

Поскольку kibana использует JavaScript на базе браузера для, отправляет запросы в elasticsearch, я не уверен, как выяснить, что защитить.

DigitalOcean предоставляет конфигурацию nginx полностью безопасному доступу к 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;
    }
}

Эластичный обеспечил nginx демонстрационную конфигурацию для выполнения этого для 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:

/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
2
задан 13 July 2015 в 22:23
2 ответа

Если сохранение журнала выполняется через POST, вы можете просто потребовать аутентификацию для всех запросов POST. Из другой ответ о сбое сервера :

limit_except GET HEAD {
    auth_basic 'Restricted';
    auth_basic_user_file /path/to/userfile;
}
0
ответ дан 3 December 2019 в 12:46

Взгляните на SearchGuard. Это похоже на надстройку безопасности Elastic, но бесплатную.

По сути, нет простого способа сделать это с Kibana 4 без интеграции аутентификации в Elasticsearch и Kibana.

1
ответ дан 3 December 2019 в 12:46

Теги

Похожие вопросы