隐藏Rails凭据



我有一个Rails 6应用程序。在我的凭证文件中,我有开发和生产API密钥。我希望能够隐藏生产API密钥,因为有些开发人员不需要访问凭据。

在Rails的早期版本中,我可以使用<%= ENV["MY_VAR"] %>获取环境变量,并将其放置在secrets.yml文件中。然而,Rails凭据不支持在yml文件中执行Ruby,这是有意义的,因为它是加密的,但这限制了阻止其他开发人员访问API生产密钥的能力。在整个Rails应用程序中,如果不对ENV["MY_VAR"]进行硬编码,是否存在这种情况?以下是我最终想要在我的凭据文件中完成的内容。

development:
aws: 11111111
production:
aws: <%= ENV["AWS_SECRET"] %>

您可以根据环境生成凭证文件

rails credentials:edit --environment development
rails credentials:edit --environment production

这将创建凭据文件CCD_ 4和CCD_加密密钥config/credentials/development.keyconfig/credentials/production.key

因此,您可以与其他开发人员共享开发密钥,而无需共享生产密钥。密钥

有关详细信息,请签出此提交:https://github.com/rails/rails/pull/33521

最新更新