Halaman ini menjelaskan cara menggunakan Secure Socket Layer (SSL), yang kini disebut Transport Layer Security (TLS), dari aplikasi Anda untuk mengenkripsi koneksi ke instance Cloud SQL.
Ringkasan
Cloud SQL mendukung koneksi ke instance menggunakan protokol SSL/TLS. Koneksi SSL/TLS memberikan lapisan keamanan dengan mengenkripsi data dalam transit antara klien Anda dan database di instance Cloud SQL. Secara opsional, koneksi SSL/TLS dapat melakukan verifikasi identitas server dengan memvalidasi sertifikat server yang diinstal pada instance Cloud SQL dan verifikasi identitas klien dengan memvalidasi sertifikat klien yang diinstal pada klien.
Sertifikat Server
Saat Anda membuat instance, Cloud SQL akan otomatis membuat dan menginstal sertifikat server yang ditandatangani oleh certificate authority (CA). Anda dapat mendownload sertifikat CA ke mesin host klien dan menggunakannya untuk memverifikasi identitas CA dan server Cloud SQL. Secara opsional, Anda dapat memilih jenis CA yang digunakan Cloud SQL untuk menandatangani sertifikat server.
Hierarki certificate authority (CA)
Bagian ini menjelaskan tiga jenis certificate authority (CA) server yang dapat Anda pilih untuk instance Cloud SQL. Anda memiliki tiga opsi:
CA per instance: dengan opsi ini, CA internal yang didedikasikan untuk setiap instance Cloud SQL akan menandatangani sertifikat server untuk instance tersebut. Cloud SQL membuat dan mengelola CA ini. Untuk memilih CA per instance, pilih Google managed internal certificate authority (Google Cloud konsol) atau tentukan
GOOGLE_MANAGED_INTERNAL_CAuntuk setelanserverCaMode(Cloud SQL Admin API) atau flag--server-ca-mode(gcloud CLI) saat Anda membuat instance. Jika Anda tidak menentukan setelan atau flag saat membuat instance, opsi ini akan menjadi nilai default untuk instance tersebut. Anda tidak dapat mengupdate instance untuk menggunakan opsi CA per instance jika instance tersebut dikonfigurasi untuk menggunakan CA bersama atau CA yang dikelola pelanggan.CA bersama: dengan opsi ini, hierarki CA yang terdiri dari CA root dan CA server subordinat akan digunakan. CA server subordinat di region akan menandatangani sertifikat server dan dibagikan di seluruh instance di region tersebut. Menggunakan hierarki CA bersama akan bermanfaat saat Anda meningkatkan jumlah instance di region karena Anda tidak perlu mengelola CA unik untuk setiap instance. Dengan beralih ke CA bersama (
GOOGLE_MANAGED_CAS_CA), Anda dapat menggunakan satu paket CA regional untuk semua instance di region tersebut, yang dapat menyederhanakan konfigurasi sisi klien. Cloud SQL menghosting dan mengelola CA root dan CA server subordinat di Google Cloud Certificate Authority Service (CA Service). Cloud SQL juga menangani rotasi CA root dan CA server subordinat serta menyediakan link yang tersedia secara publik untuk mendownload paket sertifikat CA. Untuk memilih CA bersama, pilih Google managed CAS certificate authority di Google Cloud konsol atau tentukanGOOGLE_MANAGED_CAS_CAuntuk setelanserverCaMode(Cloud SQL Admin API) atau flag--server-ca-mode(gcloud CLI) saat Anda membuat atau mengedit instance. Anda dapat mengupdate instance yang ada untuk menggunakan hierarki CA bersama jika Anda menggunakan opsi CA per instance atau CA yang dikelola pelanggan.CA yang dikelola pelanggan: dengan opsi ini, Anda membuat dan mengelola hierarki CA Anda sendiri. Pilih opsi ini jika Anda ingin mengelola CA dan sertifikat Anda sendiri. Dengan menggunakan CA yang dikelola pelanggan (
CUSTOMER_MANAGED_CAS_CA), Anda dapat mengelola hierarki CA dan kebijakan rotasi Anda sendiri dengan CA Service. Konfigurasi ini memberi Anda kontrol yang lebih besar dan membantu Anda memenuhi persyaratan kepatuhan. Untuk memilih CA yang dikelola pelanggan, Anda harus membuat CA pool dan CA di CA Service. Di Cloud SQL, tentukan CA pool dan Customer managed CAS certificate authority (Google Cloud konsol),CUSTOMER_MANAGED_CAS_CAuntuk setelanserverCaMode(Cloud SQL Admin API), atau flag--server-ca-mode(gcloud CLI) saat Anda membuat atau mengedit instance. Anda dapat mengupdate instance yang ada untuk menggunakan hierarki CA yang dikelola pelanggan jika Anda menggunakan opsi CA per instance atau CA bersama.
Setelah membuat atau mengupdate instance, Anda dapat melihat hierarki CA mana yang dikonfigurasi untuk
instance Cloud SQL menggunakan perintah gcloud sql instances describe atau di Google Cloud konsol.
Untuk mengetahui informasi selengkapnya, lihat Melihat informasi instance.
Tabel berikut membandingkan tiga opsi hierarki CA.
| Fitur | CA per instance | CA bersama | CA yang dikelola pelanggan |
|---|---|---|---|
| Struktur CA | CA terpisah untuk setiap instance | CA root dan CA subordinat yang dibagikan di seluruh instance di region yang sama | Hierarki CA yang Anda buat dan kelola |
| Atribut kriptografi | Kunci RSA 2048-bit dengan algoritma SHA256 | Elliptic Curve Digital Signature Algorithm (ECDSA) dengan kunci 256-bit dengan algoritma SHA384 | Elliptic Curve Digital Signature Algorithm (ECDSA) dengan kunci 256-bit dengan algoritma SHA384 |
| Periode validitas CA | 10 tahun | 25 tahun untuk CA root dan 10 tahun untuk CA subordinat | Dapat dikonfigurasi * |
| Periode validitas sertifikat server | 10 tahun | 1 tahun | 1 tahun** |
| Rotasi CA yang dimulai pengguna? | Ya | Tidak. Rotasi CA dikelola oleh Cloud SQL | Ya |
| Rotasi sertifikat server yang dimulai pengguna? | Ya | Ya | Ya |
| Rotasi sertifikat server otomatis? | Tidak | Ya | Ya |
| Trust anchor CA untuk koneksi TLS | CA per instance yang unik adalah trust anchor untuk instance yang sesuai. | CA root dan CA subordinat adalah trust anchor untuk semua instance di region tertentu. | CA yang Anda buat dan kelola adalah trust anchor. |
| Verifikasi identitas server | Memverifikasi CA akan memverifikasi identitas server karena setiap instance memiliki CA yang unik. | Memverifikasi nama host bersama dengan memverifikasi CA diperlukan untuk verifikasi identitas server karena CA server dibagikan di seluruh instance. | Meskipun CA mungkin tidak dibagikan di seluruh instance, Anda mungkin ingin memverifikasi nama host bersama dengan memverifikasi CA. |
| Kolom Nama Alternatif Subjek (SAN) dalam sertifikat server | Kolom SAN hanya berisi nama host (nama DNS instance) untuk instance yang mengaktifkan Private Service Connect. Nama host dapat digunakan untuk verifikasi identitas server verifikasi. Jika Anda terhubung ke instance Cloud SQL menggunakan nama DNS sebagai nama host, Anda harus menyiapkan resolusi DNS. | Kolom SAN berisi nama host (nama DNS instance) untuk semua jenis instance. Nama host dapat digunakan untuk verifikasi identitas server. Jika Anda terhubung ke instance Cloud SQL menggunakan nama DNS sebagai nama host, Anda harus menyiapkan resolusi DNS. | Kolom SAN berisi nama host (nama DNS instance) untuk semua jenis instance. Nama host dapat digunakan untuk verifikasi identitas server. |
| Dukungan versi Proxy Auth Cloud SQL | Mendukung semua versi Proxy Auth Cloud SQL, v1 dan yang lebih baru. | Memerlukan Proxy Auth Cloud SQL versi 2.13.0 atau yang lebih baru. | Memerlukan Proxy Auth Cloud SQL versi 2.14.3 atau yang lebih baru. |
| Batasan koneksi layanan | Tidak ada |
Tidak mendukung koneksi dari layanan berikut Google Cloud
services:
|
Tidak mendukung koneksi dari layanan berikut Google Cloud
services:
|
* Untuk opsi CA yang dikelola pelanggan, periode validitas default sertifikat CA di CA Service adalah 10 tahun. Anda memiliki opsi untuk mengonfigurasi periode validitas yang berbeda untuk sertifikat CA Anda. Periode validitas yang lebih singkat untuk CA mungkin memerlukan rotasi CA yang lebih sering dan periode validitas yang lebih singkat dari satu tahun dapat memengaruhi periode validitas sertifikat server Anda. Untuk mengetahui informasi selengkapnya, lihat Mengelola rotasi CA.
** Untuk opsi CA yang dikelola pelanggan, periode validitas default sertifikat server adalah satu tahun. Namun, jika Anda mengonfigurasi periode validitas yang lebih singkat dari satu tahun untuk sertifikat CA, sertifikat server Anda akan memiliki periode validitas yang lebih singkat. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi periode validitas sertifikat CA Anda saat pembuatan, lihat Setelan sertifikat CA dan Membuat CA root.
CA per instance yang dihosting oleh Cloud SQL
Hierarki CA per instance adalah konfigurasi mode CA server default saat Anda membuat instance menggunakan gcloud CLI, Cloud SQL Admin API, atau Terraform.
Cloud SQL membuat CA server yang ditandatangani sendiri untuk setiap instance saat Anda membuat instance.
Untuk menggunakan setelan ini, konfigurasikan serverCaMode ke GOOGLE_MANAGED_INTERNAL_CA saat Anda membuat instance.
Anda dapat membiarkan setelan konfigurasi serverCaMode
tidak ditentukan menggunakan Cloud SQL Admin API atau gcloud CLI,
atau memilih opsi Google internal Certificate Authority di
konsol. Google Cloud
Anda tidak dapat mengupdate serverCaMode instance yang menggunakan hierarki CA bersama atau CA yang dikelola pelanggan untuk menggunakan hierarki CA per instance.
Diagram berikut menunjukkan hierarki CA per instance.
CA bersama yang dihosting oleh CA Service
Mode CA server ini terdiri dari CA root dan CA server subordinat di setiap region. CA server subordinat menerbitkan sertifikat server dan dibagikan di seluruh instance di region tersebut. Cloud SQL menangani rotasi CA server regional bersama dan menyediakan link yang tersedia secara publik untuk mendownload paket sertifikat CA.
Saat Anda menggunakan mode CA bersama, klien database Anda harus memercayai CA root dan CA subordinat yang menerbitkan sertifikat server untuk instance Anda.Untuk memercayai CA root dan CA subordinat untuk instance Anda, lakukan salah satu opsi berikut:
- Download paket
global.pembundle untuk memercayai CA root dan semua CA subordinatnya. - Download paket regional
untuk lokasi regional instance Anda guna memercayai CA root dan CA subordinat
untuk region tersebut.
Misalnya, jika instance Anda berada di region
asia-east1, download paketasia-east1.pemtersebut. - Download
server-ca.pemuntuk instance Anda guna memercayai CA root dan CA subordinat yang menerbitkan sertifikat server untuk instance Anda.
Anda dapat mengonfigurasi instance untuk menggunakan hierarki CA server tempat CA penerbit dibagikan di seluruh instance di region yang sama. Untuk menggunakan setelan ini, konfigurasikan serverCaMode ke GOOGLE_MANAGED_CAS_CA saat Anda membuat atau mengedit instance.
Anda juga dapat memilih
Google Managed CAS Certificate Authority di Google Cloud konsol.
Diagram berikut menunjukkan hierarki CA bersama.
CA yang dikelola pelanggan
Mode CA server ini memungkinkan Anda menyiapkan hierarki CA Anda sendiri di CA Service.
Untuk menggunakan opsi CA yang dikelola pelanggan di Cloud SQL, Anda membuat CA pool di region yang sama dengan instance Cloud SQL Anda. Kemudian, Anda membuat setidaknya satu CA.
Saat Anda membuat instance Cloud SQL, tentukan ID CA pool di kolom serverCaPool dan konfigurasikan kolom serverCaMode dengan nilai CUSTOMER_MANAGED_CAS_CA.
CA Service menyediakan CA dari CA pool dan menggunakan CA tersebut untuk menerbitkan sertifikat server untuk instance.
Saat Anda membuat CA di CA Service, Anda dapat membuat CA root atau CA subordinat, bergantung pada kasus penggunaan Anda. Misalnya, Anda mungkin ingin membuat CA subordinat jika berencana menyiapkan hierarki CA root atau terhubung ke CA eksternal.
Pilih opsi CA yang dikelola pelanggan hanya jika Anda ingin mengelola CA dan sertifikat Anda sendiri. Untuk mengetahui informasi selengkapnya, lihat Menggunakan CA yang dikelola pelanggan.
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.
Instance yang menggunakan hierarki CA bersama atau CA yang dikelola pelanggan dapat mengaktifkan rotasi sertifikat server otomatis untuk dijalankan selama update pemeliharaan hingga 180 hari sebelum masa berlaku habis.
Untuk instance yang menggunakan hierarki CA per instance, CA bersama, atau CA yang dikelola pelanggan, 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.
Perintah rotasi sertifikat server yang akan digunakan bergantung pada apakah Anda menggunakan sertifikat server yang dikeluarkan oleh CA per instance atau sertifikat server yang dikeluarkan oleh CA bersama atau CA yang dikelola pelanggan.
Sebelum masa berlaku sertifikat server 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 SQL Server Anda untuk menggunakan file baru, dengan menyalinnya ke semua mesin host klien SQL Server Anda, yang akan menggantikan file yang sudah ada.
Setelah semua klien SQL Server Anda diupdate, kirim perintah rotasi (untuk CA per instance) atau perintah rotasi (untuk CA bersama atau CA yang dikelola pelanggan) ke instance Cloud SQL untuk merotasi sertifikat server yang baru. Setelah selesai, sertifikat server lama tidak akan lagi dikenali, dan hanya sertifikat server baru yang dapat digunakan.
Masa berlaku sertifikat SSL telah berakhir
Untuk instance Cloud SQL yang menggunakan CA per instance (serverCaMode ditetapkan ke GOOGLE_MANAGED_INTERNAL_CA), sertifikat SSL memiliki masa berlaku selama 10 tahun. Sebelum masa berlaku sertifikat ini
berakhir, lakukan rotasi sertifikat CA server.
Untuk instance yang menggunakan CA bersama (serverCaMode ditetapkan ke GOOGLE_MANAGED_CAS_CA), periode masa berlaku sertifikat server adalah 1 tahun.
Sebelum masa berlaku habis, lakukan rotasi sertifikat server atau aktifkan rotasi sertifikat server otomatis.
Sertifikat root certificate authority (CA) memiliki masa berlaku 25 tahun dan sertifikat CA bersama subordinat memiliki masa berlaku 10 tahun.
Cloud SQL menangani rotasinya.
Jika Anda menggunakan CA yang dikelola pelanggan (serverCaMode ditetapkan ke CUSTOMER_MANAGED_CAS_CA), Anda dapat melakukan rotasi sertifikat CA dengan merotasi CA di CA pool yang Anda buat. Periode masa berlaku CA biasanya 10 tahun, tetapi Anda dapat mengonfigurasi periode validitas yang lebih singkat untuk CA Anda di CA Service.
Untuk merotasi CA, gunakan proses rotasi CA di CA Service. Untuk mengetahui informasi selengkapnya, lihat Mengelola rotasi CA.
Jika klien dikonfigurasi untuk memverifikasi CA atau memverifikasi nama host dalam sertifikat server, koneksi klien tersebut ke instance Cloud SQL dengan sertifikat server yang masa berlakunya habis akan gagal. Untuk mencegah gangguan pada koneksi klien, rotasi sertifikat server sebelum masa berlaku sertifikat habis.
Baik Anda menggunakan mode server CA per instance, CA bersama, atau CA yang dikelola pelanggan, Anda dapat mereset konfigurasi SSL instance Cloud SQL Anda kapan saja.
Batasan
Bagian ini membahas batasan dengan konfigurasi sertifikat SSL/TLS dan Cloud SQL.
Batasan koneksi layanan
- Jika instance Anda menggunakan opsi CA bersama (
GOOGLE_MANAGED_CAS_CA) atau CA yang dikelola pelanggan (CUSTOMER_MANAGED_CAS_CA) untuk konfigurasiserverCaMode, instance tersebut tidak dapat mendukung koneksi dari layanan berikut Google Cloud :- Lingkungan standar App Engine
- Lingkungan fleksibel App Engine
- Layanan Cloud Run yang berjalan di lingkungan eksekusi generasi pertama
Langkah berikutnya
Konfigurasikan SSL/TLS pada instance Cloud SQL.
Pelajari lebih lanjut cara penanganan enkripsi di Google Cloud.
- Pelajari lebih lanjut cara SQL Server menggunakan koneksi terenkripsi.
- Kelola SSL/TLS di instance Cloud SQL Anda.