Permissões concedidas a uma extensão do Firebase

Para que uma extensão do Firebase execute as ações especificadas, o Firebase concede a cada instância de uma extensão instalada acesso limitado ao seu 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. Representa um usuário não humano autorizado a acessar dados usando APIs do Google.

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

O Firebase limita o acesso ao seu projeto e aos dados atribuindo funções específicas à conta de serviço de uma extensão (pacotes de permissões) . As funções que uma extensão requer para funcionar são determinadas pelo Firebase durante o desenvolvimento da extensão. Na instalação, o Firebase atribui essas funções à conta de serviço de uma extensão, e você não deve modificar, adicionar ou excluir nenhuma dessas funções atribuídas (caso contrário, a extensão instalada não funcionará conforme o esperado). Você pode, no entanto, 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 .

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

Permissões e funções

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

O Firebase define esse nível de acesso listando explicitamente as funções (pacotes de permissões) que o Firebase deve atribuir à conta de serviço da extensão durante a instalação da extensão.

Cada função (e suas permissões inerentes) é baseada em um produto ou serviço específico. Exemplos de funções são firebasehosting.admin , bigquery.dataEditor e firebasedatabase.admin . O Firebase lista as funções necessárias 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 minuciosamente esta lista de funções para garantir que o acesso de uma extensão seja estritamente limitado ao escopo das tarefas da extensão. Você também pode revisar e confirmar o acesso concedido a uma extensão visualizando a página de detalhes da extensão no painel do Firebase Extensions ou visualizando seu arquivo README .

Saiba mais sobre as permissões incluídas em cada função:

O que acontece quando eu desinstalo uma extensão?

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