Google应用引擎:隐藏Rails密钥的最佳做法?

时间:2016-12-05 06:30:53

标签: ruby-on-rails google-app-engine secret-key

我正在将我的Rails应用程序部署到GAE,其代码存储在github中。

显然,我需要隐藏我的密钥和数据库密码。

在Heroku中,我可以使用Heroku GUI非常轻松地在环境变量中设置它们,因此它不会出现在任何源代码或数据库中。

GAE怎么样? 我无法在app.yaml中设置它们,因为:

  1. .gitignore不是一个选项:即使我通过.gitignore隐藏app.yaml文件或替代json文件,我必须将其保存在我的本地计算机中。这意味着只有我可以部署,我必须自己做备份。这太可怕了。
  2. 有人说我可以在数据库中存储秘密值。但我也想隐藏数据库密码。
  3. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我在answer to a similar question中解决了这个问题。本质上,您可以在credentials.yaml旁边创建一个app.yaml文件,并将其导入app.yaml中。这将允许您将凭据指定为ENV变量,同时保留忽略git中文件的功能。使用includes:标签可以在app.yaml中导入文件数组。

示例app.yaml

runtime: go
api_version: go1

env_variables:
  FIST_VAR: myFirstVar

includes:
- credentials.yaml

credentials.yaml

env_variables:
  SECOND_VAR: mySecondVar
  API_KEY: key-123