sql >> Database teknologi >  >> RDS >> Mysql

Sådan krypteres hybrid cloud-databasetrafik

Et sikkert databasemiljø er svært at opnå, men ekstremt vigtigt for at undgå databrud, ransomware og anden ondsindet aktivitet. Sikkerhed af data er en topprioritet fra et forretningsmæssigt synspunkt. Når du kører i et privat datacenter, er dit netværk normalt det første forsvarslag. Men i et distribueret hybrid databaseskymiljø, hvor interne dele af databasetopologien såvel som applikationer er fordelt på tværs af datacentre, repræsenterer netværket en større tilknytningsflade. Kryptering af in-transit datatrafik er en af ​​de almindelige foranstaltninger til at beskytte mod netværksaflytning. I denne blog vil vi se, hvordan vi kan kryptere hybrid cloud-mysql-databasetrafik.

Hvorfor skal vi kryptere databasetrafik?

Hovedårsagen er, at forbindelser mellem databaseinstanser og eventuelle klientapplikationer skal være krypteret og kun sikre autoriseret kommunikation. Dette sikkerhedslag kan forhindre uønsket følsomme datalækage eller udelukke muligheden for ethvert SQL-injektionsangreb osv. Data i transit kan også betyde replikeringstrafikken mellem databasenoderne eller trafik mellem load balancers/proxies og databaseinstanserne.

 

Aktivering af SSL på MySQL-noder 

Nyere versioner af MySQL leveres med selvsignerede certifikater og SSL aktiveret. På den anden side, hvis du gerne vil tilføje endnu et sikkerhedslag, kan du bruge dine egne certifikater. ClusterControl giver dig mulighed for at ændre SSL-certifikatet. I denne blog forklarede vi, hvordan du gør dette ved hjælp af ClusterControl.

Aktivering af SSL på klienter 

MySQL udfører kryptering på en per-forbindelse basis, og brug af kryptering for en given bruger kan være valgfri eller obligatorisk. For at oprette forbindelse til mysql-noderne via SSL skal du sikre dig, at du har konfigureret brugerens bevilling med "KRÆV SSL"-syntaks, svarende til nedenfor:

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)

Dette giver dig mulighed for at vælge en krypteret eller ukrypteret forbindelse i overensstemmelse med kravene til individuelle applikationer.

For at sikre, at klienter skal bruge krypterede forbindelser, skal vi aktivere parameteren "require_secure_transport" i filen my.cnf. Som standard er denne parameter FRA.

Bekræftelse af DB-forbindelser

Som standard forsøger mysql-klienten at etablere en krypteret forbindelse, hvis serveren understøtter krypterede forbindelser, med yderligere kontrol tilgængelig via --ssl-mode-indstillingen f.eks.

[[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-protokollen bruger forskellige krypteringsalgoritmer til at sikre, at data modtages over offentlige og private netværk. Det har mekanismer til at registrere enhver dataændring eller tab.

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

Konklusion 

Kryptering af en databaseforbindelse er ikke og burde ikke være en stor sag, det gøres som standard i nogle af de nyere versioner af MySQL. Efterhånden som databasesikkerhed bliver et mere og mere forretningsmæssigt og lovgivningsmæssigt problem, er der meget mere at tænke på end blot in-transit datakryptering for at sikre dit hybride cloudmiljø. Det er vigtigt at huske på, at andre sikkerhedslag gælder, når du hoster en database, såsom netværks- og operativsystemsikkerhed.


  1. Tillad null i unik kolonne

  2. Migrering fra AnswerHub til WordPress:A Tale of 10 Technologies

  3. ALTER TABLE for at tilføje en sammensat primærnøgle

  4. Sådan fungerer TRY_CONVERT() i SQL Server