Есть ли способ программно добавить секреты в config / credentials.yml.enc в Rails 5.2?
Передача credentials.yml.enc в репозиторий для внутреннего использования может быть полезной, но как только приложение используется другими людьми, им требуются другие секреты в их среде. Как и учетные данные Oauth2 будут отличаться для каждой реализации.
Для запуска приложения в докере (например) потребуется больше ручного взаимодействия и ноу-хау Docker, чем обычно. В большинстве случаев более безопасный способ используется только в том случае, если он не требует больших усилий.
Сначала нужно будет запустить docker exec <app-name> -it /bin/bash
, чтобы можно было запустить rails credentials:edit
.
Было бы лучше иметь возможность заполнять файл учетных данных программно.
Например, можно предоставить временный файл учетных данных, например:
production:
postgresql:
username: 'admin'
password: 'very_insecure'
Тогда может быть скрипт, добавляющий содержимое файла в файл учетных данных и впоследствии удаляющий временный файл.
Конечно, переменная окружения RAILS_MASTER_KEY
должна быть установлена (это может быть снова сценарий, перемещающий содержимое файла master.key в переменную), чтобы получить какую-либо прибыль от этого.