Pour qu'un Firebase Extension puisse effectuer les actions spécifiées, Firebase accorde à chaque instance d'une extension installée un accès limité à votre projet et à vos données via un compte de service.
Qu'est-ce qu'un compte de service ?
Un compte de service est un type de compte utilisateur Google spécial. Il représente un utilisateur non humain qui est autorisé à accéder aux données via des API Google.
Lors de l'installation d'une extension, Firebase crée un compte de service dans votre projet. Chaque instance installée d'une extension possède son propre compte de service.
Firebase limite l'accès à votre projet et à vos données en attribuant au compte de service d'une extension des rôles spécifiques (ensembles d' autorisations). Les rôles dont une extension a besoin pour fonctionner sont déterminés par Firebase lors du développement de l'extension. Lors de l'installation, Firebase attribue ces rôles au compte de service d'une extension. Vous ne devez pas modifier, ajouter ni supprimer ces rôles attribués (sinon, votre extension installée ne fonctionnera pas comme prévu). Vous pouvez toutefois désinstaller l'extension, ce qui supprime complètement le compte de service (et son accès).
Les comptes de service créés pour les extensions sont au format suivant :
ext-extension-instance-id@project-id.iam.gserviceaccount.com
Vous pouvez afficher tous les comptes de service associés à votre projet Firebase dans
l'
onglet Comptes de service
de vos
Autorisations et rôles
Lors du développement d'une extension, Firebase détermine le niveau d'accès dont une extension a besoin pour fonctionner.
Firebase définit ce niveau d'accès en listant explicitement les rôles (ensembles d'autorisations) que Firebase doit attribuer au compte de service de l'extension lors de son installation.
Chaque rôle (et ses autorisations inhérentes) est basé sur un produit ou un
service spécifique. Exemples de rôles : firebasehosting.admin, bigquery.dataEditor,
et firebasedatabase.admin. Firebase liste les rôles requis pour une extension
dans le fichier de spécification de l'extension (le
extension.yaml fichier).
Pour les extensions Firebase officielles, Firebase examine attentivement cette liste de
rôles afin de s'assurer que l'accès d'une extension est strictement limité à la portée de
ses tâches. Vous pouvez également examiner et confirmer vous-même l'accès
accordé à une extension en consultant la page de détails de l'extension dans le
Firebase Extensions tableau de bord ou en affichant son fichier
README.
En savoir plus sur les autorisations incluses dans chaque rôle :
Que se passe-t-il lorsque je désinstalle une extension ?
Lorsque vous désinstallez une extension de votre projet, Firebase supprime le compte de service créé pour cette instance de l'extension. Une fois le compte de service supprimé, l'extension ne peut plus s'exécuter dans votre projet, car elle n'a plus aucun droit d'accès à votre projet ni à vos données.