MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Zarządzanie kluczami SSL i szyfrowanie danych MySQL w transporcie

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Popularne obrazy Docker dla serwerów MySQL i MariaDB

  2. Jak działa LN() w MariaDB

  3. Obsługa problemów z replikacją z klastrów bazy danych MariaDB bez GTID do GTID

  4. ClusterControl:wprowadzenie do nowego monitora zapytań

  5. Jak SUBDATE() działa w MariaDB