Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Mengenkripsi Lalu Lintas Database Cloud Hibrida

Lingkungan database yang aman sulit dicapai, tetapi sangat penting untuk menghindari pelanggaran data, ransomware, dan aktivitas berbahaya lainnya. Keamanan data adalah prioritas utama dari sudut pandang bisnis. Saat berjalan di pusat data pribadi, jaringan Anda biasanya merupakan lapisan pertahanan pertama. Tetapi dalam lingkungan cloud database hybrid terdistribusi, di mana bagian internal topologi database serta aplikasi didistribusikan di seluruh pusat data, jaringan mewakili permukaan lampiran yang lebih besar. Enkripsi lalu lintas data dalam perjalanan adalah salah satu langkah umum untuk melindungi dari penyadapan jaringan. Di blog ini kita akan melihat bagaimana kita dapat mengenkripsi lalu lintas database mysql cloud hybrid.

Mengapa kita Perlu Mengenkripsi Lalu Lintas Basis Data?

Alasan utamanya adalah koneksi antara instance database dan aplikasi klien apa pun harus dienkripsi, dan memastikan hanya komunikasi resmi. Lapisan keamanan ini dapat mencegah kebocoran data sensitif yang tidak diinginkan, atau mengecualikan kemungkinan serangan injeksi SQL, dll. Data dalam transit juga dapat berarti lalu lintas replikasi antara node basis data, atau lalu lintas antara penyeimbang beban/proksi dan instance basis data.

Mengaktifkan SSL di Node MySQL 

Versi MySQL yang lebih baru hadir dengan sertifikat yang ditandatangani sendiri dan SSL yang diaktifkan. Di sisi lain, jika Anda ingin menambahkan lapisan keamanan lain,  Anda mungkin ingin menggunakan sertifikat Anda sendiri, ClusterControl memungkinkan Anda mengubah sertifikat SSL. Di blog ini, kami menjelaskan cara melakukannya menggunakan ClusterControl.

Mengaktifkan SSL di Klien 

MySQL melakukan enkripsi pada basis per-koneksi, dan penggunaan enkripsi untuk pengguna tertentu dapat bersifat opsional atau wajib. Untuk terhubung ke node mysql melalui SSL, pastikan Anda telah menyiapkan hibah pengguna dengan sintaks "REQUIRE SSL", mirip dengan di bawah ini:

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)

Ini memungkinkan Anda memilih koneksi terenkripsi atau tidak terenkripsi sesuai dengan persyaratan masing-masing aplikasi.

Untuk memastikan bahwa klien diharuskan menggunakan koneksi terenkripsi, kami perlu mengaktifkan parameter "require_secure_transport" di file my.cnf. Secara default parameter ini OFF.

Memverifikasi Koneksi DB

Secara default, klien mysql mencoba membuat koneksi terenkripsi jika server mendukung koneksi terenkripsi, dengan kontrol lebih lanjut tersedia melalui opsi --ssl-mode misalnya,

[[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 menggunakan algoritme enkripsi yang berbeda untuk memastikan data diterima melalui jaringan publik dan pribadi. Ini memiliki mekanisme untuk mendeteksi perubahan atau kehilangan data.

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

Kesimpulan 

Mengenkripsi koneksi database bukanlah dan seharusnya bukan masalah besar, ini dilakukan secara default di beberapa versi MySQL yang lebih baru. Karena keamanan basis data semakin menjadi perhatian bisnis dan peraturan, ada banyak hal yang harus dipikirkan selain enkripsi data dalam perjalanan untuk mengamankan lingkungan cloud hybrid Anda. Penting untuk diingat bahwa lapisan keamanan lain berlaku saat menghosting database, seperti keamanan jaringan dan sistem operasi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL pilih dengan kondisi CONCAT

  2. MySQL Hapus Duplikat Catatan

  3. TAMPAK DROP MySQL

  4. Terhubung ke database MySQL jarak jauh melalui SSH menggunakan Java

  5. Transformasi baris ke kolom di MySQL