Cómo usar el comando docker secret create para gestionar datos sensibles

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo gestionar de manera efectiva los datos sensibles dentro de su entorno Docker utilizando el comando docker secret create. Explorará diferentes métodos para crear secretos, incluyendo la lectura de datos desde la entrada estándar (STDIN) y desde un archivo.

El laboratorio lo guiará a través del proceso de creación de secretos con nombres específicos y desde diferentes fuentes. También aprenderá cómo agregar etiquetas a sus secretos para una mejor organización y cómo inspeccionar los detalles de los secretos que ha creado para verificar su contenido y configuración. Esta experiencia práctica le proporcionará las habilidades fundamentales necesarias para proteger la información sensible al desplegar aplicaciones con Docker Swarm.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/inspect("Inspect Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/inspect -.-> lab-555220{{"Cómo usar el comando docker secret create para gestionar datos sensibles"}} docker/create -.-> lab-555220{{"Cómo usar el comando docker secret create para gestionar datos sensibles"}} end

Crear un secreto desde STDIN

En este paso, aprenderá cómo crear un secreto de Docker leyendo datos desde la entrada estándar (STDIN). Esto es útil para proporcionar información sensible a un contenedor sin almacenarla directamente en un archivo en el sistema host.

Primero, creemos un secreto simple que contenga una contraseña. Usaremos el comando echo para mostrar la contraseña y la enviaremos mediante tubería (pipe) al comando docker secret create.

echo "mysecretpassword" | docker secret create my_password_secret -

En este comando:

  • echo "mysecretpassword" muestra la cadena "mysecretpassword" en la salida estándar.
  • | es el operador de tubería (pipe), que envía la salida del comando echo como entrada al siguiente comando.
  • docker secret create es el comando para crear un nuevo secreto de Docker.
  • my_password_secret es el nombre que le estamos dando a este secreto.
  • - le indica a docker secret create que lea los datos del secreto desde STDIN.

Debería ver la ID del secreto recién creado como salida.

Crear un secreto desde un archivo

En este paso, aprenderá cómo crear un secreto de Docker a partir del contenido de un archivo. Este es un método común para gestionar secretos como claves de API, certificados o archivos de configuración.

Primero, creemos un archivo simple que contenga algunos datos sensibles. Crearemos un archivo llamado api_key.txt en su directorio personal (~/project).

echo "my_super_secret_api_key_12345" > ~/project/api_key.txt

Este comando utiliza echo para escribir la cadena "my_super_secret_api_key_12345" en el archivo ~/project/api_key.txt.

Ahora, crearemos un secreto de Docker utilizando el contenido de este archivo.

docker secret create my_api_key_secret ~/project/api_key.txt

En este comando:

  • docker secret create es el comando para crear un nuevo secreto de Docker.
  • my_api_key_secret es el nombre que le estamos dando a este secreto.
  • ~/project/api_key.txt es la ruta al archivo que contiene los datos del secreto. Docker leerá el contenido de este archivo y lo almacenará como secreto.

Debería ver la ID del secreto recién creado como salida.

Crear un secreto con etiquetas (labels)

En este paso, aprenderá cómo agregar etiquetas (labels) a un secreto de Docker al crearlo. Las etiquetas son pares clave-valor que se pueden adjuntar a objetos de Docker para ayudar a organizarlos e identificarlos. Esto es especialmente útil en implementaciones más grandes.

Crearemos otro secreto desde STDIN, pero esta vez le agregaremos etiquetas.

echo "anothersecretvalue" | docker secret create --label env=production --label app=webserver my_labeled_secret -

En este comando:

  • echo "anothersecretvalue" proporciona los datos del secreto a través de STDIN.
  • docker secret create es el comando para crear el secreto.
  • --label env=production agrega una etiqueta con la clave env y el valor production.
  • --label app=webserver agrega otra etiqueta con la clave app y el valor webserver. Puedes agregar múltiples etiquetas repitiendo la opción --label.
  • my_labeled_secret es el nombre del secreto.
  • - indica que los datos del secreto deben leerse desde STDIN.

Debería ver la ID del secreto recién creado como salida. Agregar etiquetas te ayuda a categorizar tus secretos, lo que los hace más fáciles de administrar y filtrar posteriormente.

Inspeccionar el secreto creado

En este paso, aprenderá cómo inspeccionar los detalles de un secreto de Docker utilizando el comando docker secret inspect. Este comando proporciona información detallada sobre un secreto, incluyendo su ID, nombre, tiempo de creación y cualquier etiqueta (label) asociada a él.

Inspeccionemos el secreto que creamos en el paso anterior, my_labeled_secret.

docker secret inspect my_labeled_secret

Este comando mostrará un objeto JSON que contiene los detalles del secreto my_labeled_secret. Debería ver información como la ID del secreto, su nombre (my_labeled_secret), la hora en que se creó y las etiquetas que agregamos (env=production y app=webserver).

Tenga en cuenta que, por razones de seguridad, los datos reales del secreto no se muestran cuando se inspecciona un secreto.

También puede inspeccionar los otros secretos que creamos:

docker secret inspect my_password_secret
docker secret inspect my_api_key_secret

Inspeccionar los secretos es una forma útil de verificar su existencia, comprobar su configuración y confirmar que se han aplicado correctamente las etiquetas.

Resumen

En este laboratorio, aprendiste cómo gestionar de manera efectiva datos sensibles dentro de Docker utilizando el comando docker secret create. Practicaste la creación de secretos leyendo datos directamente desde la entrada estándar (STDIN), lo cual es útil para evitar almacenar información sensible en archivos en el host. También aprendiste cómo crear secretos a partir del contenido de un archivo, un método común para gestionar varios tipos de datos sensibles como claves de API o certificados.

Además, exploraste cómo mejorar la gestión de secretos agregando etiquetas (labels) durante la creación, lo que permite una mejor organización e identificación de los secretos. Finalmente, aprendiste cómo inspeccionar los detalles de los secretos creados para verificar su configuración y contenido (aunque los detalles completos del paso de inspección no se proporcionaron en el resumen). Estas técnicas ofrecen formas seguras de manejar información sensible dentro de tu entorno Docker.