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