為讓 Firebase Extension 執行指定動作,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 Extensions資訊主頁查看擴充功能的詳細資料頁面,或查看其README
檔案,自行檢查並確認授予擴充功能的存取權。
瞭解各角色包含的權限:
解除安裝擴充功能會怎麼樣?
從專案解除安裝擴充功能時,Firebase 會刪除為該擴充功能執行個體建立的服務帳戶。刪除服務帳戶後,擴充功能就無法在專案中執行,因為擴充功能不再擁有專案或資料的存取權。