我需要将API密钥和其他敏感信息存储app.yaml为环境变量,以便在GAE上进行部署.这个问题是,如果我推app.yaml送到GitHub,这些信息将变为公开(不好).我不想将信息存储在数据存储区中,因为它不适合项目.相反,我想换掉.gitignore应用程序每个部署中列出的文件中的值.
这是我的app.yaml文件:
application: myapp
version: 3
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: webapp2
version: latest
- name: jinja2
version: latest
handlers:
- url: /static
static_dir: static
- url: /.*
script: main.application
login: required
secure: always
# auth_fail_action: unauthorized
env_variables:
CLIENT_ID: ${CLIENT_ID}
CLIENT_SECRET: ${CLIENT_SECRET}
ORG: ${ORG}
ACCESS_TOKEN: ${ACCESS_TOKEN}
SESSION_SECRET: ${SESSION_SECRET}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在 Cloud Build 中创建一个非常基本的 Node.js 应用程序的 CI/CD 管道,并部署到 GCP appengine 标准。
非秘密环境变量存储在app.yaml文件中。但我当然不想把我的秘密放在那里。事实上,我不想将它们放在任何文件中(加密与否),因为这个文件最终会出现在 AppEngine 实例上,并且可以被“坏管理员”“查看”。有很多示例建议加密/解密完整文件(有时甚至是代码),但我不想走这条路。
我正在寻找一种方法来在“内存中”设置秘密环境变量作为 CI/CD 管道的一部分。任何人?
我在app.yaml文件(env_variables)中没有添加任何秘密- 工作正常将加密的秘密添加到我的cloudbuild.yaml文件中(秘密) - 没有错误添加了secretEnv:到构建步骤但值不会在应用程序引擎中作为process.env.[KEY]结束
云构建.yaml
steps:
- name: 'gcr.io/cloud-builders/npm'
args: ['install']
dir: "appengine/hello-world/standard"
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy", "test-app.yaml"]
dir: "appengine/hello-world/standard"
secretEnv: ['API_KEY', 'API_URL']
secrets:
- kmsKeyName: projects/XXXXXXXX/locations/global/keyRings/customintegrations-secrets/cryptoKeys/integration-secrets
secretEnv:
API_KEY: XXQAoHgKKoHBKOURrUU2RqU+ki8XyqmTjz+ns+MEWp5Kx3hQBpgSQgATFQ5yRdW4m1TLNqNRIdHIqVJi8tn8jFrtlHIEouOzNDe/ASlOT0ZQBfl9Rf7xlvOHAa667poBq2hEoMNvOclxUQ==
API_URL: YYQAoHgKKklo08ZsQF+/8M2bmi9nhWEtb6klyY4rNthUhSIhQ8oSQQATFQ5ywKOxaM/TLwGDmvMtCpl/1stXOOK0kgy42yipYbw/J/QZL68bMat1u4H3Hvp/GMbUVIKEb9jwUtN2xvbL
Run Code Online (Sandbox Code Playgroud)
我希望这secretEnv: ['API_KEY', 'API_URL']将使解密的值可以process.env.API_KEY在应用程序引擎中的代码 ( ) 中访问。
google-app-engine environment-variables node.js google-cloud-platform google-cloud-build