如何配置GCP负载均衡器访问其他项目中的Cloud Storage存储桶?
跨项目负载均衡器访问Cloud Storage存储桶的IAM配置方案
核心原因
负载均衡器所在的my-dev项目需要通过IAM获得对my-infra项目中my-bucket的合法访问权限,GCP会验证当前项目是否拥有桶的访问权限,而非仅依赖桶的公开状态。
具体配置步骤
步骤1:获取my-dev项目的Compute Engine默认服务账号
该服务账号是负载均衡器访问存储桶的身份,格式为[my-dev项目编号]-compute@developer.gserviceaccount.com。
可以通过gcloud命令获取项目编号:gcloud projects describe my-dev --format='value(projectNumber)'步骤2:给该服务账号配置存储桶权限
在my-infra项目的my-bucket IAM管理页面,添加上述服务账号,并授予roles/storage.objectViewer角色(静态站点只读场景足够)。如果需要修改桶内对象,可替换为roles/storage.objectAdmin。步骤3:确保创建负载均衡器的身份有权限读取桶信息
若你是手动创建负载均衡器,需确保你的账号在my-infra项目的my-bucket中拥有storage.buckets.get权限(可通过授予roles/storage.objectViewer间接获得),否则创建Backend Bucket时会无法识别跨项目桶。
额外注意事项
- 存储桶的公开状态仅影响匿名访问,负载均衡器依赖IAM身份访问,无需依赖公开设置(可根据需求关闭公开,提升安全性)。
- 若需多个项目访问该桶,重复步骤1-2,将对应项目的Compute Engine默认服务账号添加到桶的IAM权限列表即可。
内容的提问来源于stack exchange,提问作者Jose Gleeson
相关产品推荐
相关产品推荐

