【发布时间】:2019-12-13 15:55:47
【问题描述】:
我正在尝试使用 Cloud Build 触发作业动态构建新的 Docker 映像,但是我看不到如何安全地检索我的凭据以使用服务帐户对 GCP 进行身份验证。
步骤如下:
使用构建 Docker 映像的步骤创建的 Dockerfile。其中一个步骤包括从 Google 存储(存储桶)下载我需要作为 GCP 服务帐户访问的文件。
Docker 映像是使用 Cloud Build 触发器构建的,该触发器在链接存储库中的每次更改后触发并存储在 GCR 中。
第一步失败是因为:
1.) 默认情况下,出于某种原因,在 GCP 中运行 Dockerfile 的用户未针对 GCP 进行身份验证。它不是默认的 Google Cloud Build 帐户,而是匿名用户。
2.) 我可以作为服务帐户进行身份验证,但是
a.) 我不想将未加密的 JSON 私钥存储在本地或存储库中。 b.) 如果我将其加密存储在 GCP 存储库中,那么我需要在使用 KMS 解密之前进行身份验证。但我没有密钥,因为它仍然是加密的。所以我回到我的问题。 c.) 如果我将其存储在 GCP 存储桶中,我也需要进行身份验证。所以我回到我的问题。
还有其他方法可以让我执行云构建触发器作业并保持/获取 GCP 服务帐户上下文吗?
【问题讨论】:
-
需要凭据的 Cloud Build 步骤是什么样的?我假设它是一个 gsutil 命令?
-
是的,你是对的。
标签: docker google-cloud-platform dockerfile google-cloud-build