Cómo crear y usar secretos en Docker para aumentar la seguridad de tus contenedores

En el mundo de los contenedores, los secretos son activos como claves SSH, certificados SSL y contraseñas que se utilizan para conectarse a servicios como cuentas en la nube, APIs y otros contenedores. Los secretos se pueden utilizar para gestionar estos datos sensibles requeridos por los contenedores en tiempo de ejecución. El problema es que no quieres almacenar esos secretos dentro de la imagen o en tu código fuente, porque eso puede llevar a graves problemas de seguridad.

Imagina, por un momento, que un usuario malicioso se infiltra en tu Docker Swarm y luego ve esas contraseñas o certificados para obtener acceso a tus cuentas. Eso no sería nada bueno.

Para evitar este escenario, debes considerar utilizar secretos. En lugar de que esas contraseñas se almacenen dentro de los contenedores e imágenes, creas el secreto con Docker, el cual está encriptado, y luego puedes pasar el secreto a tus contenedores, de modo que nunca se vean como texto plano. Con este sistema, es más difícil para los ciberdelincuentes utilizar esos secretos en tu contra.

Voy a mostrarte cómo crear un secreto con Docker y luego cómo usarlo para implementar un servicio de Docker.

Índice de Contenido
  1. Lo que necesitarás
  2. Cómo crear un secreto
  3. Cómo crear un servicio que use el secreto
  4. Cómo aprender más sobre Docker

Lo que necesitarás

Para que esto funcione, necesitarás una instancia de Docker en ejecución. No importa si es una sola instancia en Linux, macOS o Windows, o un clúster completo de Docker Swarm. Eso es todo lo que necesitas. Comencemos a compartir algunos secretos.

Cómo crear un secreto

Lo primero que haremos es crear nuestro secreto. Utilizaremos el comando printf y redirigiremos la salida hacia el comando docker para crear un secreto llamado my_test_secret. Para hacer esto, inicia sesión en tu controlador de Docker y ejecuta el siguiente comando:

Cómo instalar y configurar Portmaster: un monitor de red avanzado para tu computadora local

printf "Este es mi super secreto secreto" | docker secret create my_test_secret -

Puedes verificar si el secreto se creó correctamente listando todos tus secretos actuales con el comando:

docker secret ls

Deberías ver una lista como esta:

ttx3h2zarswj4wxgum5heobfx   my_test_secret   hace 4 segundos hace 4 segundos

Cómo crear un servicio que use el secreto

Ahora crearemos un servicio de Redis que tenga acceso completo al secreto. Lo bueno de esto es que el contenedor real no guardará el secreto internamente, sino que podrá usarlo a través del mecanismo de secretos de Docker.

Mux: La Plataforma de Desarrolladores que Unifica Todos los Formatos de Video bajo un Solo API

Para implementar ese servicio, utilizando el secreto my_test_secret, el comando se vería así:

docker service  create --name redis --secret my_test_secret redis:alpine

Verifica que el servicio se esté ejecutando con el comando:

docker service ps redis

Deberías ver una lista que se vea así:

0z6v0js2hu5q   redis.1   redis:alpine   dockernode1   en ejecución     en ejecución hace 34 segundos

Cómo respaldar bases de datos en Linux con Borgmatic: tutorial paso a paso

Verifica que el servicio tenga acceso al secreto con el comando:

docker container exec $(docker ps --filter name=redis -q) ls -l /run/secrets

Deberías ver algo como esto en la salida:

-r--r--r-- 1 root root        17 May 24 13:16 my_test_secret

Finalmente, puedes ver el contenido del secreto con el comando:

docker container exec $(docker ps --filter name=redis -q) cat /run/secrets/my_test_secret

Cómo implementar una página web usando Caddyfile

La salida debería ser algo como esto:

Este es mi super secreto secreto

Ahora, si comprometes el contenedor, el secreto ya no estará disponible. Hazlo con el siguiente comando:

docker commit $(docker ps --filter name=redis -q) committed_redis

Verifica que el secreto ya no esté disponible con el comando:

docker run --rm -it committed_redis cat /run/secrets/my_test_secret

Cómo instalar y configurar Fail2ban en Ubuntu Server 22.04

Deberías ver algo como esto en la salida:

cat: no se puede abrir '/run/secrets/my_test_secret': No existe el archivo o el directorio

hubo un error al cambiar el tamaño de tty, se utiliza el tamaño predeterminado

Luego, puedes eliminar el acceso al secreto con el siguiente comando:

docker service update --secret-rm my_test_secret redis

Y eso, amigos míos, es cómo crear un secreto en Docker y usarlo dentro de un servicio.

Descubre cómo construir aplicaciones sin experiencia previa con DevDojo Pro

Cómo aprender más sobre Docker

Si deseas aprender más sobre Docker, no te pierdas estos recursos en la Academia de Newsmatic:

  • Hacking y seguridad de contenedores Docker
  • Paquete de codificación Linux y Docker
  • Paquete de formación en certificación Docker y Kubernetes

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Cómo crear y usar secretos en Docker para aumentar la seguridad de tus contenedores , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.