sql >> Databáze >  >> RDS >> MariaDB

Správa klíčů SSL a šifrování dat MySQL při přenosu

Databáze obvykle pracují v zabezpečeném prostředí. Může to být datové centrum s vyhrazenou VLAN pro databázový provoz. Může to být VPC v EC2. Pokud se vaše síť šíří mezi více datovými centry v různých oblastech, obvykle byste k bezpečnému propojení těchto míst použili nějaký druh virtuální privátní sítě nebo tunelování SSH. Vzhledem k tomu, že soukromí a zabezpečení dat jsou v dnešní době aktuálním tématem, možná se budete cítit lépe s další vrstvou zabezpečení.

MySQL podporuje SSL jako prostředek k šifrování provozu mezi servery MySQL (replikace) a mezi servery MySQL a klienty. Pokud používáte cluster Galera, jsou k dispozici podobné funkce – jak komunikaci v rámci clusteru, tak spojení s klienty lze šifrovat pomocí SSL.

Běžným způsobem implementace šifrování SSL je použití certifikátů s vlastním podpisem. Většinou není nutné kupovat SSL certifikát vydaný certifikační autoritou. Každý, kdo si prošel procesem generování certifikátu s vlastním podpisem, bude pravděpodobně souhlasit s tím, že to není ten nejpřímější proces – většinou nakonec prohledáváte internet, abyste našli návody a návody, jak to udělat. To platí zejména v případě, že jste DBA a tímto procesem procházíte pouze každých několik měsíců nebo dokonce let. To je důvod, proč jsme přidali funkci ClusterControl, která vám pomůže spravovat klíče SSL ve vašem databázovém clusteru. V tomto příspěvku na blogu budeme používat ClusterControl 1.5.1.

Správa klíčů v ClusterControl

Správu klíčů můžete otevřít tak, že přejdete do Postranní nabídka -> Správa klíčů sekce.

Zobrazí se následující obrazovka:

Můžete vidět dva vygenerované certifikáty, jeden je CA a druhý běžný certifikát. Chcete-li vygenerovat více certifikátů, přepněte na ‘Generovat klíč karta:

Certifikát lze vygenerovat dvěma způsoby – nejprve můžete vytvořit self-signed CA a poté jej použít k podpisu certifikátu. Nebo můžete přejít přímo na ‘Certifikáty a klíč klienta/serveru “ a vytvořte certifikát. Požadovaná CA vám bude vytvořena na pozadí. V neposlední řadě můžete importovat existující certifikát (například certifikát, který jste zakoupili od jedné z mnoha společností, které prodávají SSL certifikáty).

Chcete-li to provést, měli byste nahrát svůj certifikát, klíč a CA do uzlu ClusterControl a uložit je do adresáře /var/lib/cmon/ca. Poté vyplníte cesty k těmto souborům a certifikát bude importován.

Pokud jste se rozhodli vygenerovat CA nebo vygenerovat nový certifikát, musíte vyplnit další formulář – musíte předat podrobnosti o vaší organizaci, běžné jméno, e-mail, vybrat délku klíče a datum vypršení platnosti.

Jakmile budete mít vše na svém místě, můžete začít používat své nové certifikáty. ClusterControl aktuálně podporuje nasazení šifrování SSL mezi klienty a databázemi MySQL a šifrování SSL provozu v rámci clusteru v Galera Cluster. Plánujeme rozšířit řadu podporovaných nasazení v budoucích verzích ClusterControl.

Úplné šifrování SSL pro Galera Cluster

Nyní předpokládejme, že máme připravené klíče SSL a máme Galera Cluster, který potřebuje šifrování SSL, nasazený prostřednictvím naší instance ClusterControl. Můžeme to snadno zajistit ve dvou krocích.

Za prvé – zašifrujte provoz Galery pomocí SSL. V zobrazení clusteru je jednou z akcí clusteru „Povolit šifrování SSL Galera '. Zobrazí se vám následující možnosti:

Pokud certifikát nemáte, můžete si jej vygenerovat zde. Pokud jste však již vygenerovali nebo importovali certifikát SSL, měli byste jej vidět v seznamu a použít jej k šifrování provozu replikace Galera. Mějte prosím na paměti, že tato operace vyžaduje restart clusteru – všechny uzly se budou muset zastavit ve stejnou chvíli, aplikovat změny konfigurace a poté restartovat. Než budete pokračovat zde, ujistěte se, že jste připraveni na prostoje, zatímco se cluster restartuje.

Jakmile bude zabezpečen provoz v rámci clusteru, chceme pokrýt spojení klient-server. Chcete-li to provést, vyberte možnost Povolit šifrování SSL “ a uvidíte následující dialog:

Je to dost podobné – můžete buď vybrat existující certifikát, nebo vygenerovat nový. Hlavní rozdíl je v tom, že pro použití šifrování klient-server není vyžadována prostoje – postačí postupný restart. Po restartu najdete ikonu zámku přímo pod zašifrovaným hostitelem v Přehledu stránka:

Štítek 'Galera ' znamená, že šifrování Galera je povoleno, zatímco 'SSL ' znamená, že pro konkrétního hostitele je povoleno šifrování klient-server.

Povolení SSL na databázi samozřejmě nestačí - musíte zkopírovat certifikáty klientům, kteří mají používat SSL pro připojení k databázi. Všechny certifikáty lze nalézt v adresáři /var/lib/cmon/ca v uzlu ClusterControl. Pokud chcete vynutit pouze zabezpečená připojení, musíte také změnit granty pro uživatele a ujistit se, že jste jim přidali VYŽADOVAT SSL.

Doufáme, že se vám tyto možnosti budou snadno používat a pomohou vám zabezpečit prostředí MySQL. Pokud máte nějaké dotazy nebo návrhy týkající se této funkce, rádi bychom je slyšeli.


  1. Kritéria hibernace pro data

  2. Použití merge..output k získání mapování mezi source.id a target.id

  3. Jaký je rozdíl mezi zadním zaškrtnutím a hranatou závorkou v příkazech SQL?

  4. Připojení HAProxy vs připojení MySQL - Co byste měli vědět