【发布时间】:2021-06-06 05:14:23
【问题描述】:
我想在云构建步骤中使用 Secret Manager 将凭证存储到我们的工件。我使用类似于以下内容的构建来工作:
steps:
- name: 'busybox:glibc'
entrypoint: 'sh'
args: ['-c', 'env']
secretEnv: ['SECRET_VALUE']
availableSecrets:
secretManager:
- versionName: "projects/PROJECT_ID/secrets/TEST-SECRET/versions/1"
env: 'SECRET_VALUE'
一切都很好,没有问题 - 然后我尝试稍微改进一下:
steps:
- name: 'busybox:glibc'
entrypoint: 'sh'
args: ['-c', 'env']
secretEnv: ['SECRET_VALUE']
availableSecrets:
secretManager:
- versionName: "projects/$PROJECT_ID/secrets/TEST-SECRET/versions/1"
env: 'SECRET_VALUE'
但随后它会引发错误:
ERROR: (gcloud.builds.submit) INVALID_ARGUMENT: failed to get secret name from secret version "projects/$PROJECT_ID/secrets/TEST-SECRET/versions/1"
我已经能够添加 TRIGGER 级别的环境变量 (SECRET_MANAGER_PROJECT_ID),并且效果很好。唯一的问题是触发环境,它在重建时不可用,这会破坏很多东西。
有谁知道如何在不使用触发器参数的情况下从 CloudBuild 中获取 Secret Manager 的 PROJECT_ID?
【问题讨论】:
-
你试过
- versionName: projects/${PROJECT_ID}/secrets/TEST-SECRET/versions/1吗(我也认为如果有用的话,你可以使用versions/lastest而不是特定版本) -
是的,我也试过了:
ERROR: (gcloud.builds.submit) INVALID_ARGUMENT: failed to get secret name from secret version "projects/${PROJECT_ID}/secrets/TEST-SECRET/versions/1感觉就像一个非常烦人的边缘案例。 -
在“Cloud Build”设置下,您是否启用了“Secret Manager Accessor”? (或关注these instructions?)
-
目前不支持。
-
如果有人想知道,我没有批准甚至查看推荐编辑所需的代表!
标签: google-cloud-build google-secret-manager