我正在运行一个jelastic设置来托管多个Rails应用程序。
在Rails中,store configuration in the environment很常见。特别是秘密数据,例如密码或访问密钥。
我应该将它们放在Ruby / Rails jelastic设置上?
我目前有乘客的nginx;因为那是默认的。如果Puma或Unicorn让这更容易或更强大,我很乐意听到。
我目前使用nginx env指令在/etc/nginx/nginx.conf
中声明了我的环境变量。但这意味着我将分泌存储在nginx.conf文件中。呸。
## ENV VARS
env SECRET_KEY_BASE=xxxxxxxxxxxx;
env BLAZER_USERNAME=uuuuu;
env BLAZER_PASSWORD=xxxxxxxxxxxx;
env AWS_ID=aaa;
env AWS_SECRET_KEY=aaa;
env BLAZER_DATABASE_URL=postgres://uuu:ppp@example.com:5432/production;
编辑:我不想让机密"其他用户/进程远离机器"。我不想将我的秘密存储在我的应用程序git-repo中。这真的是非常糟糕的做法。因此,我希望我的Rails应用程序可以阅读,例如ENV['AWS_SECRET_KEY']
而不是在我的代码库中的某处存储该密钥。
答案 0 :(得分:2)
最简单的方法是将此环境变量粘贴到.bash_profile配置文件中,该文件位于您家中,可以通过SSH访问。
答案 1 :(得分:1)
Phusion Passenger不在交互式shell中运行。 可能,您现在正在使用最佳解决方案(nginx配置)。
答案 2 :(得分:0)
Jelastic将每个环境的节点(例如Application Servers,Databases,Docker等)作为单独的虚拟机提供(完全独立的实例,不能是受硬件上任何其他帐户的影响)。完全隔离并专注于您的特定需求,它可确保足够的隐私,并可配置为使用敏感数据运行任何应用程序。
我们的文档中有一个指南Setting Custom Environment Variables via SSH,对您的案例有帮助。
一般来说,我们想说,对于大多数使用环境变量的情况,Jelastic是安全的。