Permisos otorgados a una Extensión de Firebase

Para que una Extensión de Firebase realice sus acciones especificadas, Firebase otorga a cada instancia de una extensión instalada acceso limitado a tu proyecto y datos a través de una cuenta de servicio.

¿Qué es una cuenta de servicio?

Una cuenta de servicio es un tipo especial de cuenta de usuario de Google. Representa a un usuario no humano autorizado para acceder a los datos mediante las API de Google.

Firebase crea una cuenta de servicio en tu proyecto durante la instalación de una extensión. Cada instancia instalada de una extensión tiene su propia cuenta de servicio.

Firebase limita el acceso a tu proyecto y a los datos mediante la asignación de funciones específicas de la cuenta de servicio de una extensión (paquetes de permisos). Durante su desarrollo, Firebase determina las funciones que requiere una extensión. Durante la instalación, Firebase asigna estas funciones a la cuenta de servicio de una extensión y no debes modificar, agregar ni borrar ninguna de las funciones asignadas (de lo contrario, la extensión instalada no funcionará como se espera). Sin embargo, puedes desinstalar la extensión, lo que borra la cuenta de servicio (y su acceso) por completo.

Las cuentas de servicio creadas para las extensiones tienen el siguiente formato: ext-extension-instance-id@project-id.iam.gserviceaccount.com.

Puedes ver todas las cuentas de servicio asociadas con tu proyecto de Firebase en la pestaña Cuentas de servicio de la settings Configuración del proyecto.

Permisos y funciones

Durante el desarrollo de una extensión, Firebase determina el nivel de acceso que esta requiere para funcionar.

Firebase define este nivel de acceso mediante una lista explícita de las funciones (paquetes de permisos) que Firebase debe asignar a la cuenta de servicio de la extensión durante su instalación.

Cada función (y sus permisos inherentes) se basa en un producto o servicio específico. Algunos ejemplos de funciones son firebasehosting.admin, bigquery.dataEditor y firebasedatabase.admin. Firebase enumera las funciones necesarias para una extensión en el archivo de especificación (el archivo extension.yaml).

En el caso de las extensiones oficiales de Firebase, la plataforma revisa de forma detallada esta lista de funciones para garantizar que el acceso de una extensión esté estrictamente limitado al alcance de sus tareas. También puedes revisar y confirmar el acceso otorgado a una extensión en su página de detalles en el panel Extensiones de Firebase o en el archivo README.

A continuación, podrás obtener información sobre los permisos incluidos en cada función:

¿Qué sucede cuando desinstalo una extensión?

Cuando desinstalas una extensión de tu proyecto, Firebase borra la cuenta de servicio creada para esa instancia de la extensión Después de esta eliminación de la cuenta de servicio, la extensión no se puede ejecutar en tu proyecto porque ya no tiene derechos de acceso a tu proyecto ni a tus datos.