Elastic Stackを活用していくにつれ、セキュリティに対する需要は高まってきます。
今回のテーマはユーザ認証です。
Kibanaでは可視化の画面やレイアウト、はたまたElasticsearchのインデックスまで自由に手を加えることができます。
便利な一方、利用者が増えれば、画面のレイアウトを誰かが変更してしまったり、誤ってインデックスを削除してしまったなんてトラブルも起きかねません。
それらの対策となるのが、ユーザ認証です。
この設定をすることで、設定を変更できる管理者ユーザと、見る専用の一般ユーザといったように分けることができます。
この設定は、無料のBASICライセンスでもできるので、是非参考にしてください!
なお、本記事の動作環境はWindows10、elasticsearchおよびKibanaは7.10.2のオンプレ版(zip)です。
elasticsearch.ymlを編集する
Elasticsearchが起動している場合は一旦停止し、elasticsearch.ymlを編集します。
以下を追記して、xpackのセキュリティを有効にします
xpack.security.enabled: true
追記したら、elasticsearchを起動します。
うまくいかないとき
上記を追記しただけではうまく起動しないという場合は、以下のようにしてみてください。
※discovery.type: single-nodeは、Elasticsearchがクラスタ構成になっている場合には使えないので注意
network.host: 0.0.0.0
xpack.security.enabled: true
discovery.type: single-node
セキュリティが有効になっていることを確認する
chromeでElasticsearchのセキュリティが有効になっていることを確認します。
このように、ログインを求められればOKです。
ビルドインユーザのパスワードを設定する
次は、予め用意されているユーザのパスワードを設定します。
用意されているユーザは7つあります
- elastic
- kibana_system
- kibana
- logstash_system
- beats_system
- apm_system
- remote_monitoring_system
パスワードを設定は、コマンドプロンプトから行います。
カレントディレクトリをelasticsearchのbinフォルダに設定し、以下のコマンドを実行します
#パスワードを自動で決める場合
elasticsearch-setup-passwords auto
#パスワードを自分で決める場合
elasticsearch-setup-passwords interactive
ここで設定したパスワードはKibana画面で変更できますが、セキュリティ設定後初めてKibanaにログインするときはここで設定したパスワードを使うので忘れないようにしてください。
Kibana.ymlを編集する
Elasticsearch側の設定は完了で、Kibanaの設定を行います。
kibana.ymlで、先ほどビルドインユーザと、先ほど決めたパスワードを記入します。
elasticsearch.username: "elastic"
elasticsearch.password: "ebdcfKZRzMMqh6vDB5sd"
41行目あたりにあるユーザ名とパスワードを入力します。
今回は、スーパーユーザであるelasticを用いています。
設定したら、Kibanaを再起動します。
ブラウザでKibanaを開こうとすると、ログインを要求されるようになります。
ここで、ビルドインユーザと先ほど設定したパスワードを入力します。
ユーザの管理
ユーザの追加やパスワードの変更は、Kibana上でできます。
画面左のメニューからスタック管理を開きます。
画面左中段の”ユーザ”から、ユーザの管理ができます。
なお、この画面も権限を与えられえたユーザでログインした場合のみ表示されます。
細かくロールを指定することで、あるユーザはKibanaのダッシュボードを見るだけ、あるユーザはKibanaの画面編集はできるがインデックス管理はできない、、、といった役割分担ができます。
まとめ
Elastic Stackでユーザ認証を行う方法を紹介しました。
この辺の機能も無料で使わせてくれるあたり、親切ですね^^
セキュリティに関しては、TLSあたりも無料でできる範囲なので、まとめていけたらと思います。
ではでは👋