【发布时间】: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