Colab使用TPU访问GCS存储桶遇403权限错误的解决方法
解决TPU读取GCS存储桶的403权限问题
核心原因
TPU实例使用的专属服务账号(错误信息中的XX@cloud-tpu.iam.gserviceaccount.com)没有目标GCS存储桶的storage.objects.get读取权限。
具体解决步骤
- 提取TPU服务账号:从错误日志里复制完整的TPU服务账号地址(格式类似
xxx@cloud-tpu.iam.gserviceaccount.com)。 - 配置存储桶权限:
- 打开GCP控制台,找到你的目标存储桶
gs://name_bucket。 - 进入存储桶的「权限」标签页。
- 点击「添加成员」,把复制的TPU服务账号粘贴到成员输入框。
- 在角色列表里选「存储」→「Storage Object Viewer」(该角色包含读取对象所需的
storage.objects.get权限)。 - 点击「保存」完成配置。
- 打开GCP控制台,找到你的目标存储桶
- 验证权限:在Colab里运行以下命令测试能否访问存储桶:
!gsutil ls gs://name_bucket/Dataset - 重新执行代码:权限生效后(通常需要1-2分钟),重新运行你的数据集读取和可视化代码即可。
额外注意事项
- 若Colab未关联GCP账号,先运行以下代码完成认证:
from google.colab import auth auth.authenticate_user() - 确认
gcs_pattern指向的路径gs://name_bucket/Dataset真实存在,且文件格式无误。
内容的提问来源于stack exchange,提问作者DatBigD
相关产品推荐
相关产品推荐

