GCP Cloud Build拉取Artifact Registry依赖遇401未授权问题排查与解决
问题:GCP Cloud Build从Artifact Registry拉取依赖时出现401未授权错误
遇到的错误信息:
Could not GET 'https://europe-west1-maven.pkg.dev/myapp-456k4/jars/com/ai/common/0.0.0/common-0.0.0.pom'. Received status code 401 from server: Unauthorized
相关排查信息:
- 关联Cloud Build触发器的服务账号已被授予Artifact Registry Administrator角色,且该账号曾成功推送
common-0.0.0构件至目标仓库 - 本地机器通过设置环境变量可正常拉取构件:
export GOOGLE_APPLICATION_CREDENTIALS=~/Projects/Backend/creds/gcloud/myapp-456k4-automation-84958kdu9d845.json
问题定位更新
原因在于使用Docker构建镜像而非直接运行gradle,导致服务账号凭证未传递至Docker构建步骤,问题转化为如何将凭证传递给Docker构建中的gradle步骤。
解决方法更新
已解决,具体操作:
- 将服务账号凭证JSON文件存储到Secret Manager中
- Cloud Build构建时从Secret Manager拉取凭证并保存为文件
- 将该文件作为秘密传递给Docker构建过程
- 在Docker构建的gradle步骤中设置环境变量
GOOGLE_APPLICATION_CREDENTIALS,指向保存凭证的文件路径
内容的提问来源于stack exchange,提问作者Son Nguyen
相关产品推荐
相关产品推荐

