我正在 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 存储在 .gitignore
d 文件中,您在部署时将其编入 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/