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

如何为GCP Cloud Storage存储桶内的不同文件夹配置独立访问权限

Google Cloud Storage分目录设置不同访问权限的实现方案

结论

该需求完全可以实现,Google Cloud Storage(下称GCS)支持通过带条件的IAM策略,按对象前缀(即你所说的文件夹)配置不同的访问权限。

前置要求

首先你需要确认存储桶未开启统一桶级访问权限,该功能会强制所有对象复用桶的权限配置,不允许单独为前缀/对象设置权限,如有开启需要先关闭该配置。

具体实现步骤

  • 第一步:确保桶本身没有给allUsers或allAuthenticatedUsers授予任何对象访问类的权限(如roles/storage.objectViewer),避免高权限覆盖前缀级的权限规则
  • 第二步:给文件夹B配置公开访问权限,通过带条件的IAM策略给所有用户授予B路径下的对象读权限,你可以直接在云控制台的存储桶权限页面添加IAM绑定,也可以用gcloud命令执行:
    gcloud storage buckets add-iam-policy-binding 替换为你的桶名 \
      --member=allUsers \
      --role=roles/storage.objectViewer \
      --condition="expression=resource.name.startsWith('projects/_/buckets/替换为你的桶名/objects/B/'),title=公开访问B目录"
    
  • 第三步:文件夹A无需额外配置,GCS默认所有对象为私有,只要你没有给A路径配置额外的公开访问权限,A路径下的所有对象默认只有桶所有者、授权账号能访问。

验证方法

你可以分别访问两个路径下的公开链接验证效果:

  • B路径下的文件:https://storage.googleapis.com/你的桶名/B/测试文件可直接匿名访问
  • A路径下的文件:https://storage.googleapis.com/你的桶名/A/测试文件匿名访问会返回403错误

注意事项

  • GCS本身是扁平化对象存储,没有真实的文件夹结构,此处的文件夹本质是对象名称的前缀,所有名称以B/开头的对象都会匹配上述公开访问规则
  • 如果你的场景只需要给少量B目录下的文件设置公开权限,也可以直接给单个对象设置公开ACL,无需配置IAM策略
  • 如果你有更复杂的路径权限需求,直接修改IAM策略的匹配条件即可

内容的提问来源于stack exchange,提问作者Eranga Perera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:45:10