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

Vertex AI托管式Notebook执行阶段身份认证问题求助

问题描述

我用Compute Engine服务账号创建了一个Managed Notebooks实例,写了段Python代码读取并处理BigQuery表。之前执行gcloud auth application default login登录个人谷歌账号后,能成功访问BigQuery表(之前会提示访问被拒)。

现在想通过Executor运行这个Notebook,但Executor在租户项目中运行,又遇到了访问被拒的错误。根据官方文档说明:

Also, the executor cannot use end-user credentials to authenticate access to resources, for example, the gcloud auth login command.

To resolve these issues, in your notebook file's code, authenticate access to resources through a service account.

Then when you create an execution or schedule, specify the service account.

我已经在Executor设置里指定了Compute Engine服务账号,但还是没法访问BigQuery表。想问下代码里可以做哪些类似gcloud auth application default login的操作来解决这个问题?

解决方案

1. 先确认服务账号的权限配置

首先检查你指定的Compute Engine服务账号是否拥有BigQuery的必要权限,比如BigQuery Data Viewer(读取数据)、BigQuery Job User(提交查询任务)等。直接在IAM控制台给该账号添加对应角色,这是解决访问问题的基础前提。

2. 代码中显式使用服务账号密钥认证(适合测试场景)

如果需要在代码里明确指定服务账号,先下载该服务账号的JSON密钥文件,然后通过两种方式在代码中配置:

from google.cloud import bigquery
import os

# 方式1:通过环境变量指定密钥路径
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/path/to/your/service-account-key.json"

# 方式2:初始化客户端时直接传入密钥文件路径
client = bigquery.Client.from_service_account_json("/path/to/your/service-account-key.json")

# 后续正常执行BigQuery操作
query = "SELECT * FROM `your-project.your-dataset.your-table`"
query_job = client.query(query)
results = query_job.result()

3. 利用Executor的隐式服务账号认证(生产环境推荐)

既然你已经在Executor设置中指定了服务账号,代码里不需要做类似gcloud auth的手动登录操作,只要保证代码使用默认应用凭据即可。BigQuery客户端会自动获取Executor运行环境中的服务账号凭据,注意要移除之前依赖个人账号的本地认证逻辑。

修改后的极简代码示例:

from google.cloud import bigquery

# 直接初始化客户端,自动使用Executor指定的服务账号凭据
client = bigquery.Client()

# 执行查询操作
query = "SELECT * FROM `your-project.your-dataset.your-table`"
query_job = client.query(query)
results = query_job.result()

4. 验证跨项目权限传递

由于Executor运行在租户项目,若BigQuery资源在另一个项目,需要确保你的Compute Engine服务账号在目标项目(BigQuery所在项目)中也配置了对应权限,或者直接在BigQuery数据集的权限设置里添加该服务账号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:30:48