Permissões concedidas a uma extensão do Firebase

Para que uma extensão do Firebase Extension execute as ações especificadas, o Firebase concede a cada instância de uma extensão instalada acesso limitado ao projeto e aos dados por meio de uma conta de serviço.

O que é uma conta de serviço?

Uma conta de serviço é um tipo especial de conta de usuário do Google. Ela representa um usuário não humano autorizado a acessar dados usando as APIs do Google.

Durante a instalação de uma extensão, o Firebase cria uma conta de serviço no projeto. Cada instância instalada de uma extensão tem sua própria conta de serviço.

O Firebase limita o acesso ao projeto e aos dados atribuindo uma conta de serviço específica da extensão Papéis (pacotes de permissões). Os papéis que uma extensão exige para operar são determinados pelo Firebase durante o desenvolvimento da extensão. Na instalação, o Firebase atribui esses papéis à conta de serviço de uma extensão e não é possível modificar, adicionar ou excluir nenhum desses papéis atribuídos. Caso contrário, a extensão instalada não funcionará como esperado. No entanto, você pode desinstalar a extensão, o que exclui completamente a conta de serviço (e seu acesso).

As contas de serviço criadas para extensões estão no formato: ext-extension-instance-id@project-id.iam.gserviceaccount.com.

Confira todas as contas de serviço associadas ao seu projeto do Firebase na guia Contas de serviço de Configurações do projeto.

Permissões e papéis

Durante o desenvolvimento de uma extensão, o Firebase determina o nível de acesso que a extensão requer para funcionar.

O Firebase define esse nível de acesso listando explicitamente os papéis (pacotes de permissões) que o Firebase precisa atribuir à conta de serviço da extensão durante a instalação da extensão.

Cada papel (e as permissões dele) é baseado em um produto ou serviço específico. Exemplos de papéis são firebasehosting.admin, bigquery.dataEditor e firebasedatabase.admin. O Firebase lista os papéis necessários para uma extensão no arquivo de especificação da extensão (o arquivo extension.yaml).

Para extensões oficiais do Firebase, o Firebase analisa detalhadamente essa lista de papéis para garantir que o acesso de uma extensão seja estritamente limitado ao escopo das tarefas da extensão. Você também pode analisar e confirmar o acesso concedido a uma extensão vendo a página de detalhes da extensão no painel Firebase Extensions ou vendo o arquivo README.

Saiba mais sobre as permissões incluídas em cada papel:

O que acontece quando eu desinstalo uma extensão?

Quando você desinstala uma extensão do projeto, o Firebase exclui a conta de serviço criada para essa instância da extensão. Após essa exclusão da conta de serviço, a extensão não poderá ser executada no projeto porque não terá mais direitos de acesso ao projeto ou aos dados.