Google Cloud Bucket权限问题:如何确保使用服务账号访问
解决Colab中强制使用Google服务账号访问Cloud Storage的问题
问题背景
在Colab项目中使用Google Cloud Bucket时,先通过个人Gmail账号A操作,后续登录了服务账号B,但仍触发403权限错误,提示账号A无storage.objects.list权限。执行gcloud auth list显示两个活跃账号,但操作仍默认使用账号A。
解决步骤
确认当前默认账号
执行gcloud auth list,输出中带*标记的是当前默认使用的账号,记录服务账号B的邮箱地址。切换默认账号到服务账号B
运行以下命令,将默认账号替换为服务账号B的实际邮箱:gcloud config set account service-b@your-project-id.iam.gserviceaccount.com验证切换结果
再次执行gcloud auth list,确认服务账号B前出现*,表示已设为默认账号。针对TensorFlow等库的额外处理
如果TensorFlow等工具仍调用旧凭据,可通过以下方式强制使用服务账号:- 加载服务账号密钥文件(需提前上传到Colab):
import os os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/content/service-account-b-key.json' - 重新激活服务账号凭据:
!gcloud auth activate-service-account --key-file=/content/service-account-b-key.json
- 加载服务账号密钥文件(需提前上传到Colab):
原因说明
Colab初始化时会绑定首次登录的个人账号凭据,即使后续添加服务账号,默认操作仍优先使用初始个人账号的权限,因此必须手动切换默认账号或显式指定服务账号凭据。
内容的提问来源于stack exchange,提问作者Li Gaoxiang
相关产品推荐
相关产品推荐

