从 Cloud Functions 提交 Cloud Build 作业时出错,如果

Error submitting Cloudbuild job from Cloudfunctions if

希望对于比我知识更深的人来说这是一个简单的...

我有一个 Cloudfunction,它响应 webhook 调用以使用 API 将作业提交到 Cloudbuild。这工作正常,除了现在我们有一些工作需要使用来自不同项目的 KMS 密钥。

secrets:
- kmsKeyName: projects/xxx/locations/global/keyRings/xxx/cryptoKeys/xxx

将此包含在 cloudbuild.yaml 中 api 提交 Cloudbuild 作业的调用 returns:

400 invalid build: failed to check access to "projects/xxx/locations/global/keyRings/xxx/cryptoKeys/xxx"

我已经尝试将调用帐户中的 Cloudfunction 和 Cloudbuild 服务帐户添加到托管 KMS 的帐户到我能想到的所有内容,包括 Owner。

This 文章有简单明了的说明,用于访问另一个帐户中的 Container Registry 和其他服务,但没有涉及 KMS。这个错误似乎不会在搜索中触发任何有意义的结果,而且我看起来一点也不熟悉。

感谢您的帮助。

Cloud KMS API 未在项目 运行 Cloudbuild 上启用。不幸的是,错误信息是如此含糊。事实上,我在 Cloudbuild 作业中通过 运行 gcloud kms decrypt ... 诊断了这个问题,这有助于告诉我需要启用 API。