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