Sécurité dans MongoDB
Mettre en place les bases de sécurité MongoDB : authentification, moindre privilège, chiffrement et réseau.
Cette page couvre les mesures minimales à appliquer pour protéger une instance MongoDB en production.
1. Authentification et autorisation
Activez le contrôle d'accès et créez des comptes dédiés à l'application.
security:
authorization: enabled// Exécutez d'abord: use admin
// Puis créez l'utilisateur dans la base admin
db.createUser({
user: "app_user",
pwd: passwordPrompt(),
roles: [{ role: "readWrite", db: "app_db" }],
})Principe clé
Appliquez le moindre privilège : donnez uniquement les droits nécessaires (read, readWrite, etc.).
Ne jamais faire
N'écrivez jamais un mot de passe en dur dans le code ou la documentation opérationnelle. Utilisez des variables d'environnement ou un gestionnaire de secrets.
Note sur l'exemple shell
Ici, passwordPrompt() est la syntaxe mongosh pour saisir le mot de passe sans l'écrire en clair.
En application Node.js, utilisez des variables d'environnement (ex: process.env.MONGODB_APP_PASSWORD) et ne committez jamais les secrets.
2. Chiffrement en transit (TLS)
# mongod.conf (exemple)
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pemSans TLS, les identifiants et données peuvent être interceptés sur le réseau.
3. Exposition réseau
- N'exposez pas MongoDB publiquement sur Internet.
- Filtrez les IP autorisées au niveau pare-feu / réseau.
- En MongoDB Atlas, configurez la Network Access List.
4. Journalisation et audit
- Activez les logs serveur et surveillez les tentatives d'accès échouées.
- L'audit avancé est surtout disponible en édition Enterprise / Atlas avancé.
MongoDB
Terminez le quiz du chapitre pour le marquer comme complété.
Administration de MongoDB : gérer la base de données avec soin
Surveiller, sauvegarder et inspecter une base MongoDB avec des commandes adaptées à l'administration.
Exercice — API Express + MongoDB
Développez une petite API Express connectée à MongoDB, testée avec une instance MongoDB lancée via Docker.