sql >> Databasteknik >  >> RDS >> Mysql

Hur man krypterar hybrid molndatabastrafik

En säker databasmiljö är svår att uppnå, men extremt viktig för att undvika dataintrång, ransomware och annan skadlig aktivitet. Datasäkerhet har högsta prioritet ur affärsmässig synvinkel. När du kör i ett privat datacenter är ditt nätverk vanligtvis det första försvarsskiktet. Men i en distribuerad hybriddatabasmolnmiljö, där interna delar av databastopologin såväl som applikationer är fördelade över datacenter, representerar nätverket en större anslutningsyta. Kryptering av in-transit datatrafik är en av de vanligaste åtgärderna för att skydda mot nätverksavlyssning. I den här bloggen kommer vi att se hur vi kan kryptera hybrid cloud mysql databastrafik.

Varför behöver vi kryptera databastrafik?

Det främsta skälet är att anslutningar mellan databasinstanser och eventuella klientapplikationer bör krypteras och endast säkerställa auktoriserad kommunikation. Detta säkerhetslager kan förhindra oönskade känsliga dataläckor, eller utesluta möjligheten för SQL-injektionsattacker etc. Data i överföring kan också betyda replikeringstrafiken mellan databasnoderna, eller trafik mellan lastbalanserare/proxies och databasinstanserna.

 

Aktivera SSL på MySQL-noder 

Nyere versioner av MySQL kommer med självsignerade certifikat och SSL aktiverat. Å andra sidan, om du vill lägga till ytterligare ett säkerhetslager, du kanske vill använda dina egna certifikat, ClusterControl låter dig ändra SSL-certifikatet. I den här bloggen förklarade vi hur du gör detta med ClusterControl.

Aktivera SSL på klienter 

MySQL utför kryptering per anslutning, och användning av kryptering för en given användare kan vara valfri eller obligatorisk. För att ansluta till mysql-noderna via SSL, se till att du har ställt in användarens beviljande med "REQUIRE SSL"-syntax, liknande nedan:

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)

Detta gör att du kan välja en krypterad eller okrypterad anslutning enligt kraven för individuella applikationer.

För att säkerställa att klienter måste använda krypterade anslutningar måste vi aktivera parametern "require_secure_transport" i filen my.cnf. Som standard är denna parameter AV.

Verifiera DB-anslutningar

Som standard försöker mysql-klienten upprätta en krypterad anslutning om servern stöder krypterade anslutningar, med ytterligare kontroll tillgänglig via alternativet --ssl-mode till exempel,

[[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-protokollet använder olika krypteringsalgoritmer för att säkerställa att data tas emot över offentliga och privata nätverk. Den har mekanismer för att upptäcka eventuella dataförändringar eller förluster.

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

Slutsats 

Att kryptera en databasanslutningar är inte och borde inte vara en stor sak, det görs som standard i vissa av de nyare versionerna av MySQL. Eftersom databassäkerhet blir ett alltmer affärsmässigt och regulatoriskt problem, finns det mycket mer att tänka på än bara datakryptering under transport för att säkra din hybridmolnmiljö. Det är viktigt att komma ihåg att andra säkerhetslager gäller när du är värd för en databas, som nätverks- och operativsystemsäkerhet.


  1. Datumkolumnaritmetik i PostgreSQL-fråga

  2. Indexerade vyer och statistik

  3. Använda modulberoenden, del 2

  4. Ett prestationsfuskblad för PostgreSQL