如何应用 firebase 存储规则以便只有 Google 云 运行 API 可以写入?

How to apply firebase storage rule so only Google cloud run API can write?

我的目标是阻止任何不是直接来自我在 google 云 运行 中的 API 的写入请求。

我认为常规项目设置中的 firebase Web API 密钥可能会有所帮助,但我找不到可以执行此操作的正确存储规则。

我找到了经过身份验证的用户等的存储规则,但我没有使用 firebase 身份验证。相反,我在 google 云 运行.

中托管的 API 中对用户进行身份验证

我觉得是这个方向,如果不对请指正

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read: if true;
      allow write: if request comes from my API with the Web API key;
    }
  }
}

来源:

https://firebase.google.com/docs/storage/security/rules-conditions

https://firebase.google.com/docs/storage/gcp-integration

无法检查调用云存储时使用的 API 密钥。

但是从云 运行 访问通常是通过 GCP SDKs/APIs 之一进行的,并且那些访问项目具有管理权限并完全绕过您的安全规则。

因此,您不妨拒绝来自不受信任的客户端的所有写入访问:

allow write: if false;