Integraciones
Claves de acceso: cómo no meter la pata
Una por integración, fuera del código, y rotarlas antes de que haga falta.
Una clave de acceso es una contraseña que no la escribe una persona, y por eso se trata peor: acaba en un repositorio, en un chat de equipo, o en un script que alguien copió. Tres normas evitan casi todo.
Una por integración
Si el ERP y el sistema de fichajes comparten clave, revocarla porque uno se comprometió tumba el otro. Con una cada uno, se revoca lo afectado y ya.
Fuera del código
En las variables de entorno de vuestro sistema, no en un fichero que se sube al repositorio. Es el error más común y el que peor se arregla después: borrarlo del código no la borra del historial.
Si se ha filtrado
- 1
Revócala ya
Antes de investigar cómo pasó. Una clave filtrada deja de valer en cuanto se revoca.
- 2
Crea una nueva y cámbiala
En el sistema que la usaba.
- 3
Mira qué se hizo con ella
Los accesos quedan registrados. Ahí se ve si alguien la usó.
Importante
Cambiar la clave en el código sin revocar la vieja no arregla nada: la vieja sigue funcionando para quien la tenga. Revocar es el paso que cuenta.
Ten en cuenta
Rotarlas cada cierto tiempo aunque no haya pasado nada convierte la rotación en un trámite conocido en vez de en una urgencia el día que hace falta.
›¿Caducan solas?
Se les puede poner vencimiento, y es buena idea.
›¿Puedo ver una clave después de crearla?
No. Se muestra una vez; si se pierde, se crea otra.
›¿Cuántas puedo tener?
Las que necesites. Muchas y acotadas es mejor que una con todos los permisos.
Un caso real
La situación
Un desarrollador descubre que una clave quedó en un repositorio público hace dos semanas.
Qué haces
- La revoca al momento
- Crea una nueva y la pone en las variables de entorno
- Revisa el registro de accesos de esas dos semanas
Qué consigues
Confirma que no se usó desde fuera y el problema se cierra en veinte minutos.
La situación
La clave de acceso se comparte por mensajería entre tres personas y acaba en el móvil de un proveedor.
Qué haces
- Crea una clave por integración y no por persona
- Revoca la que circuló y genera una nueva
Qué consigues
Cada conexión tiene su clave y revocarla no rompe las demás.
La situación
La clave está escrita dentro del código que subió alguien que ya no trabaja allí.
Qué haces
- Guarda las claves en el gestor de secretos, no en el código
- Rota la clave al salir la persona
Qué consigues
La salida de un desarrollador deja de ser un incidente de seguridad.
La situación
Una clave da acceso a todo cuando la integración solo lee dos campos.
Qué haces
- Concede a cada clave el alcance mínimo que necesita
Qué consigues
Una clave filtrada expone dos campos y no el archivo entero.
La situación
Nadie sabe qué claves hay activas ni para qué.
Qué haces
- Consulta el listado y anota para qué sirve cada una
Qué consigues
Se pueden retirar las que ya no usa nadie.
La situación
Una clave lleva tres años sin rotarse.
Qué haces
- Fija una rotación periódica y avisa antes
Qué consigues
La rotación se hace con calma y no tras un susto.
Este artículo responde a
- crear una clave de api
- he subido una clave a github qué hago
- rotar credenciales de integración
- revocar una api key