Saltar a contenido

Cambiar o rotar un secreto

Las credenciales de cada job viven en un archivo propio en el servidor, fuera de la imagen: secrets/<repo>.env. El contenedor lo monta en modo solo lectura y cada job lo lee como su .env.

Reglas

  • Nunca pegues un valor secreto en un ticket, un chat, un correo ni un log.
  • Nunca versiones un .env ni un archivo de secrets/.
  • Cada job tiene su propio archivo: una variable que se llama igual en dos jobs (por ejemplo la del servidor de correo) puede tener un valor distinto en cada uno.

Pasos

  1. Edita secrets/<repo>.env en el servidor (con permisos 600) y reemplaza el valor.
  2. No hace falta reiniciar. El job lee el archivo en su próxima corrida.
  3. Comprueba el cambio con --dry-run o con Ejecutar ahora y revisa el log.
  4. Revoca el valor anterior en el sistema de origen (SFTP, base de datos, API).

Las credenciales del panel (clave de administrador, token de la API, clave de sesión, correo y Telegram de las alertas) están en el .env del panel, no en secrets/. Para cambiarlas hay que recrear el contenedor con docker compose up -d.

Comprobar que no falta ninguna variable

docker compose exec panel python tools/verificar_env.py --jobs /opt/dabra/jobs --secrets /run/secrets/dabra

Imprime solo los nombres de las variables que faltan o están vacías, nunca los valores. Una variable opcional puede aparecer como faltante aunque el job tenga un valor por defecto.

Plantilla para un job nuevo

tools/generar_env_example.py crea, para cada job, una plantilla con los nombres de sus variables y sin valores. Copia la plantilla a secrets/<repo>.env y complétala.