MariaDB
 sql >> Database >  >> RDS >> MariaDB

Gestione delle chiavi SSL e crittografia dei dati MySQL in transito

I database di solito funzionano in un ambiente sicuro. Potrebbe essere un data center con una VLAN dedicata per il traffico del database. Potrebbe essere un VPC in EC2. Se la tua rete si estende su più data center in diverse regioni, di solito utilizzeresti una sorta di rete privata virtuale o tunnel SSH per connettere queste posizioni in modo sicuro. Con la privacy e la sicurezza dei dati che sono argomenti di attualità, potresti sentirti meglio con un ulteriore livello di sicurezza.

MySQL supporta SSL come mezzo per crittografare il traffico sia tra server MySQL (replica) che tra server e client MySQL. Se utilizzi il cluster Galera, sono disponibili funzionalità simili:sia la comunicazione all'interno del cluster che le connessioni con i client possono essere crittografate tramite SSL.

Un modo comune per implementare la crittografia SSL consiste nell'utilizzare certificati autofirmati. Il più delle volte non è necessario acquistare un certificato SSL emesso dall'Autorità di Certificazione. Chiunque sia stato attraverso il processo di generazione di un certificato autofirmato probabilmente concorderà sul fatto che non è il processo più semplice:la maggior parte delle volte, si finisce per cercare su Internet per trovare howto e istruzioni su come farlo. Ciò è particolarmente vero se sei un DBA e segui questo processo solo ogni pochi mesi o addirittura anni. Questo è il motivo per cui abbiamo aggiunto una funzione ClusterControl per aiutarti a gestire le chiavi SSL nel tuo cluster di database. In questo post del blog utilizzeremo ClusterControl 1.5.1.

Gestione delle chiavi nel ClusterControl

Puoi accedere a Gestione chiavi andando su Menu laterale -> Gestione chiavi sezione.

Ti verrà presentata la seguente schermata:

Puoi vedere due certificati generati, uno è una CA e l'altro un certificato normale. Per generare più certificati, passa a "Genera chiave ' scheda:

Un certificato può essere generato in due modi:puoi prima creare una CA autofirmata e poi usarla per firmare un certificato. Oppure puoi andare direttamente a "Certificati client/server e chiave". ' e crea un certificato. La CA richiesta verrà creata per te in background. Ultimo ma non meno importante, puoi importare un certificato esistente (ad esempio un certificato che hai acquistato da una delle tante aziende che vendono certificati SSL).

A tale scopo, è necessario caricare il certificato, la chiave e la CA sul nodo ClusterControl e archiviarli nella directory /var/lib/cmon/ca. Quindi inserisci i percorsi di quei file e il certificato verrà importato.

Se hai deciso di generare una CA o di generare un nuovo certificato, c'è un altro modulo da compilare:devi passare i dettagli sulla tua organizzazione, il nome comune, l'e-mail, scegliere la lunghezza della chiave e la data di scadenza.

Una volta che hai tutto a posto, puoi iniziare a utilizzare i tuoi nuovi certificati. ClusterControl attualmente supporta l'implementazione della crittografia SSL tra client e database MySQL e la crittografia SSL del traffico intra-cluster in Galera Cluster. Abbiamo in programma di estendere la varietà di implementazioni supportate nelle versioni future di ClusterControl.

Crittografia SSL completa per Galera Cluster

Ora supponiamo di avere le nostre chiavi SSL pronte e di avere un Cluster Galera, che necessita della crittografia SSL, distribuito tramite la nostra istanza ClusterControl. Possiamo assicurarlo facilmente in due passaggi.

Primo:crittografa il traffico Galera utilizzando SSL. Dalla visualizzazione del cluster, una delle azioni del cluster è "Abilita crittografia SSL Galera '. Ti verranno presentate le seguenti opzioni:

Se non hai un certificato, puoi generarlo qui. Ma se hai già generato o importato un certificato SSL, dovresti essere in grado di vederlo nell'elenco e usarlo per crittografare il traffico di replica di Galera. Tieni presente che questa operazione richiede un riavvio del cluster:tutti i nodi dovranno arrestarsi contemporaneamente, applicare le modifiche alla configurazione e quindi riavviare. Prima di procedere qui, assicurati di essere pronto per alcuni tempi di inattività durante il riavvio del cluster.

Una volta che il traffico intra-cluster è stato protetto, vogliamo coprire le connessioni client-server. Per farlo, seleziona "Abilita crittografia SSL ' lavoro e vedrai la seguente finestra di dialogo:

È abbastanza simile:puoi scegliere un certificato esistente o generarne uno nuovo. La differenza principale è che per applicare la crittografia client-server non sono necessari tempi di inattività:sarà sufficiente un riavvio in sequenza. Una volta riavviato, troverai l'icona di un lucchetto proprio sotto l'host crittografato nella Panoramica pagina:

L'etichetta 'Galera ' significa che la crittografia Galera è abilitata, mentre 'SSL ' significa che la crittografia client-server è abilitata per quel particolare host.

Ovviamente, abilitare SSL sul database non è sufficiente:devi copiare i certificati sui client che dovrebbero utilizzare SSL per connettersi al database. Tutti i certificati si trovano nella directory /var/lib/cmon/ca sul nodo ClusterControl. Devi anche ricordarti di modificare le sovvenzioni per gli utenti e assicurarti di aver aggiunto loro REQUIRE SSL se desideri applicare solo connessioni sicure.

Ci auguriamo che troverai queste opzioni facili da usare e ti aiuteranno a proteggere il tuo ambiente MySQL. Se hai domande o suggerimenti su questa funzione, saremo lieti di sentirti.