到目前为止,我一直在以通常的方式处理我的应用程序机密:
开发中:我的秘密未加密地存储在我的 secrets.yml 文件中。secrets.yml 文件未提交到 Github 并保留在我的计算机上。
根据 AWS 建议,我的角色允许我拥有开发特定的密钥。这允许将我的开发密钥限制为与生产密钥具有不同范围的某些功能。
- 在生产中:我的密钥存储在 Heroku 上并像
ENV["AWS_SES_KEY"]
in一样调用config/environments/production.rb
。
我非常喜欢它,因为万一我的计算机被盗,随后损坏的开发密钥可以在 AWS 上擦除,而无需触摸生产密钥。而且由于开发密钥可以限制在 AWS 的特定范围的操作,它可以防止任何危险的更改(完整的存储桶擦除......)
现在我们有了凭据,如果我没记错的话,所有密钥(开发和生产)都在同一个加密文件中。主密钥是现在播种到 Heroku 的唯一环境密钥。尽管我仍然需要在本地使用此密钥来访问凭据。然后,如果我的计算机被盗,开发和生产密钥都已损坏,并且可能为我的生产应用程序带来更高的风险。
新凭据功能是否缺少我的东西?有什么办法可以避免上述问题?
secrets.yml
仍然用于开发密钥和生产密钥会有什么credentials.yml.enc
好处,这是它的意图吗?