【发布时间】:2020-02-01 04:25:43
【问题描述】:
我使用云构建部署云运行。
以下是 cloudbuild.yaml 和 deploy 命令。
$ cat cloudbuid.yaml
steps:
- id: Cloud Run Deploy
name: 'gcr.io/cloud-builders/gcloud'
args: [
run, deploy, $_SERVICE_NAME, --allow-unauthenticated,
--image, $_IMAGE_NAME,
--region, us-central1,
--platform, managed,
--set-env-vars,
"DB_USER=$_DB_USER,
DB_PASSWORD=$_DB_PASSWORD,
DB_DATABASE=$_DB_DATABASE,
DB_HOST=$_DB_CONNECTION_NAME,
DB_ONCLOUD=$_DB_ONCLOUD,
SLACK_CLIENT_ID=$_SLACK_CLIENT_ID,
SLACK_CLIENT_SECRET=$_SLACK_CLIENT_SECRET,
SLACK_ACCESS_TOKEN=$_SLACK_ACCESS_TOKEN,
GOOGLE_MAPS_API_KEY=$_GOOGLE_MAPS_API_KEY",
--max-instances, '1000',
--set-cloudsql-instances, $_DB_CONNECTION_NAME,
--service-account, my-service-account-email
]
# deploy
$ gcloud builds submit --config=cloudbuild.yaml \
--substitutions=_SERVICE_NAME=my-application,_IMAGE_NAME=my-image,_DB_USER=$DB_USER,_DB_PASSWORD=$DB_PASSWORD,_DB_DATABASE=$DB_DATABASE,_DB_CONNECTION_NAME=$DB_CONNECTION_NAME,_SLACK_CLIENT_ID=$SLACK_CLIENT_ID,_SLACK_CLIENT_SECRET=$SLACK_CLIENT_SECRET,_SLACK_ACCESS_TOKEN=$SLACK_ACCESS_TOKEN,_GOOGLE_MAPS_API_KEY=$GOOGLE_MAPS_API_KEY,_DB_ONCLOUD=$DB_ONCLOUD
如您所见,秘密(例如 DB_PASSWORD、SLACK_ACCESS_TOKEN、...等)是通过替代选项从环境变量中指定的。
但是,在这种情况下,纯机密将暴露在 GCP 控制台的 CloudRun 管理屏幕中。
我认为这些秘密不应该被任何人透露。 解决此问题的最佳做法是什么?
谢谢。
【问题讨论】:
标签: google-cloud-build google-cloud-run