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

如何让本地运行的Vertex AI Pipeline跨多个项目访问?

解决AI Platform Pipeline跨项目访问权限问题

要让Pipeline具备多项目访问能力,核心是明确Pipeline运行时的身份是服务账号而非本地凭据,需从服务账号权限配置、代码与模板参数化两方面入手:

  • 配置Pipeline服务账号的跨项目权限
    Pipeline默认使用当前AI Platform所在项目的默认服务账号:service-{PROJECT_NUMBER}@gcp-sa-aiplatform.iam.gserviceaccount.com。你需要在所有需要访问的目标项目中,给这个服务账号添加对应IAM角色:

    • 若访问其他项目存储资源,添加Storage Object Viewer/Storage Object Admin角色;
    • 若调用其他项目AI Platform服务,添加AI Platform User角色;
    • 按需配置BigQuery、Cloud SQL等其他资源的对应角色。
  • 修改代码,解除全局项目绑定并参数化项目信息
    去掉aiplatform.init()中的固定项目参数,让Pipeline不绑定单个项目,同时通过参数传递给需要跨项目的组件提供目标项目ID:

    from google.cloud import aiplatform
    
    # 初始化时不指定项目,使用本地凭据但不锁定到单一项目
    aiplatform.init()
    
    job = aiplatform.PipelineJob(
        display_name="display-name",
        template_path="pipeline.yaml",
        pipeline_root="gs://my-bucket",
        # 传递多项目参数给Pipeline模板中的组件
        parameter_values={
            "project_a": "your-target-project-1",
            "project_b": "your-target-project-2"
        }
    )
    job.submit()
    
  • 在Pipeline模板中实现组件的项目指定
    在pipeline.yaml里,给每个需要跨项目访问的组件添加项目参数,让组件调用GCP服务时明确指定目标项目。比如访问BigQuery的组件,需在参数中接收target_project并在组件代码中使用:

    components:
      comp-bigquery-query:
        parameters:
          - name: target_project
            type: string
          - name: query
            type: string
        implementation:
          container:
            image: gcr.io/your-project/bigquery-component
            command:
              - python
              - main.py
            args:
              - --target-project
              - {inputValue: target_project}
              - --query
              - {inputValue: query}
    
  • 验证本地凭据权限
    确保本地使用的凭据(如gcloud登录账号)拥有管理Pipeline服务账号的权限,可通过gcloud auth list查看当前凭据的有效项目范围,确认覆盖所有需要访问的项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:17:47