如何解决Google Cloud Build 和 App Engine 环境变量
我的 App Engine 上有一个秘密令牌 app.yaml
env_variables:
TOKEN: super-secret-token
很明显,这个令牌不在 git 中。使用 Google Cloud Build,如何在构建时或之前设置此参数 TOKEN
?
解决方法
在将应用程序部署到 App Engine 之前,您可以使用 Secret Manager within Cloud Build 获取实际机密并替换 app.yaml 中的 super-secret-token
占位符值。看起来像这样:
steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bash'
args: [ '-c',"gcloud secrets versions access latest --secret=secret-name --format='get(payload.data)' | tr '_-' '/+' | base64 -d > decrypted-data.txt" ]
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: /bin/sh
args:
- '-c'
- |
sed "s/super-secret-token/g" $(cat decrypted-data.txt)
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: 'bash'
args: ['-c','gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy']
timeout: '1600s'
话虽如此,您的秘密令牌仍可在您的 App Engine 环境变量中以未加密的方式使用,这在安全方面并不是最佳的。相反,您可能希望直接从 App Engine 代码中查询 Secret Manager。您会找到代码示例here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。