CodeGym /Cours /Docker SELF /Bases de la sécurité réseau Docker

Bases de la sécurité réseau Docker

Docker SELF
Niveau 18 , Leçon 3
Disponible

9.1 Principaux aspects de la sécurité réseau Docker

Dans cette conférence, on va voir les points clés de la sécurité des réseaux Docker, les recommandations et les bonnes pratiques pour protéger tes conteneurs et tes données.

Principaux aspects de la sécurité réseau Docker

  1. Isolation des conteneurs
  2. Contrôle d'accès
  3. Cryptage des données
  4. Surveillance et audit
  5. Mises à jour et correctifs

9.2 Isolation des conteneurs

L'isolation des conteneurs, c'est le premier pas pour assurer la sécurité des réseaux Docker. Ça aide à minimiser l'impact des vulnérabilités potentielles et empêche tout accès non autorisé entre les conteneurs.

Utilisation des réseaux personnalisés

Crée des réseaux personnalisés pour isoler les conteneurs et limiter leur interaction aux services nécessaires uniquement.

Terminal

docker network create --driver bridge my_secure_network

Dans Docker Compose, tu peux définir un réseau personnalisé pour chaque service.

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

Utilisation des règles inter-conteneurs

Docker te permet de définir des règles inter-conteneurs pour gérer les interactions entre les conteneurs au niveau réseau.

Terminal

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

Exemple :

Terminal

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

9.3 Contrôle d'accès

Le contrôle d'accès est important pour éviter tout accès non autorisé aux containers et réseaux.

Restriction d'accès aux ports

Restreins l'accès aux ports publiés en utilisant des adresses IP et des règles de firewall.

Terminal

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

Utilisation des rôles et des politiques

Utilise des rôles et des politiques d'accès pour limiter les droits des utilisateurs qui gèrent les containers et réseaux.

Terminal

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

9.4 Cryptage des données

Le cryptage des données aide à protéger les données confidentielles aussi bien au repos que pendant leur transmission.

Cryptage des données au repos

Utilisez le cryptage du système de fichiers pour les volumes utilisés par les conteneurs.

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

Cryptage des données pendant la transmission

Utilisez TLS pour chiffrer les données transmises entre conteneurs et services externes.

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 Surveillance et audit

La surveillance et l'audit permettent de suivre l'activité des containers et des réseaux, d'identifier les menaces potentielles et d'y répondre.

Logs et métriques

Collectez les logs et les métriques des containers pour l'analyse et la surveillance.

Terminal

docker logs <container_name>

Utilisez des outils de monitoring comme Prometheus et Grafana pour suivre l'état des containers et des réseaux.

Audit

Activez l'audit pour suivre les actions des utilisateurs et les modifications de configuration des containers et des réseaux.

Terminal

docker events

9.6 Mises à jour et patches

Les mises à jour régulières et les patches aident à protéger les conteneurs et les réseaux contre les vulnérabilités connues.

Mise à jour de Docker

Suis les mises à jour de Docker et installe rapidement les nouvelles versions.

Terminal

sudo apt-get update

sudo apt-get install docker-ce

Mise à jour des images

Mets régulièrement à jour les images des conteneurs pour les dernières versions contenant des correctifs de sécurité.

Terminal

docker pull nginx:latest

9.7 Exemples de bonnes pratiques

Exemple 1 : Création de réseaux isolés

Crée des réseaux isolés pour chaque composant de ton application.

Terminal

docker network create --driver bridge frontend_network

docker network create --driver bridge backend_network

Lance les conteneurs dans les réseaux correspondants.

Terminal

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

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

Exemple 2 : Restriction d'accès aux ports

Limite l'accès aux ports des conteneurs uniquement aux adresses IP et aux hôtes nécessaires.

Terminal

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

Exemple 3 : Utilisation de TLS pour le chiffrement

Configure les conteneurs pour utiliser TLS afin de protéger les données pendant leur transfert.

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
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION