我(仍然/总是)是Rails的新手。在我构建我的项目时,Rails使用encrypted credentials升级到了v5.2。现在我正要部署到生产环境中,我发现我不知道如何将生产凭证与开发分开。我不确定我是否知道在v5.1中我会如何做到这一点。那么如何在Rails 5.2中实现它呢?
发布于 2019-06-10 21:30:49
我发现rails-env-credentials的gem对此很有用。不确定它与即将到来的Rails 6支持的兼容性如何,但它在我的应用程序上工作得很好。
发布于 2018-12-30 16:33:31
我相信这个想法不是在你的凭证文件中有多个环境,而是有多个凭证文件。
我们通过使用credentials.dev.enc、credentials.production.enc等解决了这个问题。
然后,我们将特定文件上载到特定服务器,作为部署过程的一部分。
这还允许您的环境拥有独立的主密钥和加密密钥,从而降低系统中的安全风险。
发布于 2018-12-06 07:05:37
虽然@dhh和@morgoth promise to add environment management to Rails 6,我用这种方式解决了我的任务,看起来一切都很好:
# application.rb
class Application < Rails::Application
if Rails.env.development?
ENV["access_key_id"] = Rails.application.credentials.DEV_aws[:access_key_id]
ENV["secret_access_key"] = Rails.application.credentials.DEV_aws[:secret_access_key]
ENV["s3_bucket_name"] = Rails.application.credentials.DEV_aws[:s3_bucket_name]
end
if Rails.env.production?
ENV["access_key_id"] = Rails.application.credentials.PROD_aws[:access_key_id]
***
end
end所有内容都已就位并加密
https://stackoverflow.com/questions/53642152
复制相似问题