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

在Cloud Build中运行Sonar Scanner遇403权限错误求助

Cloud Build集成Sonar Scanner:解决403权限错误及配置指南

一、修复403权限错误

触发错误的核心原因是Cloud Build默认服务账号无目标Cloud Storage桶(gs://training_cloudbuild)的读写权限,按以下步骤处理:

  • 找到Cloud Build默认服务账号,格式为[项目编号]@cloudbuild.gserviceaccount.com,可在Cloud Build控制台「设置」页面查看
  • 为该服务账号授予Storage Object Admin角色,可针对单个桶或整个项目执行命令:
    gcloud projects add-iam-policy-binding 你的项目ID \
      --member="serviceAccount:[项目编号]@cloudbuild.gserviceaccount.com" \
      --role="roles/storage.objectAdmin"
    
    替换命令中的「你的项目ID」和「项目编号」为实际信息

二、Cloud Build集成Sonar Scanner配置

假设已部署SonarQube实例(GCE托管或SonarCloud均可),按以下配置cloudbuild.yaml:

  1. 确保Cloud Build能访问SonarQube实例:

    • 若为GCE部署的SonarQube,需在防火墙规则中允许Cloud Build的IP段访问SonarQube默认端口(9000)
    • 若为SonarCloud,确认API密钥有效且已关联目标分析项目
  2. 编写cloudbuild.yaml:

    steps:
      # 拉取代码(若从代码仓库自动触发构建,可省略此步)
      - name: 'gcr.io/cloud-builders/git'
        args: ['clone', '你的代码仓库地址']
      # 运行Sonar Scanner执行代码扫描
      - name: 'gcr.io/cloud-builders-community/sonarqube-scanner'
        args:
          - '-Dsonar.host.url=SonarQube实例地址'
          - '-Dsonar.projectKey=你的Sonar项目Key'
          - '-Dsonar.login=SonarQube API密钥'
          - '-Dsonar.sources=.'
    

    替换占位符为实际信息,如需添加额外Sonar扫描参数,直接追加到args列表即可

  3. 按需添加额外配置:

    • 若需通过代理访问SonarQube,在cloudbuild.yaml中加入环境变量:
      env:
        - 'HTTP_PROXY=代理地址'
        - 'HTTPS_PROXY=代理地址'
      
    • 私有代码仓库需提前在Cloud Build中配置仓库访问凭证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:30:43