【发布时间】:2019-05-13 19:48:32
【问题描述】:
有没有办法在 Rails 5.2 中以编程方式向 config/credentials.yml.enc 添加机密?
将 credentials.yml.enc 推送到存储库以供内部使用可能没问题,但是一旦其他人使用该应用程序,他们就需要在其环境中使用不同的机密。就像每个实现的 Oauth2 凭据会有所不同。
在 docker 中运行应用程序(例如)将需要比平时更多的手动交互和 Docker 知识。在大多数情况下,更安全的方式只会在不费力的情况下使用。
需要先运行docker exec <app-name> -it /bin/bash 才能运行rails credentials:edit。
能够以编程方式填写凭据文件会更好。 例如,可以提供一个临时凭证文件,例如:
production:
postgresql:
username: 'admin'
password: 'very_insecure'
然后可能会有一个脚本将文件的内容添加到凭据文件中,然后删除临时文件。
肯定必须设置 RAILS_MASTER_KEY 环境变量(可能又是一个将 master.key 文件的内容移动到变量中的脚本)才能从中获利。
【问题讨论】:
标签: credentials production-environment ruby-on-rails-5.2