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

如何为Google Cloud Storage对象配置基于文件夹结构的条件访问控制

Google Cloud Storage 按特定日期文件夹结构配置条件访问控制

核心问题纠正

你之前的IAM条件失效,是因为误解了GCS资源名称的格式:GCS对象的resource.name并非gs://bucket/xxx格式,而是采用projects/_/buckets/[桶名]/objects/[对象路径]的结构。比如gs://bucket/23/10/01/folder_1/some_file.txt对应的resource.name是:

projects/_/buckets/bucket/objects/23/10/01/folder_1/some_file.txt

正确配置步骤

要实现仅允许访问{year}/{month}/{day}/folder_1路径下的对象,可通过带正则匹配条件的IAM绑定完成:

  1. 打开GCS控制台,进入目标存储桶,切换到「权限」标签页
  2. 点击「添加权限」,输入需要授权的查看者身份(邮箱/服务账号等),选择角色 roles/storage.objectViewer
  3. 点击「添加条件」,配置以下内容:
    • 条件名称:自定义(比如「仅允许访问日期路径下的folder_1」)
    • 条件类型:选择「资源」
    • 属性:选择「资源名称」
    • 运算符:选择「匹配正则表达式」
    • 值:填入对应你的路径规则的正则,示例:
      projects/_/buckets/bucket/objects/[0-9]{2}/[0-9]{2}/[0-9]{2}/folder_1/.*
      
      (如果年份是4位,将[0-9]{2}改为[0-9]{4}即可)
  4. 保存配置

权限验证

  • 使用授权的查看者身份,尝试访问gs://bucket/23/10/01/folder_1/some_file.txt,确认可正常访问
  • 尝试访问gs://bucket/23/10/01/another_folder/another_file.txt或其他非目标路径的对象,确认被拒绝访问

注意事项

  • 不要给查看者直接配置存储桶级的roles/storage.objectViewer权限(无附加条件),否则会覆盖本次的条件限制
  • 正则表达式可根据实际路径规则调整,比如允许年份为任意数字长度、支持多字符分隔等,确保精确匹配目标路径
  • 若需批量管理,可通过gcloud命令行配置,示例命令:
    gcloud storage buckets add-iam-policy-binding gs://bucket \
      --member="user:viewer@example.com" \
      --role="roles/storage.objectViewer" \
      --condition="expression=resource.name.matches('projects/_/buckets/bucket/objects/[0-9]{2}/[0-9]{2}/[0-9]{2}/folder_1/.*'),title=AllowFolder1Access"
    

内容的提问来源于stack exchange,提问作者Matias Lopez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:12:20