Permisos otorgados a una extensión de Firebase

Para que una extensión de Firebase realice las acciones especificadas, Firebase otorga a cada instancia de una extensión instalada acceso limitado a su proyecto y a sus 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 un usuario no humano que está autorizado a acceder a los datos mediante las API de Google.

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

Firebase limita el acceso a su proyecto y a sus datos asignando roles específicos a la cuenta de servicio de una extensión (paquetes de permisos) . Firebase determina las funciones que una extensión requiere para funcionar durante el desarrollo de la 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 eliminar ninguna de estas funciones asignadas (de lo contrario, la extensión instalada no funcionará como se espera). Sin embargo, puedes desinstalar la extensión , que elimina la cuenta de servicio (y su acceso) por completo.

Las cuentas de servicio creadas para extensiones tienen el 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 tu Configuración del proyecto .

Permisos y roles

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

Firebase define este nivel de acceso al enumerar explícitamente las funciones (paquetes de permisos) que Firebase debe asignar a la cuenta de servicio de la extensión durante la instalación de la extensión.

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

Para las extensiones oficiales de Firebase, Firebase revisa minuciosamente esta lista de funciones para garantizar que el acceso a una extensión esté estrictamente limitado al alcance de las tareas de la extensión. También puede revisar y confirmar usted mismo el acceso otorgado a una extensión viendo la página de detalles de la extensión en el panel de Firebase Extensions o viendo su archivo README .

Conozca los permisos incluidos en cada rol:

¿Qué sucede cuando desinstalo una extensión?

Cuando desinstalas una extensión de tu proyecto, Firebase elimina 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 puede ejecutarse en su proyecto porque ya no tiene ningún derecho de acceso a su proyecto o datos.