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

Firebase存储桶规则为空是否不安全?云函数桶规则配置咨询

Firebase存储桶空规则风险与Cloud Functions专用桶权限配置

一、空规则是否意味着任何人可访问?

要区分两种情况:

  • 如果规则文件完全空白(无任何allow语句),Firebase Storage默认会拒绝所有外部读写请求,但这不是绝对安全——GCS的IAM权限可以绕过Firebase规则,若IAM误设公开访问,仍存在被访问的风险。
  • 如果规则设置为allow read, write: if true;(完全开放规则),那任何人都能无限制读写存储桶内所有内容,这才是真正的公开风险。

你提到的“规则完全为空”若属于前者,虽外部无法通过Firebase SDK访问,但仍建议补全规则,避免IAM配置失误带来的隐患。

二、Cloud Functions专用桶的规则配置

Cloud Functions部署和运行会用到两类存储资源:一是存储函数代码的目录(通常在默认存储桶的functions文件夹下),二是构建产物专用桶(格式为artifacts.<项目ID>.appspot.com)。以下是兼顾运行与部署的规则配置:

核心原则

  • 仅允许Cloud Functions运行时服务账号读取函数代码
  • 仅允许部署相关账号(你的CLI账号、Cloud Build服务账号)读写代码和构建产物
  • 禁止其他任何外部访问

规则示例

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    // 你已配置完成的普通存储桶规则
    match /{allPaths=**} {
      allow read, write: if <你的普通桶权限条件>;
    }

    // 函数代码存储目录规则
    match /functions/{allPaths=**} {
      // 允许Cloud Functions运行时读取代码
      allow read: if request.auth.token.email == "service-<你的项目编号>@gcf-admin-robot.iam.gserviceaccount.com";
      // 允许部署账号读写(替换为你的实际账号与项目编号)
      allow read, write: if request.auth.token.email in [
        "your-google-account@example.com",
        "service-<你的项目编号>@cloudbuild.gserviceaccount.com"
      ];
    }
  }

  // 构建产物专用桶规则
  match /b/artifacts.<你的项目ID>.appspot.com/o/{allPaths=**} {
    // 允许Cloud Build读写构建产物
    allow read, write: if request.auth.token.email == "service-<你的项目编号>@cloudbuild.gserviceaccount.com";
    // 允许Cloud Functions运行时读取构建产物
    allow read: if request.auth.token.email == "service-<你的项目编号>@gcf-admin-robot.iam.gserviceaccount.com";
  }
}

补充说明

  1. 获取项目编号:可在Google Cloud控制台项目设置中找到,或通过gcloud projects describe <项目ID>命令查询。
  2. IAM权限配合:除Firebase规则外,需确保:
    • Cloud Functions服务账号拥有存储桶的Storage Object Viewer权限
    • Cloud Build服务账号拥有Storage Object Admin权限
    • 你的CLI登录账号拥有Firebase Admin和Storage Object Admin权限
  3. 部署验证:修改规则后,先用firebase deploy --only functions测试部署是否正常,再检查函数运行时能否正常读取资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:33:22