You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向Artifact Registry推送镜像时遭遇403 Forbidden错误求助

向Google Cloud Artifact Registry推送镜像时遇403 Forbidden错误排查

问题详情

执行docker push <repo-tag>命令向Artifact Registry推送镜像时,触发如下错误:

failed to authorize: failed to fetch anonymous token: unexpected status from GET request to https://-docker.pkg.dev/v2/token?scope=repository%3A%2F%2Fpkg%3Apull&scope=repository%3A%2F%3Apull%2Cpush&service=-docker.pkg.dev: 403 Forbidden

已确认信息:

  • 当前登录账号为项目所有者,理论具备推送权限
  • 已完成gcloud auth login授权,gcloud auth print-access-token可正常返回令牌
  • 向Docker Hub推送镜像无异常,排除Docker本身问题

排查方向及解决步骤

1. 配置Docker关联Google Cloud认证凭据

gcloud auth login仅完成了账号在gcloud工具中的授权,但Docker并未自动同步该认证信息。需执行以下命令将Artifact Registry仓库地址加入Docker认证配置:

gcloud auth configure-docker <region>-docker.pkg.dev

替换<region>为你的实际仓库区域,执行后Docker会在推送时自动使用gcloud的认证令牌。

2. 校验Artifact Registry仓库权限绑定

即使是项目所有者,也需确认仓库的权限设置是否正确:

  • 检查项目IAM中,你的账号是否被分配了Artifact Registry Writer(或Owner等包含推送权限的角色)
  • 进入Artifact Registry仓库的权限页面,确认你的账号被明确授予push权限

3. 确保令牌具备足够权限范围

若默认获取的令牌权限范围不足,可手动获取包含全平台权限的令牌,并配置Docker使用:

# 获取带全平台权限的令牌
gcloud auth print-access-token --scope=https://www.googleapis.com/auth/cloud-platform

# 使用令牌登录Docker
echo "<上面获取的令牌>" | docker login -u oauth2accesstoken --password-stdin <region>-docker.pkg.dev

4. 检查镜像标签格式是否正确

Artifact Registry的镜像标签必须符合固定格式:

<region>-docker.pkg.dev/<project-id>/<repo-name>/<image-name>:<tag>

确认你的<repo-tag>中没有重复的仓库名称、缺失项目ID等格式错误(错误日志中显示repository%3A<repo-name>%2F<repo-name>,可能存在路径重复问题)

内容的提问来源于stack exchange,提问作者noor soreti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 19:02:42