O que é uma Chave de API? Uma Credencial de Serviço Simples
Uma chave de API é uma string enviada junto com uma requisição que identifica e autentica quem chama um serviço, geralmente com pouca ou nenhuma delimitação embutida.
Uma chave de API é a forma mais simples de credencial de máquina: uma string que você envia com cada requisição para que o serviço saiba quem está chamando. Muitos serviços de terceiros, de provedores de e-mail a analytics, entregam a você uma chave de API. Elas são fáceis de usar, mas são instrumentos grosseiros, muitas vezes concedendo acesso amplo sem expiração, o que as torna arriscadas em pipelines.
Como uma chave de API funciona
O serviço gera uma chave vinculada à sua conta. Você a inclui nas requisições, muitas vezes como um cabeçalho ou parâmetro de query. O serviço a consulta e concede acesso. Geralmente não há interação do usuário nem troca de tokens; a própria chave é a credencial.
Chaves de API versus tokens
- As chaves de API são tipicamente de longa duração e estáticas.
- Os tokens de acesso são geralmente de curta duração e delimitados.
- Os fluxos OAuth e OIDC acrescentam consentimento e expiração que as chaves puras não têm.
O risco com chaves de API
Como as chaves costumam ser de longa duração e amplamente delimitadas, uma chave vazada pode ser abusada por muito tempo antes que alguém perceba. Chaves em query strings podem parar em logs de servidor e no histórico do navegador. Elas exigem o mesmo cuidado que uma senha.
Chaves de API em CI/CD
Os pipelines chamam serviços de terceiros que se autenticam com chaves de API: alvos de deploy, monitoramento, registros de packages. Armazene cada chave como um secret criptografado, nunca em código, e faça a rotação regularmente para que um vazamento esquecido não viva para sempre.
Reduzindo a exposição
Use a chave mais restrita que um serviço oferece, defina expiração onde houver suporte e faça a rotação regularmente. Prefira serviços que suportem tokens delimitados e de curta duração ou OIDC em vez de uma única chave todo-poderosa. Monitore os logs para garantir que as chaves estejam mascaradas.
Chaves de API e o runner
Uma chave de API flui pelo runner durante um job. Em runners efêmeros e isolados (como os runners gerenciados da Latchkey), a chave desaparece com o ambiente quando o job termina, então ela não pode vazar para jobs posteriores.
Principais conclusões
- Uma chave de API é uma string estática que autentica quem chama um serviço.
- As chaves costumam ser de longa duração e amplamente delimitadas, então um vazamento pode persistir sem ser detectado.
- Armazene as chaves como secrets criptografados, faça rotação e prefira tokens delimitados sempre que possível.