【问题标题】:How to work with Rails Credentials in Productions Environments?如何在生产环境中使用 Rails 凭证?
【发布时间】:2022-08-15 08:33:55
【问题描述】:

我很难理解如何在 Prod 环境中使用 Rails 凭据。

我的用例。我开始了一个新的 Rails 项目。它带有我个人的 master.key 和一个 credentials.yml.enc,我可以使用命令进行编辑

EDITOR=\"code --wait\" rails credentials:edit

一切都很好。一切皆好。现在我想将它添加到我的 heroku 生产应用程序中。首先,我将把我的 credentials.yml.enc 推送到我的 github。然后我将在我的 heroku 上设置一个 ENV 或一个主密钥。

我的问题是.... Heroku 如何使用他们自己的生产密钥解密在我的开发环境中创建的credentials.yml.enc(因此,它是使用我的个人master.key 加密的)?

  • 答案是不能。凭证只能用它们加密的密钥来解密——这就是任何双向加密的重点。您要么需要使用相同的密钥,要么更好地使用单独的凭据进行开发和生产(和密钥),这样您就不会意外地弄乱第三方服务的内容。
  • 我认为你在这里出错的地方是它的“你的个人密钥”的想法。例如,这与 PGP 电子邮件加密完全不同,您在生成凭证文件时使用的密钥仍需要与其他开发人员共享。或者,如果您想在本地编辑生产凭据,则需要在本地计算机和 heroku 之间共享相同的密钥。

标签: ruby-on-rails heroku


【解决方案1】:

请参阅this article 的 Heroku 部分:

使加密凭据在 Heroku 上工作的最简单方法是获取存储在 config/master.key 中的值,并使用它来设置 RAILS_MASTER_KEY 环境变量

这允许 Heroku 工作人员使用 Rails.application.credentials 调用,就像您可以在控制台中一样。

关键是在 Heroku 中创建 RAILS_MASTER_KEY 环境变量(通过 Web 界面或 CLI)并将其值设置为您的主键值。

【讨论】:

    猜你喜欢
    • 2018-12-06
    • 2020-08-18
    • 1970-01-01
    • 2014-01-28
    • 2014-06-02
    • 1970-01-01
    • 2014-09-09
    • 2011-01-05
    • 1970-01-01
    相关资源
    最近更新 更多