Affinché un Firebase Extension possa eseguire le azioni specificate, Firebase concede a ogni istanza di un'estensione installata un accesso limitato al progetto e ai dati tramite un account di servizio.
Che cos'è un account di servizio?
Un account di servizio è un tipo speciale di account utente Google. Rappresenta un utente non umano che dispone dell'autorizzazione per accedere ai dati utilizzando le API di Google.
Durante l'installazione di un'estensione, Firebase crea un account di servizio nel tuo progetto. Ogni istanza installata di un'estensione ha il proprio account di servizio.
Firebase limita l'accesso al progetto e ai dati assegnando all'account di servizio di un'estensione ruoli specifici (pacchetti di autorizzazioni). I ruoli richiesti da un'estensione per il suo funzionamento vengono determinati da Firebase durante lo sviluppo dell'estensione. Durante l'installazione, Firebase assegna questi ruoli all'account di servizio di un'estensione e non devi modificare, aggiungere o eliminare nessuno di questi ruoli assegnati (altrimenti l'estensione installata non funzionerà come previsto). Tuttavia, puoi disinstallare l'estensione, che elimina completamente l'account di servizio (e il relativo accesso).
Gli account di servizio creati per le estensioni hanno il formato:
ext-extension-instance-id@project-id.iam.gserviceaccount.com
Puoi visualizzare tutti gli account di servizio associati al tuo progetto Firebase in
the
Account di servizio
scheda delle
Autorizzazioni e ruoli
Durante lo sviluppo di un'estensione, Firebase determina il livello di accesso richiesto da un'estensione per il suo funzionamento.
Firebase definisce questo livello di accesso elencando esplicitamente i ruoli (pacchetti di autorizzazioni) che Firebase deve assegnare all' account di servizio dell'estensione durante l'installazione dell'estensione.
Ogni ruolo (e le relative autorizzazioni) si basa su un prodotto o
servizio specifico. Esempi di ruoli sono firebasehosting.admin, bigquery.dataEditor,
e firebasedatabase.admin. Firebase elenca i ruoli richiesti per un'estensione
nel file di specifica dell'estensione (il
extension.yaml file).
Per le estensioni Firebase ufficiali, Firebase esamina attentamente questo elenco di
ruoli per garantire che l'accesso di un'estensione sia strettamente limitato all'ambito delle
attività dell'estensione. Puoi anche esaminare e confermare personalmente l'accesso
concesso a un'estensione visualizzando la pagina dei dettagli dell'estensione nella
Firebase Extensions dashboard o visualizzando il relativo file
README file.
Scopri di più sulle autorizzazioni incluse in ogni ruolo:
Cosa succede quando disinstallo un'estensione?
Quando disinstalli un'estensione dal progetto, Firebase elimina l'account di servizio creato per quell'istanza dell'estensione. Dopo l'eliminazione dell'account di servizio, l'estensione non può essere eseguita nel progetto perché non ha più diritti di accesso al progetto o ai dati.