Как безопасно использовать секреты переменных среды на производстве - PullRequest
0 голосов
/ 29 мая 2018

Я хотел бы использовать переменные окружения для безопасного хранения секретов с pm2.

У меня есть обратный прокси-сервер к серверу с экспресс-поддержкой, который использует базу данных с паролем при каждом подключении, чтобы соединиться, чтобы выполнить запрос.

Я хотел бы получить к нему обычный доступ из программы:

procsess.env.my_secret

, но я предполагаю, что простая установка переменной во время выполнения, как показано ниже, не является безопасной:

MY_SECRET="secret password" pm2/node my_api_server.js

Как мне установить секретный пароль, учитывая, что я использую pm2, и я хотел бы, чтобы переменная сохранялась при перезапусках / сбоях?

Я должен отметить, что обработка различных сред и передача кода другимразработчики через VCN для меня менее важны.

1 Ответ

0 голосов
/ 29 мая 2018

В предыдущих проектах ReactJS с бэкэндами Express, которые должны были подключаться к базе данных, я использовал пакет dotenv в NPM.После добавления в качестве зависимости к вашему проекту вы создадите скрытый файл .env в корне файловой структуры вашего сервера.

В этом файле .env вы можете создавать переменные среды.Эти переменные должны иметь префикс REACT_APP, как показано ниже:

REACT_APP_DBURI=<conn string here>
REACT_APP_MAILGUN_API_KEY=<key string here>
REACT_APP_CAPTCHA_SECRET_KEY=<key string here>

Вам необходимо указать пакет в вашем коде следующим образом:

require('dotenv').config();

Вы можете ссылаться на них на своем сервере.js (или любой другой) код как:

process.env.REACT_APP_VARIABLE_NAME

Эта статья среднего уровня содержит полное объяснение.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...