Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да шифровате трафика от хибридна облачна база данни

Трудно е да се постигне защитена среда на база данни, но е изключително важна, за да се избегнат пробиви на данни, софтуер за откуп и друга злонамерена дейност. Сигурността на данните е основен приоритет от бизнес гледна точка. Когато работите в частен център за данни, вашата мрежа обикновено е първият слой на защита. Но в облачна среда на разпределена хибридна база данни, където вътрешните части на топологията на базата данни, както и приложенията са разпределени в центрове за данни, мрежата представлява по-голяма повърхност за свързване. Криптирането на трафика на данни по време на пренос е една от често срещаните мерки за защита срещу подслушване в мрежата. В този блог ще видим как можем да криптираме хибриден облачен трафик на mysql база данни.

Защо трябва да шифроваме трафика на базата данни?

Основната причина е, че връзките между екземпляри на база данни и всички клиентски приложения трябва да бъдат криптирани и да гарантират само оторизирана комуникация. Този слой на сигурността може да предотврати нежелано изтичане на чувствителни данни или да изключи възможността за всяка атака с инжектиране на SQL и т.н. Транзитът на данни може също да означава трафик на репликация между възлите на базата данни или трафик между балансиращи устройства/прокси сървъри и екземпляри на базата данни.

 

Активиране на SSL на възли на MySQL 

По-новите версии на MySQL идват със самоподписани сертификати и активиран SSL. От друга страна, ако искате да добавите още един слой сигурност,  може да искате да използвате свои собствени сертификати, ClusterControl ви позволява да промените SSL сертификата. В този блог обяснихме как да направите това с помощта на ClusterControl.

Активиране на SSL на клиенти 

MySQL извършва криптиране на база на връзка и използването на криптиране за даден потребител може да бъде по избор или задължително. За да се свържете с mysql възлите чрез SSL, уверете се, че сте настроили разрешението на потребителя със синтаксис „ИЗИСКВА SSL“, подобен на по-долу:

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)

Това ви позволява да изберете криптирана или некриптирана връзка според изискванията на отделните приложения.

За да гарантираме, че клиентите трябва да използват криптирани връзки,  трябва да активираме параметъра „require_secure_transport“ във файла my.cnf. По подразбиране този параметър е ИЗКЛЮЧЕН.

Проверка на DB връзки

По подразбиране mysql клиентът се опитва да установи криптирана връзка, ако сървърът поддържа криптирани връзки, като допълнителен контрол е наличен чрез опцията --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

Протоколът SSL използва различни алгоритми за криптиране, за да гарантира данните, получени през обществените и частните мрежи. Той има механизми за откриване на всяка промяна или загуба на данни.

[[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)

Заключение 

Криптирането на връзки към база данни не е и не трябва да е голяма работа, то се прави по подразбиране в някои от по-новите версии на MySQL. Тъй като сигурността на базата данни се превръща във все по-голям бизнес и регулаторен проблем, има много повече за мислене, отколкото просто криптиране на данни по време на пренос, за да защитите вашата хибридна облачна среда. Важно е да имате предвид, че при хостване на база данни се прилагат други слоеве на сигурност, като защита на мрежата и операционната система.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връщане на n-тия запис от MySQL заявка

  2. Кога да затворите курсорите с MySQLdb

  3. Конфигурация с висока достъпност за възли на ClusterControl, използваща CMON HA

  4. MySQL индексира ли автоматично колоните с външни ключове?

  5. Как да подобрим производителността на MySQL AWS 2 пъти над Amazon RDS на същата цена