gpt4 book ai didi

google-cloud-platform - Google Cloud Build 不会替换 cloudbuild.yaml 的 secrets 部分中的值

转载 作者:行者123 更新时间:2023-12-01 12:05:56 25 4
gpt4 key购买 nike

我正在尝试创建一个 Cloud Build 触发器,其中使用 Cloud KMS 对 secret 环境变量进行加密并存储为 Cloud Build 中的替换变量。这样我的云构建 yaml 是相当通用的,并且在我们部署到的所有环境中都是相同的。

这个云构建 yaml 工作正常:

steps:
- name: 'ubuntu'
entrypoint: 'bash'
args: ['-c', 'echo "$$APP_NAME HAS A VALUE $$HELLO_WORLD"']
env:
- 'APP_NAME=${_APP_NAME}'
secretEnv:
- 'HELLO_WORLD'
secrets:
- kmsKeyName: 'projects/my-first-cicd-project/locations/europe-west1/keyRings/keyring-dev/cryptoKeys/key-backend'
secretEnv:
HELLO_WORLD: xxxxxxxxxxx

构建步骤生成此日志行:
My App Name HAS A VALUE Hello there world!

完全符合预期。

现在对于不起作用的事情,或者至少我无法上类。假设我想让 key 环名称动态化。然后我将该 yaml 中的“keyring-dev”替换为 ${_KMS_KEYRING_NAME} .这将产生如下错误:
invalid build: failed to check access to "projects/my-first-cicd-project/locations/europe-west1/keyRings/${_KMS_KEYRING_NAME}/cryptoKeys/key-backend"

如果我将 YAML 中的 base64 字符串(以“CiQAH...”开头)更改为诸如 ${_KMS_VAR_HELLO_WORLD} 之类的替换变量,我将收到此错误:
failed unmarshalling build config cloudbuild.yaml: illegal base64 data at input byte 0

仅供引用:base64 字符串的值不超过变量值的最大字符数 255。

所以我的猜测是,Cloud Build 不会替换 cloudbuild.yaml 的 secrets 部分中的任何内容。有谁知道这个问题的解决方案?

最佳答案

这是 API 的一个已知限制。

  • 替换适用于“字符串”字段,尽管 secret 值使用“字节”字段。因此,我们不能对它们应用替换值。
  • 关于 key 环名称和项目,更改它们会改变加密内容,并且内容不可替代。
  • 关于google-cloud-platform - Google Cloud Build 不会替换 cloudbuild.yaml 的 secrets 部分中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56936520/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com