Bazy danych zwykle działają w bezpiecznym środowisku. Może to być centrum danych z dedykowaną siecią VLAN dla ruchu bazy danych. Może to być VPC w EC2. Jeśli Twoja sieć obejmuje wiele centrów danych w różnych regionach, zwykle używasz jakiegoś rodzaju tunelowania wirtualnej sieci prywatnej lub SSH, aby połączyć te lokalizacje w bezpieczny sposób. Ponieważ prywatność i bezpieczeństwo danych są obecnie gorącymi tematami, możesz poczuć się lepiej dzięki dodatkowej warstwie zabezpieczeń.
MySQL obsługuje SSL jako środek do szyfrowania ruchu zarówno pomiędzy serwerami MySQL (replikacja), jak i pomiędzy serwerami MySQL a klientami. W przypadku korzystania z klastra Galera dostępne są podobne funkcje — zarówno komunikacja wewnątrz klastra, jak i połączenia z klientami mogą być szyfrowane za pomocą protokołu SSL.
Powszechnym sposobem implementacji szyfrowania SSL jest użycie certyfikatów z podpisem własnym. W większości przypadków nie jest konieczne kupowanie certyfikatu SSL wydanego przez urząd certyfikacji. Każdy, kto przeszedł przez proces generowania certyfikatu z podpisem własnym, prawdopodobnie zgodzi się, że nie jest to najprostszy proces – przez większość czasu przeszukujesz internet, aby znaleźć instrukcje i instrukcje, jak to zrobić. Jest to szczególnie ważne, jeśli jesteś DBA i przechodzisz ten proces tylko co kilka miesięcy, a nawet lat. Dlatego dodaliśmy funkcję ClusterControl, która pomaga zarządzać kluczami SSL w klastrze bazy danych. W tym poście na blogu będziemy korzystać z ClusterControl 1.5.1.
Zarządzanie kluczami w ClusterControl
Aby przejść do zarządzania kluczami, przejdź do Menu boczne -> Zarządzanie kluczami sekcja.

Zostanie wyświetlony następujący ekran:

Możesz zobaczyć dwa wygenerowane certyfikaty, jeden jest CA, a drugi zwykłym certyfikatem. Aby wygenerować więcej certyfikatów, przejdź do „Generuj klucz ’ zakładka:

Certyfikat można wygenerować na dwa sposoby — najpierw można utworzyć samopodpisany urząd certyfikacji, a następnie użyć go do podpisania certyfikatu. Możesz też przejść bezpośrednio do „Certyfikaty i klucze klienta/serwera ’ i utwórz certyfikat. Wymagany urząd certyfikacji zostanie utworzony dla Ciebie w tle. Na koniec możesz zaimportować istniejący certyfikat (na przykład certyfikat kupiony od jednej z wielu firm sprzedających certyfikaty SSL).

Aby to zrobić, powinieneś przesłać swój certyfikat, klucz i CA do swojego węzła ClusterControl i przechowywać je w katalogu /var/lib/cmon/ca. Następnie wypełnisz ścieżki do tych plików, a certyfikat zostanie zaimportowany.
Jeśli zdecydujesz się wygenerować CA lub wygenerować nowy certyfikat, musisz wypełnić inny formularz – musisz podać szczegółowe informacje o swojej organizacji, imię i nazwisko, adres e-mail, wybrać długość klucza i datę wygaśnięcia.
Gdy wszystko będzie gotowe, możesz zacząć korzystać z nowych certyfikatów. ClusterControl obsługuje obecnie wdrażanie szyfrowania SSL między klientami a bazami danych MySQL oraz szyfrowanie SSL ruchu wewnątrz klastra w Galera Cluster. Planujemy rozszerzenie zakresu obsługiwanych wdrożeń w przyszłych wersjach ClusterControl.
Pełne szyfrowanie SSL dla Galera Cluster
Załóżmy teraz, że mamy gotowe klucze SSL i mamy klaster Galera, który wymaga szyfrowania SSL, wdrożony za pośrednictwem naszej instancji ClusterControl. Możemy go łatwo zabezpieczyć w dwóch krokach.
Po pierwsze - szyfruj ruch Galera za pomocą SSL. W widoku klastra jedno z działań klastra to „Włącz szyfrowanie SSL Galera” „. Zostaną wyświetlone następujące opcje:

Jeśli nie posiadasz certyfikatu, możesz go wygenerować tutaj. Ale jeśli już wygenerowałeś lub zaimportowałeś certyfikat SSL, powinieneś być w stanie zobaczyć go na liście i użyć go do szyfrowania ruchu replikacji Galera. Należy pamiętać, że ta operacja wymaga ponownego uruchomienia klastra — wszystkie węzły będą musiały zatrzymać się w tym samym czasie, zastosować zmiany w konfiguracji, a następnie ponownie uruchomić. Zanim przejdziesz dalej, upewnij się, że jesteś przygotowany na jakiś przestój podczas ponownego uruchamiania klastra.
Po zabezpieczeniu ruchu wewnątrz klastra chcemy objąć połączenia klient-serwer. Aby to zrobić, wybierz „Włącz szyfrowanie SSL ’, a zobaczysz następujące okno dialogowe:

Jest całkiem podobnie – możesz wybrać istniejący certyfikat lub wygenerować nowy. Główną różnicą jest to, że aby zastosować szyfrowanie klient-serwer, przestój nie jest wymagany — wystarczy restart kroczący. Po ponownym uruchomieniu zobaczysz ikonę kłódki tuż pod zaszyfrowanym hostem w sekcji Przegląd strona:

Etykieta „Galeria ' oznacza, że szyfrowanie Galera jest włączone, a 'SSL ' oznacza, że szyfrowanie klient-serwer jest włączone dla tego konkretnego hosta.
Oczywiście włączenie SSL w bazie danych nie wystarczy - trzeba kopiować certyfikaty do klientów, którzy mają używać SSL do łączenia się z bazą danych. Wszystkie certyfikaty można znaleźć w katalogu /var/lib/cmon/ca w węźle ClusterControl. Musisz również pamiętać o zmianie grantów dla użytkowników i upewnić się, że dodano do nich WYMAGAJ SSL, jeśli chcesz wymusić tylko bezpieczne połączenia.
Mamy nadzieję, że te opcje będą dla Ciebie łatwe w użyciu i pomogą Ci zabezpieczyć środowisko MySQL. Jeśli masz jakieś pytania lub sugestie dotyczące tej funkcji, chętnie się z Tobą skontaktujemy.