mysql - 在 app.yaml 中存储 secret 的最佳实践

标签 mysql node.js google-app-engine

我正在 GAE 上部署一个连接到 Cloud SQL 的 Node.js 应用。

docs 之后,我被告知将数据库的用户/密码存储在 app.yaml 中:

env_variables:
  MYSQL_USER: YOUR_USER
  MYSQL_PASSWORD: YOUR_PASSWORD
  MYSQL_DATABASE: YOUR_DATABASE
  # e.g. my-awesome-project:us-central1:my-cloud-sql-instance
  INSTANCE_CONNECTION_NAME: YOUR_INSTANCE_CONNECTION_NAME

这真的是存储密码的好地方吗?

最佳答案

将 secret 存储在 app.yaml 中有泄露它们的风险(例如,在 github 上意外 checkin 它们并不少见)。将 secret 存储在 .gitignored 文件中,您在部署时将其编入 app.yaml 是一种方法。另一种方法是将 secret 存储在数据存储区的实体中。

对于我的许多应用程序,我将 secret 存储在名为 Config 的实体中,该实体存储字符串化的 JSON。这简化了用于将它们编辑到单个 textarea 的管理 UI,从而推迟了对更复杂 UI 的需求。

有关此方法和功能更全的 UI 的示例,请查看可汗学院的“片段”应用。 https://github.com/Khan/snippets

关于mysql - 在 app.yaml 中存储 secret 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43415389/

相关文章:

java - appengine 将 User 视为附加参数

java - 使用Matlab创建MySql数据库

mysql - 引用同一列中的外键

javascript - 递归 Promise 调用 - 内存范围变量问题

javascript - 使用 Chai.js 测试失败

google-app-engine - 在 appengine 中使用 go 语言的 TTFB(延迟)太慢

.net - 获取错误 : System. IO.FileNotFoundException:无法加载文件或程序集

mysql - Kohana3 和 MySQL : is it possible to keep related records?

javascript - 了解 Node 的错误处理的尝试/捕获和域

java - 使用 Objectify 在 Google CloudDatastore 中查找记录