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

无需依赖gcloud,GCP容器Registry稳定认证方式咨询

不用gcloud获取GCR镜像列表的稳定认证方案

可行方案:使用服务账号JSON密钥生成OAuth2令牌

服务账号的JSON密钥是长期稳定的凭证,可通过它生成短期OAuth2访问令牌(有效期1小时),全程无需依赖gcloud工具,仅用curl、openssl、jq等通用工具即可实现。

步骤1:准备服务账号与密钥

  • 在GCP控制台的「IAM与管理 > 服务账号」页面创建服务账号
  • 为该账号分配roles/storage.objectViewer角色(此权限足够读取GCR镜像标签列表)
  • 下载该服务账号的JSON密钥文件,保存到本地路径

步骤2:生成访问令牌(无需gcloud)

执行以下命令生成有效期1小时的令牌:

# 替换为你的服务账号密钥文件路径
export SERVICE_ACCOUNT_KEY="/path/to/your/service-account-key.json"

# 生成JWT并请求令牌
export TOKEN=$(curl -s "https://oauth2.googleapis.com/token" \
  -d "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer" \
  -d "assertion=$(openssl dgst -sha256 -sign <(jq -r '.private_key' $SERVICE_ACCOUNT_KEY) <(echo -n "$(printf '{"alg":"RS256","typ":"JWT"}' | base64 -w 0).$(printf '{"iss":"%s","scope":"https://www.googleapis.com/auth/cloud-platform","aud":"https://oauth2.googleapis.com/token","exp":%d,"iat":%d}' "$(jq -r '.client_email' $SERVICE_ACCOUNT_KEY)" $(( $(date +%s) + 3600 )) $(date +%s) | base64 -w 0))" | base64 -w 0))" | jq -r '.access_token')

步骤3:调用GCR API获取镜像列表

curl -u "oauth2accesstoken:$TOKEN" https://gcr.io/v2/yourProject/yourImage/tags/list

重要说明

  • 禁止使用API密钥:GCR的API不支持直接用API密钥认证,API密钥仅适用于公开资源的简单访问,无法访问私有镜像仓库的内容。
  • 服务账号密钥需妥善保管:一旦泄露需立即在GCP控制台吊销该密钥,避免权限滥用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:20:42