Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Autorisations accordées à une extension Firebase

Pour qu'une extension Firebase effectue 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 spécial de compte utilisateur Google. Il représente un utilisateur non humain autorisé à accéder aux données à l'aide 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 a son propre compte de service.

Firebase limite l'accès à votre projet et à vos données en attribuant des rôles spécifiques au compte de service d'une extension (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, et vous ne devez modifier, ajouter ou supprimer aucun de ces rôles attribués (sinon votre extension installée ne fonctionnera pas comme prévu). Vous pouvez cependant 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 : 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 projet .

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 répertoriant explicitement les rôles (ensembles d'autorisations) que Firebase doit attribuer au compte de service de l'extension lors de l'installation de l'extension.

Chaque rôle (et ses autorisations inhérentes) est basé sur un produit ou un service spécifique. Des exemples de rôles sont firebasehosting.admin , bigquery.dataEditor et firebasedatabase.admin . Firebase répertorie les rôles requis pour une extension dans le fichier de spécification de l' extension.yaml (le fichier extension.yaml ).

Pour les extensions Firebase officielles, Firebase examine attentivement cette liste de rôles pour s'assurer que l'accès d'une extension est strictement limité à la portée des tâches de l'extension. Vous pouvez également vérifier et confirmer par vous-même l'accès accordé à une extension en affichant la page des détails de l'extension dans le tableau de bord des extensions Firebase ou en consultant 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. Après cette suppression du compte de service, l'extension ne peut plus s'exécuter dans votre projet car elle n'a plus aucun droit d'accès à votre projet ou à vos données.