簡體   English   中英

是否可以使用雲 firestore 規則將 firebase firestore 訪問權限限制為僅服務帳戶和 API 密鑰?

[英]Is it possible to restrict firebase firestore access to only service accounts and API keys using cloud firestore rules?

我正在使用 firebase 的雲 firestore 數據庫,我想將對該數據庫的訪問限制為兩個通過 API 密鑰和一個服務帳戶進行身份驗證的移動應用程序。

我查看了有關實施自定義規則的 firebase 文檔,但我沒有看到任何 API 密鑰或服務帳戶示例,因此我不確定如何針對此用例使用規則。

從這個stackoverflow 問答看來,使用 firebase admin API 的服務帳戶似乎繞過了任何 firestore 安全規則,對嗎? 如果是這樣,完全關閉對我只希望此服務帳戶更新的任何 firestore collections 的寫訪問是否合理?

到目前為止,我已經嘗試過類似的方法來允許從服務帳戶進行訪問,但它沒有按預期工作。 我不確定雲 Firestore 規則是否支持限制對某些 API 密鑰的訪問。

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /sales_reps/{document=**} {
      allow read: if true;
      allow write: if request.auth.token.email == '<first-service-account-email>';
    }
    match /gps_tracking/{document=**} {
      allow read: if true;
      allow write: if request.auth.token.email == '<second-service-account-email>';
    }
    match /{document=\*\*} {
      allow read: if true;
      allow write: if false;
    }
  }
}

從這個 stackoverflow 問答看來,使用 firebase admin API 的服務帳戶似乎繞過了任何 firestore 安全規則,對嗎?

是的,這是正確的

如果是這樣,完全關閉對我只希望此服務帳戶更新的任何 firestore collections 的寫訪問是否合理?

是的,因為使用客戶端 SDK(或 REST API)的用戶不會更新您的收藏,這是正確的方法。


所以具體來說不需要使用像這樣的規則

allow write: if request.auth.token.email == '<first-service-account-email>';

做就是了

allow write: if false;

對於您只希望服務帳戶具有寫訪問權限的所有 collections。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM