¿Cómo almaceno claves API y secretos sin incumplir ISO 27001 A.8.24?
el equipo de heygrc
Nunca coloques la clave en el código fuente. Léela desde variables de entorno o un almacén de secretos gestionado en tiempo de ejecución, manténla fuera del repositorio y los registros, y rota cualquier secreto que se haya confirmado alguna vez. ISO 27001 A.8.24 (y el simple sentido común) exige que las claves se gestionen, no se codifiquen.
Lee los secretos desde un almacén gestionado
Carga las credenciales desde variables de entorno respaldadas por un gestor de secretos (los secretos de tu plataforma, un almacén seguro, una configuración respaldada por KMS en la nube), resueltas en tiempo de ejecución. El código hace referencia al secreto; nunca lo contiene.
Mantén los secretos fuera del repositorio y los registros
Una clave en el código fuente entra en el repositorio, su historial y cada clon y caché de CI. Una clave en una línea de registro va a donde vayan tus registros. Ninguna de estas situaciones se soluciona eliminando la clave en un commit posterior.
Rota cualquier secreto que se haya filtrado
Si un secreto se ha confirmado alguna vez, trátalo como expuesto y rótalo. Eliminarlo del archivo actual no lo elimina del historial que ya se ha distribuido.
- const key = "<the live key, pasted inline>"+ const key = process.env.PAYMENTS_SECRET_KEYconst client = new Payments(key)La clave se lee desde un secreto gestionado en tiempo de ejecución en lugar de residir en el repositorio.