Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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 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. Ele 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.

Veja 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 Extensões do Firebase 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.