С помощью Keystore мы можем безопасно использовать пароли в файлах конфигураций ELK
. Если просто, то мы создаём хранилище ключей, к которому будут иметь доступ только приложения ELK
.
Для начала находим где именно лежит бинарный файл logstash-keystore, именно его мы будем использовать для создания keystore.
sudo find / -name logstash-keystore
/usr/share/logstash/bin/logstash-keystore
Создание keystore
Для создания keystore используем наш бинарный файл добавляя значение create
.
cd /usr/share/logstash/bin/
./logstash-keystore create
Команда создания выведет сообщение что мы должны установить LOGSTASH_KEYSTORE_PASS, сообщение выглядит так: Please set the environment variable LOGSTASH_KEYSTORE_PASS
. Т.е. требуется, чтобы пользователь, запускающий Logstash, определил переменную среды LOGSTASH_KEYSTORE_PASS
.
Собственно, остаётся только так и cделать раз это настройка от самого ELK
. Добавляем LOGSTASH_KEYSTORE_PASS
в env
и он в итоге окажется в файле /usr/share/logstash/config/logstash.keystore. Удостоверьтесь что у пользователя есть права на запись в эту директорию.
Если у вас logstash запущен как сервис, то необходимо также добавить эту переменную в сам сервис, используя сам файл описания сервиса (/etc/systemd/system/logstash.service
) либо же добавить в файл /etc/default/logstash
.
Добавляем переменную
Если вы хоть немного знакомы с иб, то уже должны понимать, что записывать пароли в историю команд не стоит поэтому перед выполнением export
отключаем запись команд в bash history
.
sudo set +o history
export LOGSTASH_KEYSTORE_PASS=mypassword
sudo set -o history
И снова запускаем logstash-keystore create.
/usr/share/logstash/bin/logstash-keystore create --path.settings /etc/logstash
Created Logstash keystore at /etc/logstash/logstash.keystore
Добавление ключей в keystore
И осталось дело за малым а собственно осталось только добавить ключи в keystore, используя команду ./logstash-keystore add
.
./logstash-keystore add USR --path.settings /etc/logstash/
./logstash-keystore add PASS --path.settings /etc/logstash/
Просмотр ключей в keystore
Для того чтобы просмотреть что там лежит в нашем keystore используем ./logstash-keystore list
.
./logstash-keystore list --path.settings /etc/logstash/
usr
pass
Удаление ключей из keystore
./logstash-keystore remove USR --path.settings /etc/logstash/
./logstash-keystore remove PASS --path.settings /etc/logstash/
Использование ключей
Далее вы можете использовать эти ключи в любом месте любого файла конфигурации logstash. Для примера я укажу пароль для output
в elasticsearch
.
elasticsearch {
user => "${usr}"
password => "${pass}"
}
Комментарии