You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不公开Cloud Storage存储桶的前提下对接Google Cloud CDN?

如何让Google Cloud CDN专属访问Cloud Storage存储桶(无需公开给allUsers)

你可以通过绑定负载均衡服务账号的IAM权限实现,逻辑和AWS CloudFront的Origin Access Control(OAC)类似,具体步骤如下:

核心配置步骤

  1. 移除存储桶的公开权限
    先确保你的Cloud Storage存储桶没有给allUsers配置任何读取权限,避免存储桶被公开访问。

  2. 配置带Cloud CDN的HTTP(S)负载均衡器
    创建HTTP(S)负载均衡器,后端服务选择Cloud Storage类型并关联你的目标存储桶,同时启用Cloud CDN功能。

  3. 找到负载均衡器的服务账号
    负载均衡器默认使用专属服务账号:service-[你的项目编号]@cloud-lb-sa.iam.gserviceaccount.com,你可以在GCP控制台的负载均衡器详情页或通过gcloud projects get-iam-policy [项目ID]命令确认。

  4. 为服务账号授予存储桶访问权限
    给上述服务账号添加Cloud Storage的roles/storage.objectViewer角色,使其能读取存储桶内的对象:

    • 命令行方式:
      gcloud storage buckets add-iam-policy-binding gs://[你的存储桶名称] \
        --member="serviceAccount:service-[项目编号]@cloud-lb-sa.iam.gserviceaccount.com" \
        --role="roles/storage.objectViewer"
      
    • 控制台方式:在存储桶的IAM管理页面,添加该服务账号并选择「存储对象查看者」角色。
  5. 验证配置
    通过负载均衡器的域名访问存储桶内的对象,确认能正常加载;直接访问存储桶的原始URL(如storage.googleapis.com/[存储桶名称]/xxx)会被拒绝,说明权限仅对Cloud CDN开放。

补充说明

官方文档中使用allUsers是为了快速演示配置,属于测试级方案。上述基于服务账号的配置是生产环境推荐的安全方案,确保只有Cloud CDN能通过负载均衡访问存储桶,避免存储桶直接暴露。

内容的提问来源于stack exchange,提问作者Jaehyun Baek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:01:04