如何在 Google App Engine 中设置环境变量/应用机密

问题是,如何设置应用程序机密以使其在 application.yml 中可用

在heroku上,我只是通过为dyno设置环境变量来简单地做到这一点,并将其访问为:

server:
  port: ${PORT}
security:
  user:
    password: ${USERPASSWORD}

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
  instance:
    hostname: localhost
    securePortEnabled: true
  password: ${EUREKAPASSWORD}

如何在Google App Engine中实现这一目标?我正在尝试 :datastoreenter image description here

不幸的是,我不知道如何将这些值注入到我的*.yml文件中。

编辑:

还有一件重要的事情要补充。我正在使用插件通过CI管道部署我的应用程序,因此我无法将文件推送到应用程序引擎maven appengineapp.yaml


答案 1

如果要存储运行时可用于应用程序的机密,则将其保留在数据存储中并不是一个坏主意。我知道许多应用程序可以做到这一点。

下面是可汗学院使用的一个应用程序,它是在数据存储中存储机密凭据的一个很好的例子。它在Python中,但你可以得到一般的想法。请注意,在首次管理员登录时,它会提示输入要存储的机密。


答案 2

Google还提供了有关如何存储加密机密的教程。https://cloud.google.com/kms/docs/store-secrets

TLDR:一个单独的存储桶,用于存储加密的密钥,实例在需要时下载它,使用Google KMS解密(https://cloud.google.com/kms/)并在之后删除。


推荐