Melakukan otorisasi dengan sertifikat SSL/TLS

Halaman ini menjelaskan cara Anda dapat menggunakan Secure Socket Layer (SSL), yang kini menjadi 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 dan database di instance Cloud SQL Anda. Secara opsional, koneksi SSL/TLS Anda dapat melakukan verifikasi identitas server dengan memvalidasi sertifikat server yang diinstal di instance Cloud SQL dan verifikasi identitas klien dengan memvalidasi sertifikat klien yang diinstal di klien.

Sertifikat Server

Saat Anda membuat instance, Cloud SQL akan otomatis membuat dan menginstal sertifikat server yang ditandatangani oleh otoritas sertifikat (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.

Sertifikat klien

Secara opsional, Anda dapat membuat dan mendownload sertifikat klien bersama dengan kunci ke mesin host klien untuk autentikasi timbal balik (verifikasi identitas server dan klien). Anda tidak dapat memilih jenis CA yang digunakan Cloud SQL untuk menandatangani sertifikat klien.

Menghubungkan menggunakan SSL/TLS

Saat terhubung ke instance Cloud SQL dari klien, Anda dapat menggunakan SSL/TLS untuk koneksi langsung serta untuk koneksi yang menggunakan Proxy Auth Cloud SQL atau Cloud SQL Language Connectors.

  • Untuk koneksi langsung, Google sangat merekomendasikan penerapan enkripsi SSL/TLS menggunakan setelan mode SSL di Cloud SQL. Secara opsional, Anda juga dapat menerapkan verifikasi sertifikat klien. Untuk mengetahui informasi selengkapnya, lihat artikel Menerapkan enkripsi SSL/TLS.

  • Untuk koneksi yang menggunakan Proxy Auth Cloud SQL atau Konektor Bahasa Cloud SQL, koneksi secara otomatis dienkripsi dengan SSL/TLS beserta verifikasi identitas klien dan server tanpa mengharuskan Anda mendownload sertifikat CA server dan sertifikat klien.

Untuk mengetahui informasi selengkapnya tentang opsi konektivitas Cloud SQL, lihat Tentang koneksi Cloud SQL.

Untuk mengetahui informasi selengkapnya tentang konfigurasi SSL/TLS sisi klien, lihat dokumentasi untuk mesin database Anda.

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 dikhususkan untuk setiap instance Cloud SQL menandatangani sertifikat server untuk instance tersebut. Cloud SQL membuat dan mengelola CA ini. Untuk memilih CA per instance, pilih Otoritas sertifikat internal yang dikelola Google (konsolGoogle Cloud ) atau tentukan GOOGLE_MANAGED_INTERNAL_CA untuk setelan serverCaMode (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, maka opsi ini adalah nilai default untuk instance tersebut.

  • CA Bersama: dengan opsi ini, hierarki CA yang terdiri dari CA root dan CA server subordinat digunakan. CA server bawahan di region menandatangani sertifikat server dan dibagikan di seluruh instance di region. 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 ke paket sertifikat CA untuk didownload. Untuk memilih CA bersama, tentukan GOOGLE_MANAGED_CAS_CA untuk setelan serverCaMode (Cloud SQL Admin API) atau flag --server-ca-mode (gcloud CLI) saat Anda membuat instance.

  • 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. Untuk memilih CA yang dikelola pelanggan, Anda perlu membuat kumpulan CA dan CA di CA Service. Di Cloud SQL, tentukan kumpulan CA dan CUSTOMER_MANAGED_CAS_CA untuk setelan serverCaMode (Cloud SQL Admin API) atau flag --server-ca-mode (gcloud CLI) saat Anda membuat instance.

Setelah membuat instance, Anda dapat melihat hierarki CA yang dikonfigurasi untuk instance Cloud SQL menggunakan perintah gcloud sql instances describe atau di konsol Google Cloud . 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 dalam region yang sama Hirarki CA yang Anda buat dan kelola
Atribut kriptografi Kunci RSA 2048-bit dengan algoritma SHA256 Elliptic Curve Digital Signature Algorithm (ECDSA) dengan kunci 384-bit dengan algoritma SHA384 Elliptic Curve Digital Signature Algorithm (ECDSA) dengan kunci 384-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 oleh pengguna? Ya Ya Ya
Anchor kepercayaan CA untuk koneksi TLS CA per instance yang unik adalah anchor kepercayaan untuk instance yang sesuai. CA root dan CA bawahan adalah trust anchor untuk semua instance di region tertentu. CA yang Anda buat dan kelola adalah anchor kepercayaan.
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 sekaligus memverifikasi CA.
Kolom Nama Alternatif Subjek (SAN) di sertifikat server Kolom SAN hanya berisi nama host (nama DNS instance) untuk instance yang diaktifkan dengan Private Service Connect. 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. 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 Cloud SQL Auth Proxy 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 Google Cloud berikut: Tidak mendukung koneksi dari layanan Google Cloud berikut:
  • Lingkungan standar App Engine
  • Lingkungan fleksibel App Engine
  • Layanan Cloud Run yang berjalan di lingkungan eksekusi generasi pertama

* 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 CA yang lebih singkat 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, maka sertifikat server Anda 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 baru untuk setiap instance saat Anda membuat instance. Untuk menggunakan setelan ini, konfigurasi 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 Otoritas Sertifikat internal Google di konsol Google Cloud .

Diagram berikut menunjukkan hierarki CA per instance.

Diagram hierarki CA internal per instance.

CA bersama yang dihosting oleh Layanan CA

Hierarki CA bersama adalah konfigurasi mode CA server default saat Anda membuat instance menggunakan konsol Google Cloud .

Mode CA server ini terdiri dari CA root dan CA server bawahan di setiap region. CA server subordinat menerbitkan sertifikat server dan dibagikan di seluruh instance di region. Cloud SQL menangani rotasi CA server regional bersama dan menyediakan link yang tersedia secara publik untuk mendownload paket sertifikat CA.

Anda dapat mengonfigurasi instance untuk menggunakan hierarki CA server tempat CA penerbit dibagikan di seluruh instance di region yang sama. Untuk menggunakan setelan ini, konfigurasi serverCaMode ke GOOGLE_MANAGED_CAS_CA saat Anda membuat instance. Anda juga dapat memilih Otoritas Sertifikat CAS Terkelola Google di konsol Google Cloud .

Diagram berikut menunjukkan hierarki CA bersama.

Diagram hierarki CA bersama

CA yang dikelola pelanggan

Mode CA server ini memungkinkan Anda menyiapkan hierarki CA sendiri di CA Service.

Untuk menggunakan opsi CA yang dikelola pelanggan di Cloud SQL, Anda membuat kumpulan CA di region yang sama dengan instance Cloud SQL Anda. Kemudian, Anda membuat setidaknya satu CA. Saat membuat instance Cloud SQL, tentukan ID pool CA di kolom serverCaPool dan konfigurasi kolom serverCaMode dengan nilai CUSTOMER_MANAGED_CAS_CA. CA Service menyediakan CA dari kumpulan CA dan menggunakan CA tersebut untuk menerbitkan sertifikat server untuk instance.

Saat membuat CA di Layanan CA, 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 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.

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 PostgreSQL Anda untuk menggunakan file baru, dengan menyalinnya ke semua mesin host klien PostgreSQL Anda, sehingga file yang sudah ada akan diganti.

Setelah semua klien PostgreSQL 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 melakukan rotasi ke sertifikat server 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.

Masa berlaku sertifikat SSL telah berakhir

Untuk instance Cloud SQL yang menggunakan CA per instance (serverCaMode disetel ke GOOGLE_MANAGED_INTERNAL_CA), sertifikat SSL memiliki masa berlaku 10 tahun. Sebelum masa berlaku sertifikat ini berakhir, lakukan rotasi sertifikat CA server.

Untuk instance yang menggunakan CA bersama (serverCaMode disetel ke GOOGLE_MANAGED_CAS_CA), masa berlaku sertifikat server adalah 1 tahun. Sebelum masa berlaku habis, lakukan rotasi sertifikat server. Masa berlaku sertifikat root certificate authority (CA) adalah 25 tahun dan masa berlaku sertifikat CA bersama bawahan adalah 10 tahun. Cloud SQL menangani rotasinya.

Jika Anda menggunakan CA yang dikelola pelanggan (serverCaMode ditetapkan ke CUSTOMER_MANAGED_CAS_CA), maka Anda dapat melakukan rotasi sertifikat CA dengan merotasi CA di kumpulan CA yang Anda buat. Masa berlaku CA biasanya 10 tahun, tetapi Anda dapat mengonfigurasi masa berlaku yang lebih pendek untuk CA 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 di sertifikat server, maka koneksi klien tersebut ke instance Cloud SQL dengan sertifikat server yang telah habis masa berlakunya akan gagal. Untuk mencegah gangguan pada koneksi klien, rotasi sertifikat server sebelum masa berlaku sertifikat berakhir.

Baik Anda menggunakan server mode CA per instance, CA bersama, atau CA yang dikelola pelanggan, Anda dapat mereset konfigurasi SSL instance Cloud SQL Anda kapan saja.

Langkah berikutnya