Назад | Перейти на главную страницу

Каковы лучшие практики для экспорта секретов (паролей, ключей) в среду управляемых служб systemd?

Каковы лучшие практики для управления учетными данными и секретами SHA256 и их предоставления управляемым системным службам?

При старом пути init.d я бы просто установил скрипт в / etc / default, который будет получен. Оттуда я мог импортировать любой контент, который захочу, в переменные среды, которые затем доступны для моих служб.

Итак, мой вопрос: что считается «лучшей практикой» для предоставления учетных данных идентификатора логина / пароля и других «секретов» для управляемых служб systemd? Считается ли передача его через среду «хорошей» или есть принятый лучший / более безопасный способ?

(т.е. как лучше всего разместить пароли вашей службы (например, mysql), секреты SHA256 и т. д. и как наиболее эффективно передать их долго работающим фоновым службам, которые в этом нуждаются? Есть ли более управляемый способ, чем установка их в среде до того, как процессы будут запущены systemd?)

Я не знаю, есть один правильный способ передать безопасные учетные данные с помощью systemd. В Environment= и EnvironmentFile= директивы, безусловно, помогают передавать переменные среды, как в старых системах инициализации. Если вы ищете прямой перевод того, чем вы занимались, то это все.

Ваше приложение также может использовать собственную систему конфигурации, например узел-конфигурация для Node.js. Пакет config, в свою очередь, может предоставить дополнительные альтернативы для управления секретами. Например, node-config также может загружать значения из переменных среды, но также можно работать git-crypt, для работы со значениями, которые были сохранены в зашифрованном виде в Git.

Некоторые вещи, о которых следует знать о переменных среды: даже если вы не сохраняете переменные среды, которые вы установили в файле, если вы передаете их процессу при запуске, переменные среды и их значения могут быть найдены в именах файлов. лайк /proc/27/environ в Linux, чтобы пользователи имели права на чтение файла. Эти значения «среды запуска» сохраняются, даже если процесс позже их удалит.

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