【问题标题】:Do firebase storage rules override cloud storage permissions?Firebase 存储规则是否会覆盖云存储权限?
【发布时间】:2021-04-04 08:47:40
【问题描述】:
我的存储桶中有以下规则:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read;
}
}
}
这告诉我公众可以阅读 - 但他们不能。检查谷歌云存储用户界面,没有“公共网址”。
有几个问题:
- firebase 是否为访问将根据上述规则配置颁发权限的文件提供不同的 URL?
- GCS 存储桶权限中有一个 firebase-adminsdk 服务帐号 - 这是 firebase 用来访问存储桶的吗?
- 哪些凭据相互覆盖?
【问题讨论】:
标签:
firebase
google-cloud-storage
firebase-storage
firebase-security
【解决方案1】:
Cloud Storage 访问权限和 Firebase 的存储规则无关。
Firebase 的存储规则适用于通过 Firebase SDK 访问存储分区中数据的用户。此外,Firebase 可以生成一个所谓的下载 URL,让拥有该 URL 的每个人都可以只读访问该文件。
Cloud Storage 访问权限适用于通过 Cloud API 访问存储桶中数据的用户。 Cloud Storage SDK 和 API 还可以生成所谓的签名 URL,其作用类似于上述下载 URL。
【解决方案2】:
Firebase 安全规则仅影响在使用 Firebase SDK 时从网络和移动客户端应用直接访问,尤其是当用户通过 Firebase Auth 进行身份验证时(因为在评估规则期间用户的帐户令牌可用)。
规则不会影响服务帐号的工作方式或其他依赖 Cloud Storage ACL 的公共访问方式。这些是由他们自己的权限系统决定的。这些其他系统也完全不会影响 Firebase 客户端访问。