Dans la première partie du blog « Un aperçu de MongoDB Atlas », nous avons examiné les premiers pas avec MongoDB Atlas, la configuration initiale et la migration d'un cluster MongoDB existant vers MongoDB Atlas. Dans cette partie, nous allons continuer à explorer plusieurs éléments de gestion requis pour chaque système de production MongoDB, tels que la sécurité et la continuité des activités.
Sécurité des bases de données dans MongoDB Atlas
La sécurité vient toujours en premier. Bien qu'il soit important pour toutes les bases de données, pour MongoDB, il a une signification particulière. À la mi-2017, Internet regorgeait de nouvelles concernant les attaques de ransomwares qui ciblaient spécifiquement les vulnérabilités des systèmes MongoDB. Les pirates détournaient des instances MongoDB et demandaient une rançon en échange du retour des données stockées. Il y avait des avertissements. Avant ces attaques de rançongiciels, des blogueurs et des experts ont écrit sur le nombre d'instances de production jugées vulnérables. Cela a suscité des discussions animées autour de la sécurité de MongoDB pendant longtemps après.
Nous sommes maintenant en 2019 et MongoDB devient encore plus populaire. La nouvelle version majeure (4.0) a été publiée récemment et nous avons constaté une stabilité accrue dans MongoDB Atlas. Mais qu'est-ce qui a été fait pour augmenter la sécurité des bases de données NoSQL dans le cloud.
Le ransomware et la presse constante ont dû avoir un impact sur MongoDB car nous pouvons clairement voir que la sécurité est désormais au centre de l'écosystème MongoDB. MongoDB Atlas ne fait pas exception car il est désormais livré avec des contrôles de sécurité intégrés pour les besoins de traitement des données de production et de nombreuses fonctionnalités de sécurité d'entreprise prêtes à l'emploi. L'approche par défaut (qui a causé la vulnérabilité) de l'ancienne version a disparu et la base de données est désormais sécurisée par défaut (réseau, autorisations crud, etc.). Il est également livré avec des fonctionnalités que vous vous attendez à avoir dans un environnement de production moderne (audit, accès utilisateur temporaire, etc.).
Mais cela ne s'arrête pas là. Étant donné qu'Atlas est une solution en ligne, vous pouvez désormais utiliser des intégrations avec des tiers comme l'authentification LDAP ou des services Internet MongoDB modernes comme les cartes MongoDB. MongoDB Atlas est construit sur Amazon WebServices (AWS), Microsoft Azure et Google Cloud Platform (GCP) qui offrent également leurs propres mesures de haute sécurité. Cette excellente combinaison garantit que les normes de sécurité de MongoDB Atlas correspondent à ce que nous attendons. Jetons un coup d'œil à certaines de ces fonctionnalités clés.
Atlas MongoDB et sécurité réseau
MongoDB Atlas construit des clusters au-dessus de votre infrastructure cloud existante. Lorsque l'on choisit AWS, les données client sont stockées dans les systèmes MongoDB Atlas. Ces systèmes sont des serveurs virtuels AWS EC2 dédiés à locataire unique qui sont créés uniquement pour un client Atlas. Les centres de données Amazon AWS sont conformes à plusieurs normes de sécurité physique et de sécurité des informations, mais comme nous avons besoin d'un réseau ouvert, cela peut soulever des inquiétudes.
Les clusters dédiés MongoDB Atlas sont déployés dans un Virtual Private Cloud (VPC) avec des pare-feux dédiés. L'accès doit être accordé par une liste blanche d'adresses IP ou via l'appairage de VPC. Par défaut, tous les accès sont désactivés.
MongoDB nécessite les ports réseau suivants pour Atlas...
- 27016 pour les fragments
- 27015 pour le connecteur BI
- 27017 pour le serveur
- Si LDAP est activé, MongoDB nécessite le réseau LDAP 636 côté client ouvert au trafic 0.0.0.0 (tout Internet).
Les ports réseau ne peuvent pas être modifiés et TLS ne peut pas être désactivé. L'accès peut également être isolé par une liste blanche d'IP.
De plus, vous pouvez choisir d'accéder à MongoDB Atlas via des hôtes Bastion. Les hôtes Bastion sont configurés pour exiger des clés SSH (et non des mots de passe). Ils nécessitent également une authentification multifacteur, et les utilisateurs doivent en outre être approuvés par la haute direction pour l'accès au backend.
Gestion des accès basée sur les rôles MongoDB Atlas
Vous pouvez configurer des règles d'accès avancées basées sur les rôles pour contrôler quels utilisateurs (et équipes) peuvent accéder, manipuler et/ou supprimer des données dans vos bases de données. Par défaut, aucun utilisateur n'a été créé, vous serez donc invité à en créer un.
MongoDB Atlas permet aux administrateurs de définir des autorisations pour un utilisateur ou une application ainsi que les données accessibles lors de l'interrogation de MongoDB. MongoDB Atlas offre la possibilité de fournir aux utilisateurs des rôles spécifiques à un projet ou à une base de données, permettant de réaliser une séparation des tâches entre différentes entités accédant et gérant les données. Le processus est simple et entièrement interactif.
Pour créer un nouvel utilisateur, accédez à l'onglet Sécurité sur le côté gauche et choisissez entre les utilisateurs MongoDB et les rôles MongoDB.
Rôles MongoDB
Chiffrement de base de données de bout en bout dans MongoDB Atlas
Toutes les données MongoDB Atlas en transit sont chiffrées à l'aide de Transport Layer Security (TLS). Vous avez la possibilité de configurer la version minimale du protocole TLS. Le chiffrement des données au repos est automatisé à l'aide de volumes de stockage chiffrés.
Vous pouvez également intégrer vos pratiques et processus de sécurité existants à MongoDB Atlas pour fournir un contrôle supplémentaire sur la façon dont vous sécurisez votre environnement.
Pour le cluster MongoDB Atlas lui-même, l'authentification est automatiquement activée par défaut via SCRAM pour garantir un système sécurisé prêt à l'emploi.
Avec Encryption Key Management, vous pouvez apporter vos propres clés de chiffrement à vos clusters dédiés pour une couche supplémentaire de chiffrement sur les fichiers de base de données, y compris les instantanés de sauvegarde.
Audit dans MongoDB Atlas
L'audit de base de données granulaire répond à des questions détaillées sur l'activité du système pour les déploiements avec plusieurs utilisateurs en suivant toutes les commandes par rapport à la base de données. L'audit dans MongoDB n'est disponible que dans MongoDB Enterprise. Vous pouvez écrire des événements d'audit dans la console, dans le journal système, dans un fichier JSON ou dans un fichier BSON. Vous configurez l'option d'audit à l'aide du qualificateur –auditDestination. Par exemple, pour envoyer des événements d'audit en tant qu'événements JSON à syslog, utilisez...
mongod --dbpath data/db --auditDestination syslog
MongoDB maintient un système centralisé de gestion des journaux pour la collecte, le stockage et l'analyse des données des journaux pour les environnements de production. Ces informations peuvent être utilisées pour la surveillance de l'intégrité, le dépannage et à des fins de sécurité. Des alertes sont configurées dans le système afin d'informer les SRE de tout problème opérationnel.
Intégration MongoDB Atlas LDAP
L'authentification et l'autorisation des utilisateurs sur les clusters MongoDB Atlas peuvent être gérées via le serveur LDAP (Lightweight Directory Access Protocol) d'un client sur TLS. Une seule configuration LDAP s'applique à tous les clusters de bases de données d'un projet Atlas. Les serveurs LDAP sont utilisés pour simplifier le contrôle d'accès et rendre la gestion des autorisations plus granulaire.
Pour les clients exécutant leur serveur LDAP dans un AWS Virtual Private Cloud (VPC), une connexion d'appairage est recommandée entre cet environnement et le VPC contenant leurs bases de données Atlas.
Continuité d'activité et reprise après sinistre de MongoDB
MongoDB Atlas crée et configure des clusters dédiés sur une infrastructure fournie par AWS, Azure et/ou Google GCP. La disponibilité des données est soumise aux processus de plans de continuité des activités (BCP) et de reprise après sinistre (DR) du fournisseur d'infrastructure. Les fournisseurs de services d'infrastructure MongoDB Atlas détiennent un certain nombre de certifications et de rapports d'audit pour ces contrôles.
Sauvegardes de bases de données dans MongoDB Atlas
MongoDB Atlas sauvegarde les données, généralement quelques secondes après un système opérationnel. MongoDB Atlas garantit une sauvegarde continue des jeux de réplicas, des instantanés cohérents à l'échelle du cluster des clusters partitionnés et une récupération à un moment précis. Ce service de sauvegarde entièrement géré utilise Amazon S3 dans la région la plus proche du déploiement de la base de données du client.
Les données de sauvegarde sont protégées à l'aide d'un chiffrement côté serveur. Amazon S3 chiffre les données sauvegardées au niveau de l'objet lorsqu'il les écrit sur les disques de ses centres de données et les déchiffre pour vous lorsque vous les restaurez. Toutes les clés sont entièrement gérées par AWS.
Les clusters Atlas déployés dans Amazon Web Services et Microsoft Azure peuvent tirer parti des instantanés du fournisseur de cloud qui utilisent les capacités d'instantané natives du fournisseur de cloud sous-jacent. Les sauvegardes sont stockées dans la même région cloud que le cluster correspondant. Pour les clusters multirégionaux, les instantanés sont stockés dans la région préférée du cluster.
Atlas propose les méthodes suivantes pour sauvegarder vos données...
Sauvegardes continues de la base de données
Les sauvegardes continues sont disponibles dans les clusters M10+ et les versions inférieures à la version 4.2 du serveur. Il s'agit d'une ancienne méthode pour effectuer des sauvegardes MongoDB. Atlas utilise des instantanés incrémentiels pour sauvegarder en continu vos données. Les instantanés de sauvegarde continue n'ont généralement que quelques secondes de retard sur le système opérationnel. Atlas assure lui-même une sauvegarde ponctuelle des jeux de réplicas et des instantanés cohérents à l'échelle du cluster des clusters partitionnés, pour lesquels il utilise S3.
Instantanés en copie intégrale
Atlas utilise les fonctionnalités d'instantané natives de votre fournisseur de cloud pour prendre en charge les instantanés de copie complète et le stockage d'instantanés localisé.
Lac de données MongoDB Atlas
L'utilisation d'Atlas Data Lake pour ingérer vos données S3 dans les clusters Atlas vous permet d'interroger rapidement les données stockées dans vos compartiments AWS S3 à l'aide de Mongo Shell, de MongoDB Compass et de n'importe quel pilote MongoDB.
Lorsque vous créez un lac de données, vous accordez à Atlas un accès en lecture seule aux compartiments S3 de votre compte AWS et créez un fichier de configuration de données qui mappe les données de vos compartiments S3 à vos bases de données et collections MongoDB. Atlas prend en charge l'utilisation de n'importe quel cluster M10+, y compris les clusters mondiaux, pour se connecter aux lacs de données dans le même.
Au moment de la rédaction de ce blog, les formats suivants sont pris en charge.
- Avro
- Parquet
- JSON
- JSON/Gzippé
- BSON
- CSV (nécessite une ligne d'en-tête)
- TSV (nécessite une ligne d'en-tête)
Conclusion
C'est tout pour le moment, j'espère que vous avez apprécié mon aperçu en deux parties de MongoDB Atlas. N'oubliez pas que ClusterControl fournit également une gestion de bout en bout des clusters MongoDB et constitue une excellente alternative moins coûteuse à MongoDB Atlas, qui peut également être déployée dans le cloud.