Datenbanken arbeiten normalerweise in einer sicheren Umgebung. Es kann sich um ein Rechenzentrum mit einem dedizierten VLAN für den Datenbankdatenverkehr handeln. Es kann sich um eine VPC in EC2 handeln. Wenn sich Ihr Netzwerk über mehrere Rechenzentren in verschiedenen Regionen erstreckt, verwenden Sie normalerweise eine Art Virtual Private Network oder SSH-Tunneling, um diese Standorte auf sichere Weise zu verbinden. Da Datenschutz und Sicherheit heutzutage heiße Themen sind, könnten Sie sich mit einer zusätzlichen Sicherheitsebene besser fühlen.
MySQL unterstützt SSL als Mittel zum Verschlüsseln des Datenverkehrs sowohl zwischen MySQL-Servern (Replikation) als auch zwischen MySQL-Servern und -Clients. Wenn Sie Galera-Cluster verwenden, sind ähnliche Funktionen verfügbar – sowohl die Kommunikation innerhalb des Clusters als auch Verbindungen mit Clients können mit SSL verschlüsselt werden.
Eine gängige Methode zur Implementierung der SSL-Verschlüsselung ist die Verwendung selbstsignierter Zertifikate. In den meisten Fällen ist es nicht erforderlich, ein von der Zertifizierungsstelle ausgestelltes SSL-Zertifikat zu erwerben. Jeder, der den Prozess der Generierung eines selbstsignierten Zertifikats durchlaufen hat, wird wahrscheinlich zustimmen, dass dies nicht der einfachste Prozess ist – die meiste Zeit enden Sie damit, das Internet zu durchsuchen, um Anleitungen und Anweisungen dazu zu finden. Dies gilt insbesondere, wenn Sie DBA sind und diesen Prozess nur alle paar Monate oder sogar Jahre durchlaufen. Aus diesem Grund haben wir eine ClusterControl-Funktion hinzugefügt, mit der Sie SSL-Schlüssel in Ihrem Datenbankcluster verwalten können. In diesem Blogbeitrag verwenden wir ClusterControl 1.5.1.
Schlüsselverwaltung im ClusterControl
Sie können die Schlüsselverwaltung aufrufen, indem Sie zu Seitenmenü -> Schlüsselverwaltung gehen Abschnitt.
Der folgende Bildschirm wird angezeigt:
Sie können zwei generierte Zertifikate sehen, eines ist eine Zertifizierungsstelle und das andere ein reguläres Zertifikat. Um weitere Zertifikate zu generieren, wechseln Sie zu „Schlüssel generieren ’ Registerkarte:
Ein Zertifikat kann auf zwei Arten generiert werden:Sie können zuerst eine selbstsignierte Zertifizierungsstelle erstellen und diese dann zum Signieren eines Zertifikats verwenden. Oder Sie gehen direkt zu „Client/Server-Zertifikate und Schlüssel ’ Registerkarte und erstellen Sie ein Zertifikat. Die benötigte CA wird im Hintergrund für Sie erstellt. Zu guter Letzt können Sie ein vorhandenes Zertifikat importieren (z. B. ein Zertifikat, das Sie von einem der vielen Unternehmen gekauft haben, die SSL-Zertifikate verkaufen).
Dazu sollten Sie Ihr Zertifikat, Ihren Schlüssel und Ihre CA auf Ihren ClusterControl-Knoten hochladen und im Verzeichnis /var/lib/cmon/ca speichern. Dann geben Sie die Pfade zu diesen Dateien ein und das Zertifikat wird importiert.
Wenn Sie sich entschieden haben, eine Zertifizierungsstelle zu generieren oder ein neues Zertifikat zu generieren, müssen Sie ein weiteres Formular ausfüllen – Sie müssen Details zu Ihrer Organisation, dem allgemeinen Namen, der E-Mail-Adresse und der Schlüssellänge und dem Ablaufdatum angeben.
Sobald Sie alles eingerichtet haben, können Sie Ihre neuen Zertifikate verwenden. ClusterControl unterstützt derzeit die Bereitstellung von SSL-Verschlüsselung zwischen Clients und MySQL-Datenbanken sowie die SSL-Verschlüsselung von Intra-Cluster-Verkehr im Galera-Cluster. Wir planen, die Vielfalt der unterstützten Bereitstellungen in zukünftigen Versionen von ClusterControl zu erweitern.
Volle SSL-Verschlüsselung für Galera Cluster
Nehmen wir nun an, wir haben unsere SSL-Schlüssel bereit und wir haben einen Galera-Cluster, der eine SSL-Verschlüsselung benötigt, der über unsere ClusterControl-Instanz bereitgestellt wird. Wir können es ganz einfach in zwei Schritten sichern.
Erstens - verschlüsseln Sie den Galera-Datenverkehr mit SSL. Aus Ihrer Cluster-Ansicht ist eine der Cluster-Aktionen 'SSL Galera Encryption aktivieren '. Ihnen werden die folgenden Optionen angezeigt:
Wenn Sie kein Zertifikat haben, können Sie es hier generieren. Wenn Sie jedoch bereits ein SSL-Zertifikat generiert oder importiert haben, sollten Sie es in der Liste sehen und zum Verschlüsseln des Galera-Replikationsverkehrs verwenden können. Bitte beachten Sie, dass dieser Vorgang einen Neustart des Clusters erfordert – alle Knoten müssen gleichzeitig anhalten, Konfigurationsänderungen anwenden und dann neu starten. Bevor Sie hier fortfahren, stellen Sie sicher, dass Sie auf eine Ausfallzeit vorbereitet sind, während der Cluster neu gestartet wird.
Sobald der Intra-Cluster-Verkehr gesichert ist, wollen wir Client-Server-Verbindungen abdecken. Wählen Sie dazu "SSL-Verschlüsselung aktivieren". ’ Job und Sie sehen folgenden Dialog:
Es ist ziemlich ähnlich – Sie können entweder ein vorhandenes Zertifikat auswählen oder ein neues generieren. Der Hauptunterschied besteht darin, dass zur Anwendung der Client-Server-Verschlüsselung keine Ausfallzeit erforderlich ist – ein rollierender Neustart reicht aus. Nach dem Neustart finden Sie in der Übersicht direkt unter dem verschlüsselten Host ein Schloss-Symbol Seite:
Das Label 'Galera ' bedeutet, dass die Galera-Verschlüsselung aktiviert ist, während 'SSL ' bedeutet, dass die Client-Server-Verschlüsselung für diesen bestimmten Host aktiviert ist.
Natürlich reicht es nicht aus, SSL auf der Datenbank zu aktivieren - Sie müssen Zertifikate auf Clients kopieren, die SSL verwenden sollen, um sich mit der Datenbank zu verbinden. Alle Zertifikate befinden sich im Verzeichnis /var/lib/cmon/ca auf dem ClusterControl-Knoten. Sie müssen auch daran denken, Berechtigungen für Benutzer zu ändern, und sicherstellen, dass Sie ihnen REQUIRE SSL hinzugefügt haben, wenn Sie nur sichere Verbindungen erzwingen möchten.
Wir hoffen, dass Sie diese Optionen einfach zu verwenden finden und Ihnen helfen, Ihre MySQL-Umgebung zu sichern. Wenn Sie Fragen oder Vorschläge zu dieser Funktion haben, würden wir uns freuen, von Ihnen zu hören.