為了讓 Firebase Extension 執行指定動作,Firebase 會透過服務帳戶,授予已安裝擴充功能的每個例項對專案和資料的有限存取權。
什麼是服務帳戶?
服務帳戶是一種特殊的 Google 使用者帳戶,代表有權透過 Google API 存取資料的非真人使用者。
安裝擴充功能時,Firebase 會在專案中建立服務帳戶。每個已安裝的擴充功能例項都有各自的服務帳戶。
Firebase 會指派擴充功能的服務帳戶專屬角色 (權限組合),限制專案和資料的存取權。Firebase 會在擴充功能開發期間,決定擴充功能執行作業所需的角色。在安裝時,Firebase 會將這些角色指派給擴充功能的服務帳戶,您不應修改、新增或刪除任何已指派的角色 (否則已安裝的擴充功能將無法正常運作)。不過,您可以解除安裝擴充功能,這樣就能一併刪除服務帳戶 (及其存取權)。
為擴充功能建立的服務帳戶格式為:ext-extension-instance-id@project-id.iam.gserviceaccount.com
您可以在
權限與角色
在開發擴充功能時,Firebase 會判斷擴充功能運作所需的存取層級。
Firebase 會明確列出 角色 (權限組合),這些角色是 Firebase 在安裝擴充功能時,應指派給擴充功能服務帳戶的項目。
每個角色 (及其固有權限) 皆以特定產品或服務為依據。例如 firebasehosting.admin
、bigquery.dataEditor
和 firebasedatabase.admin
。Firebase 會在擴充功能的規格檔案 (extension.yaml
檔案) 中列出擴充功能的必要角色。
對於官方 Firebase 擴充功能,Firebase 會徹底審查這份角色清單,確保擴充功能的存取權僅限於擴充功能工作範圍。您也可以在 Firebase Extensions 資訊主頁中查看擴充功能的詳細資料頁面,或查看README
檔案,自行查看並確認授予擴充功能的存取權。
瞭解各角色的權限:
解除安裝擴充功能會發生什麼事?
從專案解除安裝擴充功能時,Firebase 會刪除為該擴充功能例項建立的服務帳戶。刪除服務帳戶後,擴充功能就無法在專案中執行,因為它不再具備專案或資料的存取權。