【问题标题】:Tell the best practice for injecting secrets values to CloudRun [closed]告诉将秘密值注入 CloudRun 的最佳实践 [关闭]
【发布时间】: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


    【解决方案1】:

    最好的方法是使用新的 Google Cloud service for secret management。仅在 env var 中引用您的秘密并向秘密管理器执行查询以获取秘密内容。

    【讨论】:

    • 你知道在 cloudbuild.yaml 上写的关于使用秘密管理的文档。我在 GCP 文档上找不到。
    • 您能描述一下您想在 Cloud Build 中实现什么目标吗?如果你愿意,我可以与你分享一个 POC,我只是想在开始工作之前确保它是相关的!
    • 部署 Cloud Run 时,我想使用 Cloud Build 将环境变量注入到 docker 容器中。环境变量是机密信息。
    • 那么,您想在 Cloud Build 中获取秘密,并在环境变量中设置明确的值吗?我说的对吗?
    • 明确设置值是什么意思?我希望 Cloud Run 应用可以引用解密后的值。
    猜你喜欢
    • 2010-10-15
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2020-12-25
    • 2011-01-12
    • 2013-04-21
    相关资源
    最近更新 更多