mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

Elasticsearch、KibanaにShieldプラグインを入れる

ES、Kibanaを本番で使うために、認証を入れられるようにShieldプラグインを入れる。
Shield: Enterprise Security for Elasticsearch | Elastic

環境

  • CentOS 6.8
  • Elasticsearch 2.4.1
  • Kibana 4.6.1
  • Shield 2.4

ESとKibanaは入ってるものとする。

Shield入れる

基本この辺そのまま。
Getting Started with Shield | Shield [2.4] | Elastic

// ライセンスインストール(30日無料で、それ以上は有料プラン入らなあかん)
$ /usr/share/elasticsearch/bin/plugin install license
// ESのshieldプラグイン入れる
$ /usr/share/elasticsearch/bin/plugin install shield
// Kibanaのshieldプラグイン入れる
$ /opt/kibana/bin/kibana plugin --install kibana/shield/latest

設定

kibanaからESにアクセスできるように、kibana4-server-manというユーザーを作成する。shield/roles.ymlkibana4_serverというこの役割をするroleがデフォルトで書かれてるので、このroleをこのユーザーに付与する。

$ /usr/share/elasticsearch/bin/shield/esusers useradd kibana4-server-man -r kibana4_server
// role書かれてるの確認
$ less /etc/elasticsearch/shield/roles.yml

ログインユーザーを設定する。name: hoge, password: hogehogeで作る。roleはadminにしとく。

$ /usr/share/elasticsearch/bin/esusers useradd hoge -r admin
// ユーザー確認
$ /usr/share/elasticsearch/bin/esusers list

SSLの設定

KibanaでShield使う場合はssl化必要。
ここでは使用ドメインに対してSSL化対応は完了してるとする。(まだならここ見る サイトをSSL化する(VPS, CentOS6 + Apache) - mazeltov7のweb断片
kibana.ymlにSSL情報書く

$ vim /opt/kibana/config/kibana.yml
server.ssl.cert: /path/to/cert/hoge.crt
server.ssl.key: /path/to/key/hoge.key
(略)
shield.encryptionKey: "something_secret"

// 再起動
$ service kibana restart

で、アクセスして、ログインできたら、OK。
あ、firewall使ってたら、kibanaでアクセスする、5601を開けておく。

参考:

【新機能】ShieldがKibanaに対応しました | Developers.IO