0

我决定为 Heroku 托管的 node.js 服务器实现一个秘密管理服务 ( secrethub.io )。

它的安装过程如下:

npm install --save-dev @secrethub/cli
secrethub init

(然后在您注册后获得证书)

然后将主启动脚本调整为:

secrethub run -- nodemon server.js

现在,当我在本地运行应用程序时,npm run start一切都很好,服务器运行正常,注入了秘密,一切都很好。但是当我部署到 Heroku 时,应用程序在启动脚本上立即崩溃:

server@1.0.0 start /app 2020-09-28T22:42:08.353088+00:00 app[web.1]: > secrethub 运行 -- nodemon server.js 2020-09-28T22:42:08.353088+00:00 app [web.1]:2020-09-28T22:42:08.469775 + 00:00 app [web.1]:遇到错误:处理模板文件'secrethub.env'时出错:找不到凭据文件。转到https://signup.secrethub.io/以创建一个帐户或运行secrethub init以使用此机器上已经存在的帐户。(secrethub.credential_not_exist) (run.template_parsing_failed) 2020-09-28T22:42:08.484159+00:00 app[web.1]: npm ERR!代码 ELIFECYCLE 2020-09-28T22:42:08.484663+00:00 app[web.1]: npm ERR!错误号 1 2020-09-28T22:42:08.493367+00:00 应用程序 [web.1]:npm 错误!aflare-stripe@1.0.0 开始:secrethub run -- nodemon server.js2020-09-28T22:42:08.493885+00:00 应用程序 [web.1]:npm 错误!退出状态 1 2020-09-28T22:42:08.494399+00:00 app[web.1]: npm ERR! 2020-09-28T22:42:08.494840+00:00 应用程序 [web.1]:npm 错误!aflare-stripe@1.0.0 启动脚本失败。2020-09-28T22:42:08.495292+00:00 应用 [web.1]: npm 错误!这可能不是 npm 的问题。上面可能有额外的日志输出。2020-09-28T22:42:08.515466+00:00 app[web.1]: 2020-09-28T22:42:08.516772+00:00 app[web.1]: npm ERR!此运行的完整日志可在以下位置找到:2020-09-28T22:42:08.517179+00:00 app[web.1]: npm ERR!
/app/.npm/_logs/2020-09-28T22_42_08_498Z-debug.log

就像我说的我已经注册了一切。有人知道部署到 Heroku 和使用秘密管理服务的任何问题吗?

4

1 回答 1

2

从日志的以下部分判断,SecretHub CLI 似乎无权访问凭证:

找不到凭据文件。转到https://signup.secrethub.io/创建一个帐户或运行 secrethub init 以使用这台机器上已经存在的帐户。(secrethub.credential_not_exist)

您可以通过为您的 Heroku 应用创建服务帐户来解决此问题。您可以按照本指南了解如何操作。您可以将生成的凭证配置为SECRETHUB_CREDENTIALHeroku 中的环境变量(参见此处如何)。

于 2020-09-30T07:49:21.900 回答