创建GCP Search & Conversation数据存储时遇storage.objects.get权限缺失问题
GCS源创建Data Store时
storage.objects.get权限错误排查方案 问题核心定位
你遇到的权限缺失问题,并非是你猜测的Compute Engine默认服务账号或AI Platform Service Agent,而是Search & Conversation服务专用的服务账号——格式为service-[项目编号]@gcp-sa-genappbuilder.iam.gserviceaccount.com,创建Data Store时是这个账号在访问GCS资源。
具体解决步骤
- 找到目标服务账号:
- 进入IAM & Admin控制台,在搜索框输入
gcp-sa-genappbuilder,定位到对应服务账号 - 这个账号是Search & Conversation服务的默认执行主体,之前的配置没覆盖到它,所以权限不足
- 进入IAM & Admin控制台,在搜索框输入
- 添加必要权限:
给该服务账号分配Storage Object Viewer角色(遵循最小权限原则,足够满足读取GCS对象的需求,无需用Storage Admin这类高权限角色) - 检查GCS权限继承:
- 确认你的GCS存储桶没有关闭权限继承,如果关闭了,需要单独在存储桶或指定路径上给该服务账号添加
storage.objects.get权限 - 公开数据集能正常访问是因为其GCS桶默认对所有GCP服务账号开放了Object Viewer权限,而你的私有桶需要显式配置
- 确认你的GCS存储桶没有关闭权限继承,如果关闭了,需要单独在存储桶或指定路径上给该服务账号添加
- 等待权限同步:
配置完成后等待1-2分钟(GCP权限同步存在延迟),再重新尝试创建Data Store
额外提醒
不同GCP服务有各自的专用服务账号,Search & Conversation不属于AI Platform范畴,所以AI Platform的服务账号不会参与这个操作,之前的配置相当于无效操作。
内容的提问来源于stack exchange,提问作者Jane Wayne
相关产品推荐
相关产品推荐

