безопасная производственная среда nodejs, использующая dotenv

Используя dotenv, я могу игнорировать файл .env разработки, прежде чем помещать его в репозиторий git, он соответствует с фактором конфигурации приложения с двенадцатью факторами. Это предотвращает раскрытие конфигурации другим пользователям, особенно проектам с открытым исходным кодом.

Но я застрял при развертывании его в производственной среде, используя облачное развертывание или докер.

Как я могу включить этот файл? Следует ли мне сохранить файл в Vault или что-то в этом роде?

Пожалуйста, помогите мне понять, как я могу защитить свою среду развертывания.


person Alvin    schedule 03.06.2017    source источник


Ответы (2)


Вы этого не сделаете. Среда сервера (докер или иначе) должна быть настроена с ее собственными переменными среды, а не с переменными разработки. Любые, которые будут одинаковыми в обоих, которые вы настраиваете в качестве значений по умолчанию для приложения, чтобы они имели это значение, даже если переменная не установлена.

person Paul    schedule 03.06.2017
comment
Но считается ли это безопасным? Просто сохраните ваши учетные данные для аутентификации / авторизации как переменные среды на сервере? - person temporary_user_name; 16.11.2018
comment
@aerovistae, который зависит от множества других факторов, например от того, как вы строите машину, и так далее. В общем, да, если вы достаточно хорошо заблокируете машину, используйте непривилегированные учетные записи, чтобы действовать в качестве пользователя службы и т.д., как правило, в более крупных развертываниях вы фактически сохраняете их в хранилище секретов и вводите их в систему при сборке время от шеф-повара, ансибля, что угодно. Однако с точки зрения приложения они по-прежнему являются просто переменными среды. - person Paul; 16.11.2018

Вы можете использовать протокол передачи файлов, такой как filezilla или cyberduck, и передать файл в среду производственного сервера. Убедитесь, что файл .env, который вы отправляете на свой сервер, содержит учетные данные для производственной базы данных, а не для базы данных разработки и так далее. В качестве альтернативы вы можете просто добавить переменные среды в файл .env или .bashrc вашего удаленного сервера, но это, вероятно, не рекомендуется по сравнению с файлом .env. Пока никто, кроме вас, не имеет доступа к удаленному серверу (docker, heroku, aws и т. Д.), Ваши учетные данные должны быть в безопасности. Никогда не делитесь своими файлами .pem.

person mandy1339    schedule 17.08.2017