sql >> Databáze >  >> RDS >> Mysql

Jak šifrovat provoz databáze hybridního cloudu

Bezpečné databázové prostředí je těžké dosáhnout, ale je nesmírně důležité, aby se zabránilo narušení dat, ransomwaru a jiné škodlivé činnosti. Bezpečnost dat je z obchodního hlediska nejvyšší prioritou. Při provozu v soukromém datovém centru je vaše síť obvykle první vrstvou obrany. Ale v prostředí distribuovaného hybridního databázového cloudu, kde jsou vnitřní části topologie databáze i aplikace distribuovány napříč datovými centry, představuje síť větší připojovací plochu. Šifrování přenášeného datového provozu je jedním z běžných opatření na ochranu proti odposlechu sítě. V tomto blogu uvidíme, jak můžeme šifrovat provoz hybridní cloudové databáze mysql.

Proč potřebujeme šifrovat databázový provoz?

Hlavním důvodem je, že spojení mezi instancemi databáze a klientskými aplikacemi by měla být šifrována a měla by zajistit pouze autorizovanou komunikaci. Tato vrstva zabezpečení může zabránit nechtěnému úniku citlivých dat nebo vyloučit možnost jakéhokoli útoku SQL injection atd. Přenos dat může také znamenat provoz replikace mezi uzly databáze nebo provoz mezi nástroji pro vyrovnávání zatížení/proxy a instancemi databáze.

 

Aktivace SSL na MySQL uzlech 

Novější verze MySQL jsou dodávány s certifikáty s vlastním podpisem a povoleným SSL. Na druhou stranu, pokud byste chtěli přidat další vrstvu zabezpečení, možná budete chtít použít své vlastní certifikáty, ClusterControl vám umožňuje změnit certifikát SSL. V tomto blogu jsme vysvětlili, jak to udělat pomocí ClusterControl.

Aktivace SSL u klientů 

MySQL provádí šifrování na základě jednotlivých připojení a použití šifrování pro daného uživatele může být volitelné nebo povinné. Chcete-li se připojit k uzlům mysql prostřednictvím SSL, ujistěte se, že jste nastavili uživatelský grant se syntaxí „VYŽADOVAT SSL“, podobnou níže:

mysql> create user 'app_user'@'192.168.%.%' identified by '[email protected]' REQUIRE SSL;

Query OK, 0 rows affected (0.00 sec)



mysql> grant all on *.* to 'app_user'@'192.168.%.%';

Query OK, 0 rows affected (0.00 sec)

To vám umožní vybrat si šifrované nebo nešifrované připojení podle požadavků jednotlivých aplikací.

Aby klienti museli používat šifrovaná připojení, musíme v souboru my.cnf povolit parametr „require_secure_transport“. Ve výchozím nastavení je tento parametr OFF.

Ověřování připojení DB

Ve výchozím nastavení se klient mysql pokouší vytvořit šifrované připojení, pokud server podporuje šifrovaná připojení, přičemž další ovládání je dostupné například prostřednictvím volby --ssl-mode,

[[email protected] vagrant]# mysql -u app_user -p -h 192.168.xx.xx -P3306 --ssl=1 -e "status;" | grep -i SSL
SSL: Cipher in use is ECDHE-RSA-AES256-GCM-SHA384

Protokol SSL používá různé šifrovací algoritmy k zajištění dat přijímaných přes veřejné a privátní sítě. Má mechanismy pro detekci jakékoli změny nebo ztráty dat.

[[email protected] vagrant]# mysql -u app_user -p -h 192.168.xx.xx -P3306 --ssl=1 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 12656
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> SHOW SESSION STATUS LIKE 'Ssl_cipher';
+---------------+-----------------------------+
| Variable_name | Value                       |
+---------------+-----------------------------+
| Ssl_cipher    | ECDHE-RSA-AES256-GCM-SHA384 |
+---------------+-----------------------------+
1 row in set (0.00 sec)

MySQL [(none)]> show  status like 'Ssl_version';
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Ssl_version   | TLSv1.2 |
+---------------+---------+
1 row in set (0.00 sec)

Závěr 

Šifrování databázových připojení není a nemělo by být velkým problémem, v některých novějších verzích MySQL se to provádí standardně. Vzhledem k tomu, že zabezpečení databází se stává stále důležitějším obchodním a regulačním problémem, je třeba pro zabezpečení vašeho hybridního cloudového prostředí přemýšlet o mnohem více než jen o šifrování dat při přenosu. Je důležité mít na paměti, že při hostování databáze platí další vrstvy zabezpečení, jako je zabezpečení sítě a operačního systému.


  1. PostgreSQL vs. MySQL:Co je nejlepší?

  2. Jak uložit data unicode do oracle?

  3. Převést číslo měsíce na název měsíce v SQL Server (T-SQL)

  4. toto je chyba ORA-12154:TNS:Nelze vyřešit zadaný identifikátor připojení?