如何限制GCS存储桶仅允许GCP负载均衡器访问?
如何限制GCS存储桶仅允许GCP外部应用负载均衡器访问
完全可以实现这个权限限制,核心思路是通过IAM授权仅让负载均衡器使用的专属服务账号访问存储桶,同时关闭其他所有非授权访问路径,具体步骤如下:
第一步:获取负载均衡器的专属服务账号
外部应用负载均衡器使用Google托管的专属服务账号,格式为service-<PROJECT_NUMBER>@gcp-sa-cloud-lb.iam.gserviceaccount.com。你可以通过以下命令获取项目编号:gcloud projects describe 你的项目ID --format='value(projectNumber)'将项目编号替换进格式里,就能得到对应的LB服务账号。
第二步:配置GCS存储桶的IAM权限
- 先移除存储桶上所有公开访问权限(比如之前给
allUsers或allAuthenticatedUsers设置的roles/storage.objectViewer权限),杜绝非授权访问入口。 - 给第一步拿到的LB服务账号添加
roles/storage.objectViewer角色,确保只有负载均衡器能读取存储桶内的对象。
- 先移除存储桶上所有公开访问权限(比如之前给
第三步:验证配置效果
尝试直接访问GCS对象的原始URL(比如https://storage.googleapis.com/你的桶名/文件名),应该返回403 Forbidden;而通过负载均衡器的域名访问则能正常加载内容,说明权限限制生效。
额外注意:如果你的存储桶之前开启了静态网站托管,要确保用户只能通过负载均衡器的域名访问,不要直接暴露GCS的静态网站域名——否则用户直接访问时会用自身身份请求,无法通过LB的服务账号完成授权。
内容的提问来源于stack exchange,提问作者BT3
相关产品推荐
相关产品推荐

