直到现在,我都以通常的方式处理我的应用程序 secret :
留在我的电脑上。
根据 AWS 推荐,我的角色允许我拥有特定于开发的 key 。这允许将我的开发 key 限制为与生产 key 具有不同范围的某些功能。
ENV["AWS_SES_KEY"]
一样被调用在 config/environments/production.rb
. 我非常喜欢它,因为如果我的计算机被盗,可以在 AWS 上删除随后损坏的开发 key ,而无需接触生产 key 。并且由于开发 key 可以限制在 AWS 的特定范围内,它可以防止任何危险的更改(完整的存储桶删除......)
现在我们有了凭据,如果我没记错的话,所有 key (开发和生产)都在同一个加密文件中。主 key 是唯一现在播种到 Heroku 的环境 key 。虽然我仍然需要在本地使用此 key 来访问凭据。然后,如果我的计算机被盗,开发 key 和生产 key 都已损坏,并且会给我的生产应用程序带来更高的风险。
我在新凭据功能上缺少什么吗?有什么办法可以避免上述问题?
仍然使用
secrets.yml
会很棒用于开发 key 和 credentials.yml.enc
对于生产 key ,它是如何设计的?
最佳答案
如release notes对于 Rails 5.2.0 状态, future 的意图是替换 secrets.yml
和 secrets.yml.enc
与 credentials.yml.enc
:
This will eventually replace Rails.application.secrets and the encrypted secrets introduced in Rails 5.1.
credentials.yml.enc
有很明显的意义仅用于包含生产凭据,因为 Rails 建议在其中不包含特定于环境的 key ; IE。,# don't do this
development:
# ...
production:
# ...
至于
config/master.key
“腐败”风险,我不知道如何回答。只有在生产模式下运行时才需要主 key 。您还可以将主 key 存储在 RAILS_MASTER_KEY
中。环境变量。在开发中,如果您想编辑 credentials.yml.enc
,您只需要主 key 。 .
关于ruby-on-rails - 在 master.key 损坏的情况下,Rails 新凭据会产生更大的风险吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50847451/