TW3 — Technologies du Web 3

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.pem

Sans 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é.

Tableau de bord

On this page