node.js - Google App Engine 上的私有(private) npm/git 依赖项

标签 node.js git google-app-engine npm

我正在使用 Google App Engine 的新自定义运行时来开发一些应用程序,并且需要提取要作为依赖项引入的代码。这些依赖项可以从私有(private) npm 存储库或私有(private) git 存储库添加。

如何设置我的 GAE 项目以使用此类私有(private)存储库,而不将敏感详细信息 checkin 存储库本身? (Git 和/或 npm 并不重要;更喜欢 git。)

最佳答案

执行此操作的传统方法是在服务器上保存一个包含凭据的文件。当您的应用程序需要凭据时,它会读取文件并通过(假设的)安全通道将其发送给需要检查它们的人员。如果您在纯计算引擎上运行,拥有永久磁盘不是问题,但您必须管理和启动实例以自行平衡负载。

将链接到运行时的传统持久磁盘硬件仅仅视为特定类别的持久数据存储,您可能会明白我要去的地方:访问您的 GCS 存储桶/数据存储/Cloud SQL(它们都是一种持久数据存储)通过将 OAuth 与项目的服务帐户一起使用或在最后一种情况下使用 Cloud SQL unix 套接字的数据中心级安全性来保护,从而确保无法访问凭据存储期间除您之外的任何人。

比较:在传统示例中,包含凭据的磁盘文件受到保护,因为未经操作系统的明确许可,任何其他计算机都无法访问该磁盘,必须刻意配置操作系统以接受此类连接(然后您将实现某种授权/身份验证方案以确保此连接的安全性)。

OAuth2.0 在 Google 云平台中广泛使用,它确保可以与实例的持久存储(无论您选择哪个)进行相同的连接,同时还提供了强大的授权/身份验证方案。对于 Cloud SQL,身份验证系统可以像您的用户名一样简单,并通过安全隧道进行传递。问题只是将信用从您的机器转移到运行时可以访问的地方。

所以,你可以:

...此时you can access the creds, wherever they're stored, from your managed VM .

关于node.js - Google App Engine 上的私有(private) npm/git 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27925299/

相关文章:

Git - 忽略所有非点文件

git - 如何获取文件相对于 Git 存储库根目录的路径?

在云中执行 Java 代码

google-app-engine - 如何在 google appengine 上执行控制台命令?

node.js - 如何在 netbeans 中运行 node.js 文件?

node.js - 如何在 Sequelize 中使用 Postgres 的 BIGSERIAL?

node.js child_process.spawn - 进程运行但事件不触发

git - 使用 SSH 用户名和密码将 Git 项目导入 Aptana

java - 关于重复键更新 Java

node.js - Express.js 中间件集成测试