gpt4 book ai didi

credentials - 以编程方式将 secret 附加到credentials.yml.enc

转载 作者:行者123 更新时间:2023-12-03 19:29:28 24 4
gpt4 key购买 nike

有没有办法以编程方式向 Rails 5.2 中的 config/credentials.yml.enc 添加 secret ?

将credentials.yml.enc 推送到存储库供内部使用可能没问题,但是一旦其他人使用该应用程序,他们就需要在他们的环境中使用不同的 secret 。就像每个实现的 Oauth2 凭据都会有所不同。

在 docker 中运行应用程序(例如)将需要比平时更多的手动交互和 Docker 专有技术。在大多数情况下,更安全的方式只有在不费力的情况下才会使用。

需要运行 docker exec <app-name> -it /bin/bash第一个能够运行 rails credentials:edit .

能够以编程方式填充凭据文件会更好。
例如,可以提供一个临时凭证文件,例如:

production:
postgresql:
username: 'admin'
password: 'very_insecure'

然后可能有一个脚本将文件的内容添加到凭据文件中,然后删除临时文件。

肯定是 RAILS_MASTER_KEY必须设置环境变量(也可以是将 master.key 文件的内容移动到变量中的脚本)以获得任何利润。

最佳答案

您可以通过使用 EDITOR 的一些技巧来做到这一点。环境变量。
通常,您会使用 EDITOR=nano rails credentials:edit为了让 Rails 通过(临时解密的副本)credentials.yml.encnano用于修改,结果在 nano 时重新加密终止。
如果我们替换 nanocat ( EDITOR=cat rails credentials:edit ),Rails 会将(解密的)文件传递给 cat相反,导致其内容打印在屏幕上。换句话说,Rails 实际上只是在运行 $EDITOR tempfile.name .
因此,如果我们这样做:

EDITOR='echo "foo: bar" >> ' rails credentials:edit
...那么结果将是这样的:
echo "foo: bar" >> tempfile.name
tl;博士:您可以滥用 EDITOR来(间接地)做几乎所有你对普通纯文本文件所做的事情。

关于credentials - 以编程方式将 secret 附加到credentials.yml.enc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56118991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com