Omówienie szyfrowania w usłudze MySQL
Dane przesyłane
Usługa Azure Database for MySQL obsługuje połączenia szyfrowane przy użyciu protokołu TLS 1.2. Ten protokół jest domyślnie włączony i jest zarządzany przez parametr serwera tls_version . Ten parametr umożliwia wymuszenie minimalnej wersji protokołu TLS, na którą zezwala serwer. Możesz wybrać więcej niż jedną wersję, na przykład jeśli chcesz zezwolić na protokoły TLS 1.2 i 1.3. Po zmianie tego parametru należy ponownie uruchomić serwer, aby zastosować zmianę.
Jeśli aplikacja kliencka nie obsługuje szyfrowanych połączeń, musisz wyłączyć szyfrowane połączenia w usłudze Azure Database for MySQL. W witrynie Azure Portal przejdź do serwera MySQL, a następnie w obszarze Ustawienia wybierz pozycję Parametry serwera. W polu wyszukiwania wprowadź require_secure_transport. Ten parametr określa, czy połączenia klienckie muszą używać bezpiecznego połączenia, czyli protokołu SSL za pośrednictwem protokołu TCP/IP lub połączeń korzystających z pliku gniazda w systemie Unix, czy pamięci współużytkowanej w systemie Windows. Jeśli aplikacja kliencka nie obsługuje szyfrowanych połączeń, ustaw wartość require_secure_transport na WYŁ.
Uwaga
Jeśli ustawisz require_secure_transport na WYŁĄCZONE, ale klient łączy się poprzez zaszyfrowane połączenie, nadal będzie akceptowane.
Aby używać szyfrowanych połączeń z aplikacjami klienckimi, pobierz publiczny certyfikat SSL w witrynie Azure Portal. Przejdź do serwera MySQL i z menu po lewej stronie wybierz pozycję Sieć. W górnym menu wybierz pozycję Pobierz certyfikat SSL. Aby umożliwić aplikacjom bezpieczne łączenie się z bazą danych za pośrednictwem protokołu SSL, zapisz plik certyfikatu w środowisku lokalnym lub środowisku klienta, w którym jest hostowana aplikacja.
Dane magazynowane
Szyfrowanie danych magazynowanych jest obsługiwane w a aparatze magazynu InnoDB. Szyfrowanie jest ustawiane na poziomie przestrzeni tabel, a usługa InnoDB obsługuje szyfrowanie dla następujących przestrzeni tabel: plik na tabelę, ogólne i system. W przypadku programu MySQL w wersji 8.0 upewnij się, że parametr serwera default_table_encryption jest ustawiony na wartość WŁĄCZONE (domyślnie jest wyłączona ). W przypadku zaszyfrowanej tabeli można również zaszyfrować dziennik ponownego utworzenia. Ta opcja jest domyślnie wyłączona.
Aby zaszyfrować tabelę w pliku na przestrzeń tabel:
CREATE TABLE myEncryptedTable (myID INT) ENCRYPTION = 'Y';
Jeśli następnie zmienisz tabelę, należy określić klauzulę szyfrowania:
ALTER TABLE myEncryptedTable ENCRYPTION = 'Y';
Usługa Azure Database for MySQL domyślnie obsługuje szyfrowanie danych magazynowanych przy użyciu kluczy zarządzanych firmy Microsoft. Dane i kopie zapasowe są zawsze szyfrowane na dysku i nie można ich wyłączyć.