我有一个全局api密钥,用于验证对我的服务器api的请求。
因此api密钥必须存储在我的rails应用程序或服务器上。
快速搜索后,大多数人似乎建议将密钥存储在.yml文件中并将其加载到您的应用程序中。他们声称这是安全的,因为.yml文件没有被检查到git / source控件。
显然你应该将.yml文件添加到.gitignore,否则会添加git。
但如果你这样做,那么如果.yml文件没有签入git并且服务器上不存在,那么如何在部署(capistrano)之后加载文件?
这是一个示例railscast,演示了如何将密钥存储在.yml文件中:
http://railscasts.com/episodes/85-yaml-configuration-file?autoplay=true
答案 0 :(得分:0)
Capistrano将直接在生产中推送您的secrets.yml文件,而无需通过git
bundle exec cap production setup
答案 1 :(得分:0)
使用ENV vars是处理配置和机密的最强大,跨平台且安全的方法。