我正在使用 Heroku 托管的 RoR,我想使用回形针将文件存储在 s3 上。我的源代码托管在 github 上,全世界都可读。对世界其他地方保密密钥的最佳做法是什么?
Paperclip 建议将访问密钥存储在配置文件(或代码)中,例如我有:
文件:config/s3.yml
access_key_id: my_access_key_id
secret_access_key: my_very_secret_key
bucket: bucket_name
Heroku 的工作原理是将代码提交到本地 git,然后将其推送到 Heroku。
由于我也在使用 github,所以我也将相同的代码推送到 github。这意味着我也将密钥推到那里。
我目前正在使用一个世界可读的 github 帐户,所以如果我向 github 付费,我可以解决一半的问题,但我仍然不满意代码中配置文件中的密钥。我不知道是否有更好的做法。
保密密钥并仍然使用上述库和服务列表的最佳实践是什么?
顺便说一句,我上周才开始使用 ror 和 heroku,所以我可能被认为是新手,请体谅;)谢谢!
您需要使用 heroku 应用程序中的 ENV 变量。
如果您执行 heroku 配置,您可以访问所有 ENV 变量。您只需添加一些并直接在您的应用程序中使用它。
使用此技巧,您不需要更新代码来更改配置,并且如果代码库中没有定义配置,则无需更改配置。
在你的 s3.yml 中你只需要这样做:
access_key_id: <%= ENV['S3_ACCESS_KEY'] %>
secret_access_key: <%= ENV['S3_SECRET_KEY'] %>
bucket: <%= ENV['S3_BUCKET_NAME'] %>
并在您的 heroku 应用程序中添加此 ENV VARIABLE
heroku config:add S3_ACCESS_KEY='your_key'
heroku config:add S3_SECRET_KEY='your_secret'
heroku config:add S3_BUCKET_NAME='your_nucket_name'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)