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

使用Workload Identity Federation拉取GAR镜像时Github Workflow认证失败求助

解决方案

问题核心:GitHub Actions的container字段会在job初始化阶段直接尝试拉取镜像,此时还未执行任何认证步骤,无法访问私有Artifact Registry仓库。要通过Workload Identity Federation实现认证拉取,需调整Workflow流程,先完成认证再拉取镜像。

前置确认

确保已完成以下配置:

  • GCP中创建了Workload Identity Pool和Provider,关联目标GitHub仓库
  • 绑定的服务账号已拥有artifactregistry.repositories.downloadArtifacts权限
  • GitHub仓库Secrets中已配置GOOGLE_PROJECT_ID、GOOGLE_WORKLOAD_IDENTITY_PROVIDER、GOOGLE_SERVICE_ACCOUNT三个敏感变量

修改后的Workflow配置

替换原container字段的方式,改为在steps中完成认证、镜像仓库登录,再启动自定义容器执行任务:

jobs:
  setup_and_authenticate:
    name: 'Demo stage'
    runs-on: ubuntu-latest
    env:
      ARTIFACT_REGISTRY_REGION: europe-west3
      ARTIFACT_REGISTRY_REPO: workflow-repository
      IMAGE_NAME: ubuntu-custom-image:latest
    steps:
      # 1. 通过Workload Identity Federation完成GCP认证
      - name: Authenticate to GCP
        uses: google-github-actions/auth@v2
        with:
          workload_identity_provider: ${{ secrets.GOOGLE_WORKLOAD_IDENTITY_PROVIDER }}
          service_account: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
          project_id: ${{ secrets.GOOGLE_PROJECT_ID }}

      # 2. 配置gcloud CLI并登录Artifact Registry
      - name: Set up gcloud CLI
        uses: google-github-actions/setup-gcloud@v2
        with:
          project_id: ${{ secrets.GOOGLE_PROJECT_ID }}

      - name: Login to Artifact Registry
        run: gcloud auth configure-docker ${{ env.ARTIFACT_REGISTRY_REGION }}-docker.pkg.dev

      # 3. 拉取镜像并执行任务(示例:在容器中运行echo命令)
      - name: Run custom container
        run: |
          IMAGE_FULL_PATH="${{ env.ARTIFACT_REGISTRY_REGION }}-docker.pkg.dev/${{ secrets.GOOGLE_PROJECT_ID }}/${{ env.ARTIFACT_REGISTRY_REPO }}/${{ env.IMAGE_NAME }}"
          docker pull $IMAGE_FULL_PATH
          docker run --rm $IMAGE_FULL_PATH echo "Hello from custom container"

关键说明

  • google-github-actions/auth会自动获取临时凭据,无需管理持久密钥
  • gcloud auth configure-docker会自动配置Docker客户端使用GCP凭据登录,后续拉取/推送镜像会自动复用该认证
  • 所有敏感信息均通过GitHub Secrets管理,避免硬编码泄露风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:52:22