Recuperar y exponer de forma segura la configuración dentro de Docker

1

Parece que el enfoque correcto para suministrar secretos a los contenedores de Docker es discutible. Esta pregunta es la más cercana a la mía, a la que una persona respondió que las variables de entorno están bien, pero un comentario Docker citado dice lo contrario.

Tampoco tenemos acceso a la funcionalidad de "secretos" de Docker, que yo sepa.

Estamos utilizando los Servicios Web de Amazon (AWS) Elastic Container Service (ECS) con el tipo de lanzamiento de Fargate, que automatiza el escalado para nosotros. Estamos almacenando secretos en la Tienda de parámetros, dentro de la utilidad Administrador de sistemas de Amazon.

Hay dos opciones propuestas:

  • Despliegue los secretos * sin cifrar como parte del inicio del proceso. Estos valores se colocarán en el archivo de variables de entorno (.env) y se importarán al proceso cuando se inicie.
  • Inicia el proceso y carga los secretos que contiene. Esto se hará directamente desde el SDK de AWS o a través de otro de nuestros servicios autenticados.

La segunda opción garantiza que los secretos permanezcan en la memoria del proceso, impidiendo el uso del indicador de inspección en una consola Docker. Sin embargo, en cualquier caso, no estoy lo suficientemente familiarizado con la configuración real de ECS para saber qué vulnerabilidades de seguridad pueden existir si se hace de esta manera. Quiero garantizar la seguridad de mis secretos.

En cualquier caso, esto se ejecutaría actualmente una vez, al inicio del proceso. La segunda opción sería buena para desencadenar actualizaciones, pero esa es una discusión diferente.

* Sé que podría bajar los valores cifrados en la primera opción, luego hacer que el proceso use el SDK de AWS para descifrarlos, pero en ese momento parece menos trabajo (cpu + red) hacer la opción 2, con Todos los valores devueltos descifrados.

    
pregunta ps2goat 20.07.2018 - 00:25
fuente

0 respuestas

Lea otras preguntas en las etiquetas