‫Muy
‫bien, entonces una nueva característica en 1. 13. 1 fue un completo apoyo para los secretos.
‫Si tuviera que crear una línea de etiquetas de qué se trata, básicamente es la "solución segura más fácil para almacenar secretos
‫en Swarm". "Digo que
‫es más fácil porque está integrado en Swarm, viene de
‫fábrica y no hay nada que deba hacer para usarlo. Siempre que hayas inicializado tu enjambre y
‫tu versión 1. 13 o
‫más nuevo, tienes secretos. tránsito, y solo disponible para los lugares donde debe estar.
‫Digo que es seguro porque fue diseñado desde cero para ser encriptado en el disco y encriptado en
‫Y eso es realmente lo que necesitamos.
‫Entonces, ¿qué es un secreto? Un secreto, en este caso, es clasificar todo lo que no desea
‫en la página principal de un periódico. Si aparece en la página principal y tienes
‫que cambiarlo, es un secreto.
‫es todo lo que necesita
‫para permitir la conectividad entre cosas es probablemente
‫un secreto y debe protegerlo
‫Es un nombre de usuario o contraseña, es un certificado TLS o las claves para eso, es una clave SSH, es
‫una clave API de Twitter, es una clave de Amazon,
‫Hasta ahora no hemos tenido muchas opciones excelentes para Swarm.
‫Definitivamente hay muchas opciones como Vault y otras excelentes herramientas para almacenar secretos, pero no
‫estaban integradas y requerían una configuración de infraestructura separada para que incluso pudieras
‫comenzar a usarlas.
‫Entonces, podemos almacenar aquí cualquier cosa que sea una cadena o un binario hasta. 5 MB de tamaño.
‫parte de esto es que en realidad no requiere que se reescriba tu aplicación para poder usarla.
‫Y la mejor
‫No es necesario que su aplicación hable con un servicio web en otro lugar para obtener estos.
‫Entonces veamos cómo funciona.
‫A partir de 1. 13. 0 la base de datos de Swarm Raft está encriptada en el disco de forma predeterminada. Si instala Docker e inicia un
‫enjambre como lo hemos hecho antes, esa es
‫una base de datos encriptada.
‫Y cuando apaga el servicio, se cifra con las claves almacenadas de forma segura.
‫los nodos de administrador y son los únicos que tienen las teclas para desbloquearlo o descifrarlo.
‫Solo se almacena en el disco de
‫Esto ya existe en Swarm, pero básicamente la forma en que las claves llegan a
‫los contenedores es a través del plano de control o las comunicaciones encriptadas de la
‫red TLS entre los gerentes y los trabajadores. Y, esa conexión ya era segura, ya usaba TLS y autenticación
‫mutua de PKI, por lo que era una gran manera de utilizar ese canal existente para llevar estos secretos a nuestros contenedores.
‫La forma en que los solucionamos es que primero los ponemos en la base de datos de Swarm usando los comandos
‫secretos de Docker.
‫comandos de servicio ellos mismos o un archivo de pila para decirle a Swarm quién puede usar este secreto.
‫Luego los asignamos a los servicios ya sea que usemos los La clave aquí es que el hecho de que haya un contenedor en un
‫host o en un nodo y que haya asignado la clave a ese servicio, no significa que otros contenedores puedan
‫tener acceso a él.
‫Como esto está integrado en Docker Engine, Docker Worker mantiene esa clave segura solo en memoria y solo llega
‫a los contenedores en ese nodo que los necesita.
‫Ahora, cómo se presentan en el sistema de archivos al contenedor, se ve como un archivo en el disco duro
‫de sus aplicaciones dentro del contenedor.
‫Pero en realidad no es eso. En realidad, no se están ejecutando en el disco. le diste al secreto como un archivo.
‫Están en la memoria solo utilizando un sistema de archivos ramfs y llegarás a ellos debajo del directorio / run / secrets
‫donde, de forma predeterminada, será el nombre que
‫Luego, cuando accedas a ese archivo, verás el secreto que hay en él.
‫Si considera que esto es como un almacén de
‫valores clave, la clave es el nombre del archivo y el valor es lo que contiene.
‫También podemos configurar alias para que podamos tener varios nombres para la misma clave y veremos cómo eso entra
‫en juego más adelante.
‫utilizando un archivo de pila que tiene asignaciones secretas, realmente funcionará en Docker Compose en su máquina local.
‫Para el desarrollo local, si está
‫Ahora, de nuevo, docker-compose, la línea de comandos, nunca debe usarse en producción en un servidor de producción.
‫En este caso en particular, en realidad está fingiendo seguridad.
‫Entonces, lo que está sucediendo es que realmente queremos que el desarrollador de Docker o el usuario de Docker en su máquina puedan
‫usar los archivos de pila tanto como sea posible.
‫Entonces, los contenedores que ejecutas en tu máquina local, realmente verán los secretos como lo
‫harían en Swarm.
‫local a menos que lo iniciemos allí, lo que la mayoría de la gente no va a hacer.
‫Pero no tenemos Swarm en nuestra máquina
‫Y la forma en que almacenamos los secretos está en la base de datos Swarm.
‫Así que esto puede ser obvio para ti, pero los secretos dependen de Swarm. Es solo una cosa de Enjambre. Si no tienes Swarm,
‫no puedes usar secretos.
‫Sin embargo, el comando docker-compose tiene una solución alternativa en la que realmente monta los secretos en un archivo de
‫texto claro en el contenedor local.
‫Ahora eso no es seguro, pero nos permite usar secretos localmente en nuestra máquina.
‫es algo que te gustaría usar en producción, y es por eso que tenemos la tienda segura para Swarm.
‫Simplemente no