Que é unha API key de IA e por que non debo compartila nin subila ao meu repositorio?
Hai unhas semanas un cliente escribiunos ás once da noite bastante nervioso: acababa de recibir un aviso do seu provedor de IA de que o consumo se disparara na última hora, algo así como douscentos dólares en corenta minutos. Ninguén na súa empresa tocara nada. Cando miramos o repositorio do proxecto en GitHub —público, porque o subira el mesmo sen preguntarnos, para “ensinarllo a un socio”— alí estaba, nun commit de hai tres semanas, a clave de API pegada directamente no código, sen variables de contorno nin nada. Alguén, ou algún bot rastrexador, atopárase con ela e estábaa usando para xerar quen sabe que ao seu costo.
Unha API key de IA é, basicamente, un contrasinal que identifica a túa conta perante o provedor do modelo (OpenAI, Anthropic, Google ou o que sexa) cada vez que a túa aplicación lle pide algo. Se esa clave cae en mans doutra persoa, esa persoa pode usar o modelo coma se fose ti, e a factura chégache a ti: non hai xeito de que o provedor saiba que quen a usou non eras ti, salvo que reacciones a tempo revocándoa.
O que fixemos con este cliente foi o de sempre nestes casos: revogar a clave desde o panel do provedor en canto vimos o aviso, xerar unha nova, e desta vez metela en variables de contorno do servidor, nunca no código que se sobe a un repositorio. Iso levou dez minutos. O que custou máis foi convencelo de que o seu socio non necesitaba ver o código fonte para entender o que construiramos —abondaba cunha demo gravada— e de que un repositorio “privado pero coa clave dentro” tampouco é tan privado como parece, porque calquera colaborador futuro, ou un fork mal xestionado, a herda igual.
A factura, por certo, asumiuna o provedor tras unha reclamación por uso fraudulento. Non sempre pasa. Depende da política de cada provedor e do rápido que reportes o problema, así que non convén contar con esa sorte.
Desde entón aplicamos unha regra en todos os proxectos que antes dabamos por sabida sen comprobala de todo: ningunha clave vai no código, todas van nun ficheiro de contorno que o propio Git ignora, e as de produción gárdanse á parte, no xestor de segredos do hosting, nunca nun documento compartido por correo ou nunha conversa de WhatsApp do proxecto (vímolo máis dunha vez). É a mesma lección que sacamos ao auditar a seguridade do noso propio servidor: a maioría dos sustos non veñen dun ataque sofisticado, veñen dunha clave que alguén deixou á vista sen decatarse.
O que aínda non teño resolto é como explicarlle isto a un cliente sen que soe a regaño, sobre todo cando o erro o cometeu alguén con boa intención que só quería presumir do seu proxecto.