隐藏 Rails 凭据
Hiding Rails Credentials
我有一个 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
这将创建凭据文件
config/credentials/development.yml.enc
和 config/credentials/production.yml.enc
,以及
加密密钥 config/credentials/development.key
、config/credentials/production.key
因此您可以与其他开发人员共享开发密钥而无需共享 production.key
查看此提交以获取更多详细信息:https://github.com/rails/rails/pull/33521
我有一个 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
这将创建凭据文件
config/credentials/development.yml.enc
和 config/credentials/production.yml.enc
,以及
加密密钥 config/credentials/development.key
、config/credentials/production.key
因此您可以与其他开发人员共享开发密钥而无需共享 production.key
查看此提交以获取更多详细信息:https://github.com/rails/rails/pull/33521