CodeGym /Cursos /Docker SELF /Fundamentos de seguridad de redes Docker

Fundamentos de seguridad de redes Docker

Docker SELF
Nivel 18 , Lección 3
Disponible

9.1 Aspectos principales de la seguridad de redes Docker

En esta lección vamos a revisar los aspectos principales de la seguridad de redes Docker, recomendaciones y mejores prácticas para asegurar la protección de tus contenedores y datos.

Aspectos principales de la seguridad de redes Docker

  1. Aislamiento de contenedores
  2. Control de acceso
  3. Encriptación de datos
  4. Monitoreo y auditoría
  5. Actualizaciones y parches

9.2 Aislamiento de contenedores

El aislamiento de contenedores es el primer paso para garantizar la seguridad en redes Docker. Ayuda a minimizar el impacto de posibles vulnerabilidades y evita accesos no autorizados entre contenedores.

Uso de redes personalizadas

Crea redes personalizadas para aislar contenedores y limitar su interacción solo a los servicios necesarios.

Terminal

docker network create --driver bridge my_secure_network

En Docker Compose puedes definir una red personalizada para cada servicio.

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    networks:
      - my_secure_network
        
  app:
    image: myapp:latest
    networks:
      - my_secure_network
        
networks:
  my_secure_network:
    driver: bridge

Uso de reglas entre contenedores

Docker permite establecer reglas entre contenedores para gestionar la interacción en la red entre ellos.

Terminal

docker network connect --link <source_container>:<alias> <target_network> <container_name>

Ejemplo:

Terminal

docker network connect --link container1:c1 multi-host-network container2

9.3 Control de acceso

El control de acceso es importante para prevenir el acceso no autorizado a los contenedores y redes.

Restricción de acceso a puertos

Restringe el acceso a los puertos publicados utilizando direcciones IP y reglas del firewall.

Terminal

docker run -d -p 127.0.0.1:8080:80 --name my_secure_container nginx

Uso de roles y políticas

Utiliza roles y políticas de acceso para limitar los permisos de los usuarios que gestionan los contenedores y las redes.

Terminal

docker run -d --user <uid>:<gid> my_secure_container

9.4 Cifrado de datos

El cifrado de datos ayuda a proteger datos confidenciales tanto en reposo como en transmisión.

Cifrado de datos en reposo

Usa cifrado de sistema de archivos para los volúmenes que utilizan los contenedores.

Terminal

docker run -d --name my_secure_container --mount 
type=volume,source=my_volume,destination=/data,volume-driver=local,volume-opt=o=bind,volume-opt=device=/mnt/secure_data nginx

Cifrado de datos en transmisión

Usa TLS para cifrar los datos transferidos entre contenedores y servicios externos.

Terminal

docker run -d -p 443:443 --name my_secure_container -v /path/to/cert.pem:/etc/nginx/cert.pem -v 
/path/to/key.pem:/etc/nginx/key.pem nginx

9.5 Monitoreo y auditoría

El monitoreo y la auditoría permiten rastrear la actividad de los contenedores y redes, identificar posibles amenazas y reaccionar ante ellas.

Logs y métricas

Recoge los logs y métricas de los contenedores para análisis y monitoreo.

Terminal

docker logs <container_name>

Usa herramientas de monitoreo como Prometheus y Grafana para rastrear el estado de los contenedores y redes.

Auditoría

Activa la auditoría para rastrear las acciones de los usuarios y los cambios en la configuración de los contenedores y redes.

Terminal

docker events

9.6 Actualizaciones y parches

Las actualizaciones y parches regulares ayudan a proteger los contenedores y redes contra vulnerabilidades conocidas.

Actualizar Docker

Mantente al tanto de las actualizaciones de Docker e instala las nuevas versiones a tiempo.

Terminal

sudo apt-get update

sudo apt-get install docker-ce

Actualizar imágenes

Actualiza regularmente las imágenes de los contenedores a las últimas versiones que incluyan correcciones de seguridad.

Terminal

docker pull nginx:latest

9.7 Ejemplos de mejores prácticas

Ejemplo 1: Creación de redes aisladas

Crea redes aisladas para cada componente de tu aplicación.

Terminal

docker network create --driver bridge frontend_network

docker network create --driver bridge backend_network

Ejecuta los contenedores en las redes correspondientes.

Terminal

docker run -d --name frontend --network frontend_network nginx

docker run -d --name backend --network backend_network myapp

Ejemplo 2: Restricción del acceso a los puertos

Restringe el acceso a los puertos de los contenedores solo para las direcciones IP y hosts necesarios.

Terminal

docker run -d -p 192.168.1.100:8080:80 --name restricted_container nginx

Ejemplo 3: Uso de TLS para encriptación

Configura los contenedores para usar TLS y así proteger los datos durante la transmisión.

Terminal

docker run -d -p 443:443 --name tls_container -v /path/to/cert.pem:/etc/nginx/cert.pem -v 
/path/to/key.pem:/etc/nginx/key.pem nginx
1
Опрос
Docker Swarm,  18 уровень,  3 лекция
недоступен
Docker Swarm
Docker Swarm
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION