TL;DR
- Gerar conteúdo com a API do Gemini usando API keys mal configuradas virou febre. Leia antes que seja a sua vez.
- Estamos lançando uma ferramenta open source gratuita de varredura para ajudar a identificar API keys problemáticas. Confira aqui: https://github.com/doitintl/gcp-apikey-check
O que está rolando
Aqui na DoiT, a gente vê de tudo quando o assunto é nuvem. Ultimamente, têm pipocado relatos na comunidade sobre sustos na fatura por causa do Gemini. Às vezes a pessoa nem está usando o Gemini nas aplicações dela, mas acorda com uma conta absurda por geração de conteúdo — geralmente imagens ou vídeos, que inflam a fatura mais rápido do que os alertas de billing conseguem te avisar. Se você usa API keys do Google em qualquer lugar, continue lendo: suas keys podem estar em risco.
Como isso acontece
O Google Cloud, como todo provedor de nuvem, opera no modelo de responsabilidade compartilhada — o Google cuida da infraestrutura subjacente, e os usuários cuidam de proteger o uso dessa infraestrutura. O Google usa um único formato de API key (AIza...) para duas finalidades bem diferentes: identificadores públicos de projeto e credenciais sensíveis de autenticação.
Problemas com API keys do Google Maps e do Firebase já se arrastam há tempos, porque, na hora de gerar uma API key, o padrão era não aplicar nenhuma restrição — ficava a cargo do desenvolvedor delimitar as APIs e restringi-las a sites, faixas de IP ou SDKs específicos; e isso nem sempre rolava. No caso das keys do Google Maps e do Firebase, elas costumam ficar no código frontend, então não são lá tão privadas e funcionam mais como identificadores de billing.
A encrenca começou quando a API do Gemini passou a ser habilitada no mesmo projeto que continha uma key do Maps ou do Firebase sem restrição. Assim que os atores maliciosos descobriram essas keys, rapidamente aprenderam a explorá-las.
Quando a API do Gemini é habilitada em um projeto do Google Cloud, toda API key existente que não esteja delimitada a APIs específicas naquele projeto pode silenciosamente ganhar acesso aos endpoints do Gemini. Sem aviso. Sem e-mail. Sem confirmação. Aquela key do Maps que você embutiu no seu site anos atrás pode estar ativa agora como credencial do Gemini, escancarada no código-fonte da página para qualquer um achar.
Outro vetor de vazamento de keys é o commit acidental de API keys ou de chaves estáticas de Service Account em repositórios públicos do GitHub. Antigamente, essas chaves eram capturadas rapidinho por gente mal-intencionada e usadas para subir mineração de cripto. Hoje, o Google já evoluiu bastante na detecção desse tipo de fraude.
O que um atacante faz com isso
O ataque é trivial. Um ator malicioso abre o código-fonte da sua página, copia a key AIza... e chama a API de geração de imagens do Gemini. É só isso. Sem acesso à sua infraestrutura, sem credenciais para roubar, sem exploit sofisticado. Só a sua key e uma requisição HTTP — repetida várias vezes em sequência, tudo cobrado na sua conta.
Você está exposto?
Você consegue responder estas perguntas:
- As APIs Generative Language ou Gemini Agent Platform (antiga Vertex AI) estão habilitadas em algum dos seus projetos no GCP?
- Alguma API key está sem restrição de API ou sem restrição de aplicação?
- As keys do Maps ou do Firebase estão na mesma key das APIs de IA?
- Você tem chaves de Service Account antigas, sem uso ou com permissões de owner ou editor?
Se você tem mais do que um punhado de projetos, checar isso manualmente em toda a organização é inviável.
Escaneie sua organização em minutos
Na DoiT, trabalhamos com clientes do Google Cloud todos os dias. Criamos o gcp-apikey-check para dar à comunidade em geral a mesma visibilidade que nossos clientes têm — gratuito e open source.
git clone https://github.com/doitintl/gcp-apikey-checkcd gcp-apikey-checkuv sync
# Escaneie uma organização inteirauv run gcpkeyscan.py --org-id YOUR_ORG_ID
# Ou escaneie um único projetouv run gcpkeyscan.py --project-id YOUR_PROJECT_IDA ferramenta vasculha as API keys exatamente em busca das configurações incorretas que levam a esses picos de billing: keys sem restrição, Maps e APIs de IA na mesma key, keys do Firebase sem restrição de aplicação e regras de referrer com wildcards muito amplos. Também identifica chaves de Service Account antigas, sem uso ou com permissões excessivas, além de checar se as políticas da sua organização sequer permitem criar chaves de SA. Os achados são classificados por severidade (CRITICAL / HIGH / MED) e exportados em JSON e CSV para você agir na hora.
Corrija — e repense se você realmente precisa de keys
O mais importante de entender: a melhor API key é não ter API key.
As próprias recomendações do Google são claras: evite API keys e chaves de Service Account sempre que possível. API keys não têm identidade, não expiram por padrão e não geram trilha de auditoria detalhada. Para serviços de backend e workloads no GCP, quase sempre há uma opção melhor:
- Use Workload Identity Federation no lugar de chaves de Service Account para autenticação server-to-server
- Use Application Default Credentials com roles do IAM para workloads rodando no GCP
- Chame o Gemini do lado servidor com IAM apropriado — nunca exponha uma key em código client-side
Se você precisa mesmo usar API keys — para embeds do Maps, SDKs client-side do Firebase ou outros casos legítimos do lado do cliente — restrinja-as direito:
- Restrinja cada key apenas às APIs de que ela precisa
- Adicione restrições de aplicação: HTTP referrer para web, bundle ID para mobile, faixa de IP para servidor
- Nunca coloque keys do Maps ou do Firebase na mesma key do Gemini ou de qualquer outra API de IA
- Desabilite APIs que você não está usando ativamente
- Configure alertas de billing para que um pico não passe despercebido por dias
Para chaves de Service Account que você ainda não consegue eliminar: rotacione qualquer uma com mais de 90 dias, remova roles de owner e editor e apague chaves que não foram usadas recentemente.
A boa notícia é que o Google tornou as novas API keys mais restritas por padrão; já não dá mais para criar uma key totalmente sem restrição. O Google AI Studio também cria novas API keys já restritas exclusivamente à API do Gemini. Isso não resolve todos os problemas, mas defaults mais sensatos ajudam.
Não espere a fatura chegar
O Google está caminhando para defaults mais robustos, mas quando isso vai acontecer e se essas mudanças vão proteger as keys já implantadas nos seus projetos ainda é uma incógnita. Os desenvolvedores que postaram sobre cobranças inesperadas só descobriram que estavam expostos quando já era tarde demais.
Rode o scan hoje. Descubra o que você tem. Corrija os piores casos e, em seguida, trabalhe para eliminar as keys de vez sempre que puder.