Im ersten Teil des Blogs „Ein Überblick über MongoDB Atlas“ haben wir uns mit den ersten Schritten mit MongoDB Atlas, der Ersteinrichtung und Migration eines vorhandenen MongoDB-Clusters zu MongoDB Atlas befasst. In diesem Teil werden wir weiterhin mehrere Verwaltungselemente untersuchen, die für jedes MongoDB-Produktionssystem erforderlich sind, wie z. B. Sicherheit und Geschäftskontinuität.
Datenbanksicherheit im MongoDB-Atlas
Sicherheit steht immer an erster Stelle. Während es für alle Datenbanken wichtig ist, hat es für MongoDB eine besondere Bedeutung. Mitte 2017 war das Internet voll von Nachrichten über Ransomware-Angriffe, die speziell auf Schwachstellen in MongoDB-Systemen abzielten. Hacker entführten MongoDB-Instanzen und forderten Lösegeld im Austausch für die Rückgabe der gespeicherten Daten. Es gab Warnungen. Vor diesen Ransomware-Angriffen schrieben Blogger und Experten darüber, wie viele Produktionsinstanzen als anfällig befunden wurden. Es löste lange Zeit danach lebhafte Diskussionen über die MongoDB-Sicherheit aus.
Wir schreiben jetzt das Jahr 2019 und MongoDB wird immer beliebter. Die neue Hauptversion (4.0) wurde kürzlich veröffentlicht, und wir haben eine erhöhte Stabilität in MongoDB Atlas festgestellt. Aber was wurde getan, um die Sicherheit für die NoSQL-Datenbanken in der Cloud zu erhöhen?
Die Ransomware und die ständige Presse müssen sich auf MongoDB ausgewirkt haben, da wir deutlich sehen können, dass die Sicherheit jetzt im Mittelpunkt des MongoDB-Ökosystems steht. MongoDB Atlas macht da keine Ausnahme, da es jetzt mit integrierten Sicherheitskontrollen für die Anforderungen an die Verarbeitung von Produktionsdaten und vielen Sicherheitsfunktionen für Unternehmen sofort einsatzbereit ist. Der Standardansatz (der die Schwachstelle verursacht hat) aus der älteren Version ist weg und die Datenbank ist jetzt standardmäßig gesichert (Netzwerk, Crud-Autorisierungen usw.). Es enthält auch Funktionen, die Sie in einer modernen Produktionsumgebung erwarten würden (Prüfung, temporärer Benutzerzugriff usw.).
Aber das ist noch nicht alles. Da Atlas eine Online-Lösung ist, können Sie jetzt Integrationen mit Drittanbietern wie LDAP-Authentifizierung oder modernen MongoDB-Internetdiensten wie MongoDB-Diagrammen verwenden. MongoDB Atlas baut auf Amazon WebServices (AWS), Microsoft Azure und Google Cloud Platform (GCP) auf, die ebenfalls eigene Hochsicherheitsmaßnahmen bieten. Diese großartige Kombination stellt sicher, dass die Sicherheitsstandards von MongoDB Atlas unseren Erwartungen entsprechen. Werfen wir einen kurzen Blick auf einige dieser Schlüsselfunktionen.
MongoDB-Atlas und Netzwerksicherheit
MongoDB Atlas baut Cluster auf Ihrer bestehenden Cloud-Infrastruktur auf. Wenn man sich für AWS entscheidet, werden die Kundendaten in MongoDB Atlas-Systemen gespeichert. Bei diesen Systemen handelt es sich um dedizierte virtuelle AWS EC2-Server mit einem Mandanten, die ausschließlich für einen Atlas-Kunden erstellt werden. Amazon AWS-Rechenzentren erfüllen mehrere physische Sicherheits- und Informationssicherheitsstandards, aber da wir ein offenes Netzwerk benötigen, kann dies Bedenken hervorrufen.
Dedizierte Cluster von MongoDB Atlas werden in einer Virtual Private Cloud (VPC) mit dedizierten Firewalls bereitgestellt. Der Zugriff muss über eine IP-Whitelist oder über VPC-Peering gewährt werden. Standardmäßig ist jeglicher Zugriff deaktiviert.
MongoDB erfordert die folgenden Netzwerkports für Atlas...
- 27016 für Shards
- 27015 für den BI-Konnektor
- 27017 für Server
- Wenn LDAP aktiviert ist, erfordert MongoDB, dass das LDAP-Netzwerk 636 auf der Kundenseite für 0.0.0.0-Verkehr (gesamtes Internet) geöffnet ist.
Die Netzwerkports können nicht geändert und TLS nicht deaktiviert werden. Der Zugriff kann auch per IP-Whitelist isoliert werden.
Außerdem haben Sie die Möglichkeit, über Bastion-Hosts auf MongoDB Atlas zuzugreifen. Bastion-Hosts sind so konfiguriert, dass sie SSH-Schlüssel (keine Kennwörter) erfordern. Sie erfordern auch eine Multi-Faktor-Authentifizierung, und Benutzer müssen zusätzlich von der Geschäftsleitung für den Backend-Zugriff genehmigt werden.
Rollenbasierte Zugriffsverwaltung von MongoDB Atlas
Sie können erweiterte, rollenbasierte Zugriffsregeln konfigurieren, um zu steuern, welche Benutzer (und Teams) auf Daten in Ihren Datenbanken zugreifen, diese bearbeiten und/oder löschen können. Standardmäßig sind keine Benutzer erstellt, daher werden Sie aufgefordert, einen zu erstellen.
MongoDB Atlas ermöglicht es Administratoren, Berechtigungen für einen Benutzer oder eine Anwendung zu definieren und auf welche Daten bei der Abfrage von MongoDB zugegriffen werden kann. MongoDB Atlas bietet die Möglichkeit, Benutzern projekt- oder datenbankspezifische Rollen zuzuweisen, wodurch eine Aufgabentrennung zwischen verschiedenen Entitäten, die auf die Daten zugreifen und diese verwalten, realisiert werden kann. Der Vorgang ist einfach und vollständig interaktiv.
Um einen neuen Benutzer zu erstellen, gehen Sie auf die Registerkarte Sicherheit auf der linken Seite und wählen Sie zwischen MongoDB-Benutzern und MongoDB-Rollen.
MongoDB-Rollen
End-to-End-Datenbankverschlüsselung im MongoDB-Atlas
Alle MongoDB-Atlas-Daten während der Übertragung werden mit Transport Layer Security (TLS) verschlüsselt. Sie haben die Flexibilität, die minimale TLS-Protokollversion zu konfigurieren. Die Verschlüsselung für ruhende Daten wird mithilfe verschlüsselter Speichervolumes automatisiert.
Sie können auch Ihre bestehenden Sicherheitspraktiken und -prozesse in MongoDB Atlas integrieren, um zusätzliche Kontrolle darüber zu erhalten, wie Sie Ihre Umgebung sichern.
Für den MongoDB-Atlas-Cluster selbst ist die Authentifizierung standardmäßig automatisch über SCRAM aktiviert, um ein sicheres System von Anfang an zu gewährleisten.
Mit Encryption Key Management können Sie Ihre eigenen Verschlüsselungsschlüssel in Ihre dedizierten Cluster einbringen, um eine zusätzliche Verschlüsselungsebene für die Datenbankdateien zu schaffen, einschließlich Backup-Snapshots.
Audit in MongoDB Atlas
Granular Database Auditing beantwortet detaillierte Fragen zur Systemaktivität für Bereitstellungen mit mehreren Benutzern, indem alle Befehle anhand der Datenbank verfolgt werden. Auditing in MongoDB ist nur in MongoDB Enterprise verfügbar. Sie können Überwachungsereignisse in die Konsole, in das Syslog, in eine JSON-Datei oder in eine BSON-Datei schreiben. Sie konfigurieren die Audit-Option mit dem Qualifizierer –auditDestination. Um Audit-Ereignisse beispielsweise als JSON-Ereignisse an Syslog zu senden, verwenden Sie...
mongod --dbpath data/db --auditDestination syslog
MongoDB unterhält ein zentralisiertes Protokollverwaltungssystem zur Erfassung, Speicherung und Analyse von Protokolldaten für Produktionsumgebungen. Diese Informationen können für die Zustandsüberwachung, Fehlerbehebung und für Sicherheitszwecke verwendet werden. Warnungen werden im System konfiguriert, um SREs über betriebliche Bedenken zu informieren.
MongoDB-Atlas-LDAP-Integration
Benutzerauthentifizierung und -autorisierung für MongoDB Atlas-Cluster können über den LDAP-Server (Lightweight Directory Access Protocol) eines Kunden über TLS verwaltet werden. Eine einzelne LDAP-Konfiguration gilt für alle Datenbank-Cluster innerhalb eines Atlas-Projekts. LDAP-Server werden verwendet, um die Zugriffskontrolle zu vereinfachen und die Berechtigungsverwaltung granularer zu gestalten.
Für Kunden, die ihren LDAP-Server in einer AWS Virtual Private Cloud (VPC) betreiben, wird eine Peering-Verbindung zwischen dieser Umgebung und der VPC empfohlen, die ihre Atlas-Datenbanken enthält.
MongoDB Business Continuity und Disaster Recovery
MongoDB Atlas erstellt und konfiguriert dedizierte Cluster auf einer von AWS, Azure und/oder Google GCP bereitgestellten Infrastruktur. Die Datenverfügbarkeit unterliegt den Business Continuity Plans (BCP)- und Disaster Recovery (DR)-Prozessen des Infrastrukturanbieters. Infrastrukturdienstanbieter von MongoDB Atlas verfügen über eine Reihe von Zertifizierungen und Prüfberichten für diese Kontrollen.
Datenbanksicherungen in MongoDB Atlas
MongoDB Atlas sichert Daten, normalerweise nur Sekunden hinter einem Betriebssystem. MongoDB Atlas gewährleistet kontinuierliches Backup von Replikatsätzen, konsistente, clusterweite Snapshots von Sharding-Clustern und Point-in-Time-Wiederherstellung. Dieser vollständig verwaltete Sicherungsdienst verwendet Amazon S3 in der Region, die der Datenbankbereitstellung des Kunden am nächsten liegt.
Sicherungsdaten werden durch serverseitige Verschlüsselung geschützt. Amazon S3 verschlüsselt gesicherte Daten auf Objektebene, während es sie auf Festplatten in seinen Rechenzentren schreibt, und entschlüsselt sie für Sie, wenn Sie sie wiederherstellen. Alle Schlüssel werden vollständig von AWS verwaltet.
Atlas-Cluster, die in Amazon Web Services und Microsoft Azure bereitgestellt werden, können Cloud-Anbieter-Snapshots nutzen, die die nativen Snapshot-Funktionen des zugrunde liegenden Cloud-Anbieters nutzen. Sicherungen werden in derselben Cloud-Region wie der entsprechende Cluster gespeichert. Bei Clustern mit mehreren Regionen werden Snapshots in der bevorzugten Region des Clusters gespeichert.
Atlas bietet die folgenden Methoden, um Ihre Daten zu sichern...
Kontinuierliche Datenbanksicherungen
Kontinuierliche Sicherungen sind in M10+-Clustern und Versionen vor Serverversion 4.2 verfügbar. Dies ist eine alte Methode zur Durchführung von MongoDB-Backups. Atlas verwendet inkrementelle Snapshots, um Ihre Daten kontinuierlich zu sichern. Kontinuierliche Backup-Snapshots sind in der Regel nur wenige Sekunden hinter dem Betriebssystem zurück. Atlas stellt eigenständig eine Point-in-Time-Sicherung von Replikatsätzen und konsistente, clusterweite Snapshots von Sharding-Clustern sicher, wofür es S3 verwendet.
Vollständige Kopien von Snapshots
Atlas verwendet die nativen Snapshot-Funktionen Ihres Cloud-Anbieters, um vollständige Kopien von Snapshots und lokalisierte Snapshot-Speicherung zu unterstützen.
MongoDB Atlas Data Lake
Wenn Sie Atlas Data Lake verwenden, um Ihre S3-Daten in Atlas-Cluster aufzunehmen, können Sie schnell Daten abfragen, die in Ihren AWS S3-Buckets gespeichert sind, indem Sie Mongo Shell, MongoDB Compass und jeden MongoDB-Treiber verwenden.
Wenn Sie einen Data Lake erstellen, gewähren Sie Atlas nur Lesezugriff auf S3-Buckets in Ihrem AWS-Konto und erstellen eine Datenkonfigurationsdatei, die Daten aus Ihren S3-Buckets Ihren MongoDB-Datenbanken und -Sammlungen zuordnet. Atlas unterstützt die Verwendung eines beliebigen M10+-Clusters, einschließlich globaler Cluster, um eine Verbindung zu Data Lakes in demselben herzustellen.
Zum Zeitpunkt der Erstellung dieses Blogs werden die folgenden Formate unterstützt.
- Avro
- Parkett
- JSON
- JSON/Gzipped
- BSON
- CSV (Kopfzeile erforderlich)
- TSV (Kopfzeile erforderlich)
Fazit
Das war es erstmal. Ich hoffe, Ihnen hat mein zweiteiliger Überblick über MongoDB Atlas gefallen. Denken Sie daran, dass ClusterControl auch eine End-to-End-Verwaltung von MongoDB-Clustern bietet und eine großartige, kostengünstigere Alternative zu MongoDB Atlas ist, die auch in der Cloud bereitgestellt werden kann.