我正在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
这真的是存储密码的好地方吗?
答案 0 :(得分:0)
是。我们也这样做。在环境变量或文件中存储凭据没有太大区别。将它们存储在文件中,我发现更方便(通过它完全主观)。在安全问题方面,您始终可以使用文件权限。您可以创建一个将运行app的用户,并授予该用户读取权限。
答案 1 :(得分:0)
在app.yaml
中存储秘密可能会泄露它们(例如,在github上意外检查它们并不罕见)。将秘密存储在您在部署时编织到.gitignore
的{{1}} d文件中是一种方法。另一种方法是将秘密存储在数据存储区中的实体中。
对于我的许多应用程序,我将秘密存储在名为app.yaml
的实体中,该实体存储字符串化的JSON。这简化了管理UI,将其编辑为单个Config
,从而推迟了对更复杂UI的需求。
有关具有功能更全面的用户界面的此方法示例,请查看可汗学院的“代码段”应用。 https://github.com/Khan/snippets
答案 2 :(得分:0)
Google尚未为此事提供服务(尚未)。我之前询问了对此的支持,他们的建议是将数据存储在数据存储区(加密)
中答案 3 :(得分:0)
您应该做什么:
app.yaml
放入.gitignore
,然后app.yaml
中设置您的秘密,然后gcloud app deploy
您无需在版本控制中使用app.yaml
即可在GAE中“设置”环境变量。