Sécuriser vos conteneurs Docker
La sécurité des conteneurs est un sujet critique. Voici les pratiques essentielles pour protéger vos applications conteneurisées.
Principe du moindre privilège
# Ne JAMAIS exécuter en root
FROM php:8.3-fpm-alpine
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser
WORKDIR /app
COPY --chown=appuser:appgroup . .
Scanner les vulnérabilités
Intégrez un scanner de vulnérabilités dans votre pipeline :
# Avec Trivy
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
aquasec/trivy image myapp:latest
# Avec Docker Scout
docker scout cves myapp:latest
Réseau et isolation
- Créez des réseaux dédiés pour isoler les services
- N'exposez jamais les ports des bases de données
- Utilisez des secrets Docker plutôt que des variables d'environnement pour les données sensibles
- Activez le mode read-only pour les conteneurs stateless
Gestion des secrets
services:
app:
secrets:
- db_password
- api_key
secrets:
db_password:
file: ./secrets/db_password.txt
api_key:
external: true
Images de confiance
Utilisez uniquement des images officielles ou vérifiées. Épinglez les versions exactes plutôt que d'utiliser latest. Signez vos images avec Docker Content Trust.