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

如何通过Google Drive API v3使用服务账号创建共享驱动器?权限报错及权限配置咨询

服务账号创建Google共享驱动器的权限配置方案

问题1:是否可以使用服务账号创建共享驱动器?

是的,完全可以,但服务账号本身不属于你的Google Workspace域,默认无法直接操作域内的共享驱动器资源,必须通过**域范围委派(Domain-Wide Delegation)**结合Workspace权限配置来实现。

问题2:服务账号需要配置哪些权限?

你需要完成以下几个关键配置步骤,缺一不可:

1. 启用服务账号的域范围委派

首先在GCP控制台操作:

  • 找到你的服务账号,进入详情页后点击「编辑」,勾选「启用Google Workspace域范围委派」
  • 记录服务账号的客户端ID(在服务账号详情页的「客户端ID」字段)

然后切换到Google Workspace Admin控制台(admin.google.com):

  • 进入「安全」→「API控制」→「域范围委派」
  • 点击「添加新的」,输入刚才记录的客户端ID,然后添加OAuth授权范围:https://www.googleapis.com/auth/drive(如果需要最小权限,也可以用https://www.googleapis.com/auth/drive.drive),最后保存。

2. 给服务账号分配Workspace创建共享驱动器的权限

共享驱动器是Google Workspace的域级资源,必须在Workspace Admin中配置权限:

  • 进入「应用」→「Google Workspace」→「驱动器和文档」→「共享驱动器设置」
  • 在「谁可以创建共享驱动器」部分,点击「添加用户或群组」,输入你的服务账号邮箱(格式为[service-account-id]@[project-id].iam.gserviceaccount.com),保存设置。
  • 如果你需要更精细化的权限管理,可以创建一个自定义Workspace角色,添加「创建共享驱动器」权限,再将服务账号加入该角色。

3. 代码中使用域内用户身份委派

服务账号本身不在域内,所以需要模拟一个你的Workspace域内拥有创建共享驱动器权限的用户(比如你自己的账号)来执行操作。修改你的代码如下:

import uuid
from googleapiclient.discovery import build
from google.oauth2 import service_account

# 替换为你的服务账号密钥文件路径
SERVICE_ACCOUNT_FILE = 'path/to/your/service-account-key.json'
# 授权范围
SCOPES = ['https://www.googleapis.com/auth/drive']
# 替换为你Workspace域内有创建共享驱动器权限的账号邮箱
DELEGATED_USER_EMAIL = 'your-workspace-account@your-domain.com'

# 加载服务账号凭证
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
# 模拟域内用户身份
delegated_credentials = credentials.with_subject(DELEGATED_USER_EMAIL)

# 构建Drive服务
service = build('drive', 'v3', credentials=delegated_credentials)

drive_metadata = {'name': 'Test shared drive'}
request_id = str(uuid.uuid4())
drive = service.drives().create(
 body=drive_metadata,
 requestId=request_id,
 fields='id'
).execute()
drive_id = drive.get('id')
print(f'Drive ID: {drive_id}')

为什么之前会出现403错误?

你之前的代码直接使用服务账号自身身份调用API,但服务账号不属于你的Workspace域,默认没有域内共享驱动器的创建权限,也没有模拟域内用户,因此被Google Drive API拒绝访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:57:34