Authentification et autorisation dans les replica sets et les clusters de shards
Introduction à l'authentification et l'autorisation
- Authentification : vérification de l'identité d'un utilisateur
- Autorisation : détermination des permissions accordées à un utilisateur
- Importance pour assurer la sécurité et la confidentialité des données
- Dans MongoDB, ces concepts s'appliquent aux replica sets et aux clusters de shards
Authentification et autorisation pour les replica sets
- Les replica sets nécessitent une configuration sécurisée pour éviter les accès non autorisés
- Création d'un utilisateur administrateur avec la commande db.createUser()
- Exemple : db.createUser({user:"admin", pwd:"password", roles:["root"]})
- Activation de l'authentification en modifiant le fichier de configuration mongod.conf
- Ajout de l'option security.authorization: enabled
- Redémarrage de mongod avec la nouvelle configuration
Authentification et autorisation pour les clusters de shards
- Les clusters de shards requièrent une configuration similaire à celle des replica sets
- Utilisation d'un utilisateur administrateur pour gérer l'ensemble du cluster
- Activation de l'authentification sur chaque shard et le serveur de configuration
- Exemple de commande pour ajouter un shard avec authentification : sh.addShard("shard1.example.com:27017", {user:"admin", pwd:"password"})
Utilisation de x.509 pour l'authentification
- X.509 : standard de certificats numériques pour l'authentification
- MongoDB Enterprise prend en charge l'authentification x.509
- Nécessite l'obtention d'un certificat pour chaque membre du replica set ou du cluster
- Modification du fichier de configuration mongod.conf pour ajouter les options x.509
- Exemple : net: { ssl: { mode: "requireSSL", PEMKeyFile: "/path/to/ssl/mongodb.pem", CAFile: "/path/to/ssl/ca.pem" } }
Utilisation de SCRAM-SHA pour l'authentification
- SCRAM-SHA : mécanisme d'authentification basé sur un échange de défis-réponses
- Mécanisme par défaut dans MongoDB
- Création d'un utilisateur avec SCRAM-SHA en utilisant la commande db.createUser()
- Exemple : db.createUser({user:"example", pwd:"password", roles:["readWrite"]})
- Utilisation de la commande mongo pour se connecter avec SCRAM-SHA
- Exemple : mongo --username example --password password --authenticationDatabase admin