Как я могу хранить ключ шифрования вне контроля версий в Ruby - PullRequest
0 голосов
/ 11 апреля 2019

Мне нужно использовать шифрование для личных / личных данных пользователя. Я собираюсь использовать следующую библиотеку шифрования.

RbNaCL

Мне нужен способ хранить КЛЮЧ вне контроля версий, чтобы я мог запускать приложение локально. При отправке кода в нашу хостинговую компанию я могу поместить ключ в переменные env сервера. Просто не уверен, как и как лучше сделать это локально.

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

https://www.happybearsoftware.com/how-to-actually-do-a-cryptography-in-ruby

Ответы [ 3 ]

1 голос
/ 11 апреля 2019

Как правило, секреты никогда не передаются в хранилища. Просто поместите их в файл конфигурации (например, config.yaml или secrets.xml или env.sh или аналогичный); скопировать файл (например, config.yaml.example или secrets-skel.xml или env.sh.sample); поместите первый в .gitignore (или эквивалентный, если вы не еретик из Git) и замените все секреты во втором заполнителями. Зафиксируйте второй, чтобы каждый, кто проверяет проект, знал формат, который они должны иметь; но секрет никогда не касается хранилища. Если вам нужно поделиться ключами между разработчиками, сделайте это другим способом (от IRC / Slack / Email до зашифрованного USB-устройства хранения данных, в зависимости от того, насколько конфиденциальным является материал).

Если вы используете YAML-ишное решение, в коде вы можете попытаться найти файл, если его нет, использовать среду или наоборот - искать среду, если нет переменных, искать файл конфигурации. читать из (и, возможно, даже вставить его в ENV, чтобы вам не понадобился другой объект конфигурации; вы можете сделать это в виде config/application.rb. Если вы используете подход env.sh, вы можете объявить окружение переменные напрямую, когда вам нужно начать разработку, вы можете source env.sh (или короче . env.sh) настроить их.

1 голос
/ 11 апреля 2019

Я думаю, что вы спрашиваете, как сохранить .env вне контроля версий, пока в хранилище люди, сотрудничающие, должны знать, каковы переменные среды.Обычно .env-sample (который представляет собой dumy, в котором все переменные хранятся без значений) отслеживается, а .env игнорируется (добавляя его в .gitignore в случае git)

0 голосов
/ 11 апреля 2019

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

Храните ключ и любые другие общие секреты в безопасном общем хранилище. Многие менеджеры паролей предоставляют общие хранилища, такие как 1Password или LastPass .

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

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