為了讓 Firebase 擴展執行其指定的操作,Firebase 通過服務帳戶授予已安裝擴展的每個實例對您的項目和數據的有限訪問權限。
什麼是服務帳戶?
服務帳戶是一種特殊類型的 Google 用戶帳戶。它代表被授權使用 Google API 訪問數據的非人類用戶。
在安裝擴展程序期間,Firebase 會在您的項目中創建一個服務帳戶。每個已安裝的擴展實例都有其自己的服務帳戶。
Firebase 通過為擴展程序的服務帳號分配特定角色(權限集)來限制對項目和數據的訪問。擴展程序運行所需的角色由 Firebase 在擴展程序開發期間確定。安裝時,Firebase 會將這些角色分配給擴展程序的服務帳號,您不應修改、添加或刪除任何這些分配的角色(否則您安裝的擴展程序將無法按預期運行)。不過,您可以卸載擴展程序,這會完全刪除服務帳戶(及其訪問權限)。
為擴展創建的服務帳戶的ext- extension-instance-id @ project-id .iam.gserviceaccount.com
您可以在服務帳戶選項卡中查看與您的 Firebase 項目關聯的所有服務帳戶。
項目設置的權限和角色
在擴展程序的開發過程中,Firebase 會確定擴展程序運行所需的訪問級別。
Firebase 通過顯式列出 Firebase 在安裝擴展程序期間應分配給擴展程序服務帳戶的角色(權限束)來定義此訪問級別。
每個角色(及其固有權限)都基於特定的產品或服務。角色示例包括firebasehosting.admin
、 bigquery.dataEditor
和firebasedatabase.admin
。 Firebase 在擴展的規範文件( extension.yaml
文件)中列出了擴展所需的角色。
對於官方 Firebase 擴展程序,Firebase 會徹底審查此角色列表,以確保擴展程序的訪問權限嚴格限制在擴展程序的任務範圍內。您還可以通過在Firebase 擴展儀表板中查看擴展程序的詳細信息頁面或查看其README
文件,自行查看並確認授予擴展程序的訪問權限。
了解每個角色包含的權限:
當我卸載擴展時會發生什麼?
當您從項目中卸載擴展程序時,Firebase 會刪除為該擴展程序實例創建的服務帳號。刪除服務帳戶後,擴展程序無法在您的項目中運行,因為它不再具有對您的項目或數據的任何訪問權限。