1

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

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

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

将其包含在 cloudbuild.yaml 中,提交 Cloudbuild 作业的 api 调用返回:

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

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

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

谢谢你的帮助。

4

1 回答 1

4

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

于 2019-01-25T23:53:53.657 回答