当我试图设置 gcp 服务帐户时,Gitlab ci/cd 作业显示错误(无法读取 json 文件)

Posted

技术标签:

【中文标题】当我试图设置 gcp 服务帐户时,Gitlab ci/cd 作业显示错误(无法读取 json 文件)【英文标题】:Gitlab ci/cd job showing error (Could not read json file) when I'm tring to setup gcp service account 【发布时间】:2021-01-26 11:55:21 【问题描述】:
$ echo $SERVICE_ACCOUNT_DEV > $HOME/gcloud-service-key.json
$ gcloud auth activate-service-account --key-file $HOME/gcloud-service-key.json
ERROR: (gcloud.auth.activate-service-account) Could not read json file /root/gcloud-service-key.json: Expecting value: line 2 column 1 (char 1).

我检查了存储在 gitlab ci/cd 变量中的 SERVICE_ACCOUNT_DEV json 文件,但没有问题。

【问题讨论】:

你检查过这个question吗?你使用protected branches 或/和protected variables? 谢谢!这就是问题所在。我将变量添加为受保护的,并没有将分支添加为受保护的。使分支和变量受保护解决了这个问题 谢谢!我发布了一个答案,如果我的评论有帮助,请点赞/接受。 【参考方案1】:

查看文档Protected branches 和GitLab CI/CD environment variables。变量可以被保护。每当一个变量受到保护时,它只会被安全地传递给在受保护分支或受保护标签上运行的管道。其他管道不会获得任何受保护的变量。因此,如果您有一个受保护的变量,那么它将仅适用于受保护的分支。

正如评论部分所确认的那样,使分支和变量受保护解决了这个问题。

【讨论】:

以上是关于当我试图设置 gcp 服务帐户时,Gitlab ci/cd 作业显示错误(无法读取 json 文件)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用服务帐户在 gcp 中设置正确的 iam 策略

使用自定义服务帐户在 GCP 中创建 VM 时,KMS 权限出现 400 错误

Git命令总是要求输入密码

等待 GCP 基础架构更改传播的 Terraform 问题

gitlab的无效双因素代码

GCP IAM REST API 服务帐号密钥问题