Cómo NO guardar secrets en Docker Containers

¿Pueden tus secrets verse comprometidos al hacer una implementación en un docker container? ¿Están lo suficientemente seguros de miradas que no deseás?

¿A qué me refiero con “secret”?

Contraseñas, API Tokens, certificados… Lo que se te ocurra. Cualquier información que tu código necesita para acceder a lo que sea que necesite acceder. — Encantadora redundancia :) — .

Ahora pensemos en los aspectos prácticos de cómo en realidad obtenemos un secret en un contenedor en ejecución …

Comenzaré con algunas formas realmente malas.

Y… ¿Cómo modifica esto la forma en la que los espías pueden acceder a nuestros secrets?

  • Como vimos más arriba, el comando docker inspect ya no sirve. Si lo ejecutara, podría ver que de hecho hay un volumen montado, pero no obtendría mágicamente y de forma legible toda la información dentro del volumen. Entonces ya no sería tan fácil obtener los secrets de esta forma. — ¡Yuppy! —
  • ¡Pero ojo! Cualquiera que pueda ejecutar un exec dentro de tu container, por supuesto, sigue teniendo la capacidad de leer las variables de entorno. — Oh no :( —
  • La carpeta /proc seguiría siendo un riesgo — nuevamente, solo para las personas que pudieron acceder a tu host, entonces probablemente también tengas otros temas de los cuales preocuparte — .
  • Otra cosa que desaparece es el problema del loggeo. Es poco probable que veas registros de rutina de todos los archivos con su contenido si algo falla. :)

Turning good ideas into outstanding software.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store