Melakukan otorisasi dengan sertifikat SSL/TLS

Halaman ini menjelaskan cara Cloud SQL menggunakan sertifikat Secure Socket Layer (SSL)/Transport Layer Security(TLS) yang dikelola sendiri untuk terhubung dengan aman ke instance Cloud SQL.

Ringkasan

Cloud SQL mendukung koneksi ke instance menggunakan protokol Transport Layer Security (SSL/TLS). Data dalam pengiriman di dalam batas fisik yang dikontrol oleh atau atas nama Google umumnya diautentikasi, tetapi mungkin tidak dienkripsi secara default. Jika terhubung ke instance menggunakan alamat IP publiknya, Anda harus menerapkan sertifikat SSL/TLS agar data aman selama transmisi. SSL/TLS adalah protokol standar untuk enkripsi data yang dikirim melalui internet. Jika data Anda tidak dienkripsi, siapa pun dapat memeriksa paket Anda dan membaca informasi rahasia.

Metode enkripsi yang paling aman disebut kriptografi asimetris; dibutuhkan dua kunci kriptografis, satu publik dan satu pribadi. Pada dasarnya, Anda menggunakan kunci publik untuk mengenkripsi data, dan menggunakan kunci pribadi untuk mendekripsinya. Server dan komputer klien memiliki set kunci klien yang sama.

Di Cloud SQL, kunci publik diberi nama client-cert.pem dan kunci pribadi diberi nama client-key.pem. Server juga menghasilkan sertifikatnya sendiri, yang disebut server-ca.pem.

Aplikasi Anda memerlukan ketiga kunci agar berhasil terhubung. Simpan kunci ini dengan aman; siapa pun yang memiliki akses ke kunci ini dapat menghubungkan atau mencegat data Anda. Anda tidak dapat mengambil kunci pribadi dari server nanti. Jadi, jika kunci pribadi hilang, Anda harus membuat sertifikat klien baru untuk mengganti sertifikat yang sebelumnya digunakan. Demikian pula, saat server membuat file server-ca.pem baru, Anda harus mendownloadnya dan menyimpannya di mesin host klien MySQL, yang akan menggantikan file yang sudah ada.

Sertifikat SSL/TLS

Sertifikat Certificate Authority (CA) server diperlukan dalam koneksi SSL. Cloud SQL membuat sertifikat server secara otomatis saat Anda membuat instance. Selama sertifikat server valid, Anda tidak perlu mengelola sertifikat server secara aktif. Namun, sertifikat tersebut memiliki tenggat masa berlaku selama 10 tahun; setelah tenggat tersebut, sertifikat tidak lagi valid, dan klien tidak dapat membuat koneksi yang aman ke instance Anda menggunakan sertifikat tersebut. Anda juga dapat membuat yang baru secara manual.

Anda membuat sertifikat klien sendiri. Ada batas 10 sertifikat klien per instance Cloud SQL.

Cara kerja rotasi sertifikat server

Cloud SQL menyediakan cara untuk merotasi sertifikat server Anda, sehingga sertifikat baru dapat ditukar dengan lancar sebelum sertifikat lama berakhir. expires.

Sekitar tiga bulan sebelum masa berlaku sertifikat server untuk instance Cloud SQL berakhir, pemilik project akan menerima email dari Cloud SQL, yang menyatakan bahwa proses rotasi sertifikat untuk instance tersebut telah dimulai. Email tersebut memberikan nama instance, dan mengatakan bahwa Cloud SQL telah menambahkan sertifikat server baru ke project. Sertifikat server yang ada terus berfungsi secara normal. Akibatnya, instance memiliki dua sertifikat server selama periode ini.

Sebelum masa berlaku sertifikat saat ini berakhir, download file server-ca.pem baru, yang berisi informasi sertifikat untuk sertifikat server saat ini dan sertifikat server yang baru. Update klien MySQL Anda untuk menggunakan file baru, dengan menyalinnya ke semua mesin host klien MySQL Anda, sehingga file yang sudah ada akan diganti.

Setelah semua klien MySQL Anda diupdate, kirim perintah ke instance Cloud SQL untuk merotasi ke sertifikat server yang baru. Setelah selesai, sertifikat server lama tidak akan lagi dikenali, dan hanya sertifikat server baru yang dapat digunakan.

Sertifikat klien tidak terpengaruh oleh rotasi sertifikat server.

Menerapkan enkripsi SSL/TLS

Dengan mengonfigurasi instance Cloud SQL agar dapat menerima koneksi SSL/TLS, koneksi SSL/TLS untuk instance akan aktif, namun koneksi yang tidak dienkripsi dan tidak aman tetap diterima. Jika Anda tidak mewajibkan SSL/TLS untuk semua koneksi, koneksi yang tidak dienkripsi tetap diizinkan. Oleh karena itu, jika Anda mengakses instance menggunakan IP publik, sebaiknya terapkan SSL untuk semua koneksi.

Setelan pengguna per akun dapat mengganti setelan global yang diaktifkan atau dinonaktifkan dengan menerapkan SSL. Status SSL akun pengguna ditunjukkan di kolom ssl_type pada tabel mysql.user. Untuk informasi selengkapnya, lihat Mengonfigurasi MySQL untuk menggunakan koneksi terenkripsi.

Gunakan jaringan yang resmi

Jika instance Cloud SQL Anda menggunakan alamat IP publik, Anda harus menambahkan alamat IP klien MySQL sebagai jaringan yang resmi saat mengonfigurasi SSL/TLS.

Dalam kasus ini, klien MySQL hanya diizinkan untuk terhubung jika alamat IP mereka ditambahkan ke daftar ini. Alamat IP dapat dibatasi pada satu endpoint atau terdiri dari rentang dalam format CIDR. Misalnya: 10.50.51.3 atau 10.50.51.0/26.

Masa berlaku sertifikat SSL berakhir

Sertifikat SSL yang terkait dengan instance Cloud SQL memiliki masa berlaku selama 10 tahun. Saat masa berlaku habis, lakukan rotasi sertifikat SSL. Anda juga dapat mereset konfigurasi SSL instance Cloud SQL Anda kapan saja.

Langkah selanjutnya