Database biasanya bekerja di lingkungan yang aman. Ini mungkin pusat data dengan VLAN khusus untuk lalu lintas basis data. Ini mungkin VPC di EC2. Jika jaringan Anda tersebar di beberapa pusat data di wilayah yang berbeda, Anda biasanya akan menggunakan semacam Jaringan Pribadi Virtual atau tunneling SSH untuk menghubungkan lokasi ini dengan cara yang aman. Dengan privasi dan keamanan data yang menjadi topik hangat akhir-akhir ini, Anda mungkin merasa lebih baik dengan lapisan keamanan tambahan.
MySQL mendukung SSL sebagai sarana untuk mengenkripsi lalu lintas baik antara server MySQL (replikasi) maupun antara server MySQL dan klien. Jika Anda menggunakan kluster Galera, fitur serupa tersedia - komunikasi intra-cluster dan koneksi dengan klien dapat dienkripsi menggunakan SSL.
Cara umum untuk menerapkan enkripsi SSL adalah dengan menggunakan sertifikat yang ditandatangani sendiri. Sebagian besar waktu, tidak perlu membeli sertifikat SSL yang dikeluarkan oleh Otoritas Sertifikat. Siapa pun yang telah melalui proses pembuatan sertifikat yang ditandatangani sendiri mungkin akan setuju bahwa ini bukan proses yang paling mudah - sebagian besar waktu, Anda akhirnya mencari melalui internet untuk menemukan cara dan instruksi tentang cara melakukannya. Ini terutama benar jika Anda seorang DBA dan hanya menjalani proses ini setiap beberapa bulan atau bahkan bertahun-tahun. Inilah mengapa kami menambahkan fitur ClusterControl untuk membantu Anda mengelola kunci SSL di seluruh cluster database Anda. Dalam posting blog ini, kami akan menggunakan ClusterControl 1.5.1.
Manajemen Kunci di ClusterControl
Anda dapat masuk ke Manajemen Kunci dengan membuka Menu Samping -> Manajemen Kunci bagian.
Anda akan disajikan layar berikut:
Anda dapat melihat dua sertifikat yang dihasilkan, satu menjadi CA dan yang lainnya adalah sertifikat biasa. Untuk menghasilkan lebih banyak sertifikat, alihkan ke ‘Buat Kunci ’ tab:
Sertifikat dapat dibuat dengan dua cara - Anda dapat membuat CA yang ditandatangani sendiri terlebih dahulu dan kemudian menggunakannya untuk menandatangani sertifikat. Atau Anda dapat langsung membuka ‘Sertifikat dan Kunci Klien/Server ' dan buat sertifikat. CA yang diperlukan akan dibuat untuk Anda di latar belakang. Terakhir, Anda dapat mengimpor sertifikat yang ada (misalnya sertifikat yang Anda beli dari salah satu dari banyak perusahaan yang menjual sertifikat SSL).
Untuk melakukannya, Anda harus mengunggah sertifikat, kunci, dan CA Anda ke node ClusterControl Anda dan menyimpannya di direktori /var/lib/cmon/ca. Kemudian Anda mengisi path ke file tersebut dan sertifikat akan diimpor.
Jika Anda memutuskan untuk membuat CA atau membuat sertifikat baru, ada formulir lain yang harus diisi - Anda harus memberikan detail tentang organisasi Anda, nama umum, email, pilih panjang kunci, dan tanggal kedaluwarsa.
Setelah semuanya siap, Anda dapat mulai menggunakan sertifikat baru. ClusterControl saat ini mendukung penyebaran enkripsi SSL antara klien dan database MySQL dan enkripsi SSL lalu lintas intra-cluster di Galera Cluster. Kami berencana untuk memperluas variasi penerapan yang didukung dalam rilis ClusterControl mendatang.
Enkripsi SSL lengkap untuk Galera Cluster
Sekarang mari kita asumsikan kita sudah menyiapkan kunci SSL dan kita memiliki Galera Cluster, yang membutuhkan enkripsi SSL, yang disebarkan melalui instance ClusterControl kita. Kami dapat dengan mudah mengamankannya dalam dua langkah.
Pertama - mengenkripsi lalu lintas Galera menggunakan SSL. Dari tampilan klaster Anda, salah satu tindakan klaster adalah 'Aktifkan Enkripsi Galera SSL '. Anda akan disajikan dengan opsi berikut:
Jika Anda tidak memiliki sertifikat, Anda dapat membuatnya di sini. Tetapi jika Anda sudah membuat atau mengimpor sertifikat SSL, Anda seharusnya dapat melihatnya di daftar dan menggunakannya untuk mengenkripsi lalu lintas replikasi Galera. Harap diingat bahwa operasi ini memerlukan restart cluster - semua node harus berhenti pada saat yang sama, menerapkan perubahan konfigurasi dan kemudian restart. Sebelum melanjutkan di sini, pastikan Anda siap menghadapi waktu henti saat klaster dimulai ulang.
Setelah lalu lintas intra-cluster diamankan, kami ingin mencakup koneksi klien-server. Untuk melakukannya, pilih ‘Aktifkan Enkripsi SSL ' dan Anda akan melihat dialog berikut:
Ini sangat mirip - Anda dapat memilih sertifikat yang ada atau membuat yang baru. Perbedaan utama adalah bahwa untuk menerapkan enkripsi client-server, waktu henti tidak diperlukan - restart bergulir sudah cukup. Setelah dimulai ulang, Anda akan menemukan ikon kunci tepat di bawah host terenkripsi di Ringkasan halaman:
Label 'Galera ' berarti enkripsi Galera diaktifkan, sedangkan 'SSL ' berarti enkripsi client-server diaktifkan untuk host tertentu.
Tentu saja, mengaktifkan SSL pada database tidak cukup - Anda harus menyalin sertifikat ke klien yang seharusnya menggunakan SSL untuk terhubung ke database. Semua sertifikat dapat ditemukan di direktori /var/lib/cmon/ca pada node ClusterControl. Anda juga harus ingat untuk mengubah hibah untuk pengguna dan pastikan Anda telah menambahkan REQUIRE SSL kepada mereka jika Anda hanya ingin menerapkan koneksi yang aman.
Kami harap Anda akan menemukan opsi tersebut mudah digunakan dan membantu Anda mengamankan lingkungan MySQL Anda. Jika Anda memiliki pertanyaan atau saran tentang fitur ini, kami akan senang mendengar dari Anda.