为什么秘密管理工具SecretHub在本地工作,但在heroku生产中不工作?

如何解决为什么秘密管理工具SecretHub在本地工作,但在heroku生产中不工作?

我决定为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开始/ app 2020-09-28T22:42:08.353088 + 00:00 应用程序[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错误代码ELIFECYCLE 2020-09-28T22:42:08.484663 + 00:00 app [web.1]:npm错误! errno 1 2020-09-28T22:42:08.493367 + 00:00 app [web.1]:npm错误! aflare-stripe@1.0.0开始:secrethub run -- nodemon server.js 2020-09-28T22:42:08.493885 + 00:00 app [web.1]:npm 呃!退出状态1 2020-09-28T22:42:08.494399 + 00:00 app [web.1]:npm 呃! 2020-09-28T22:42:08.494840 + 00:00 app [web.1]:npm ERR!失败于 aflare-stripe@1.0.0启动脚本。 2020-09-28T22:42:08.495292 + 00:00 app [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错误
/app/.npm/_logs/2020-09-28T22_42_08_498Z-debug.log

就像我说我已经注册了所有内容一样。有人知道部署到Heroku并使用秘密管理服务有什么问题吗?

解决方法

从日志的以下部分来看,SecretHub CLI似乎无权访问凭据:

找不到凭证文件。转到enter image description here创建一个帐户,或运行secrethub init以使用此计算机上已经存在的帐户。 (secrethub.credential_not_exist)

您可以通过为Heroku应用程序创建服务帐户来解决此问题。您可以按照https://signup.secrethub.io/进行操作。您可以在Heroku中将结果凭证配置为SECRETHUB_CREDENTIAL环境变量(有关方法,请参见this guide)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?