Halaman ini menjelaskan cara menerapkan enkripsi SSL/TLS untuk instance guna memastikan bahwa semua koneksi dienkripsi. Anda juga dapat mempelajari lebih lanjut cara Cloud SQL menggunakan sertifikat SSL/TLS yang dikelola sendiri untuk terhubung ke instance Cloud SQL dengan aman.
Ringkasan
Cloud SQL membuat sertifikat server secara otomatis saat Anda membuat instance. Sebaiknya menerapkan semua koneksi untuk menggunakan SSL/TLS.
Untuk memvalidasi sertifikat klien dan identitas server menggunakan sertifikat SSL/TLS, Anda harus membuat sertifikat klien dan mendownload sertifikat tersebut ke mesin host klien MySQL.
Untuk MySQL 8.0 dan yang lebih baru, jika Anda mengubah mode SSL menjadi atau dari yang memerlukan sertifikat klien tepercaya (TRUSTED_CLIENT_CERTIFICATE_REQUIRED), maka
Cloud SQL akan memulai ulang instance. Perubahan mode SSL lainnya di MySQL 8.0 dan yang lebih baru, serta semua perubahan mode SSL di versi MySQL sebelumnya, tidak memerlukan mulai ulang.
Anda mungkin juga perlu memulai ulang setelah mengubah sertifikat SSL/TLS.
Jika perlu dimulai ulang, Cloud SQL akan otomatis memulai ulang instance untuk Anda.
Memulai ulang instance dapat menyebabkan periode nonaktif.
Menerapkan enkripsi SSL/TLS
Anda dapat menggunakan setelan mode SSL untuk menerapkan enkripsi SSL dengan cara berikut:
Mengizinkan koneksi non-SSL/non-TLS dan SSL/TLS. Sertifikat klien tidak diverifikasi untuk koneksi SSL/TLS. Ini adalah setelan defaultnya.
Hanya izinkan koneksi yang dienkripsi dengan SSL/TLS. Sertifikat klien tidak diverifikasi untuk koneksi SSL.
- Hanya izinkan koneksi yang dienkripsi dengan SSL/TLS dan dengan sertifikat klien yang valid.
Jika Anda memilih Izinkan koneksi non-SSL/non-TLS dan SSL/TLS untuk instance Cloud SQL, koneksi SSL/TLS akan diterima, serta koneksi yang tidak dienkripsi dan tidak aman. Jika Anda tidak mewajibkan SSL/TLS untuk semua koneksi, koneksi yang tidak dienkripsi masih diizinkan. Oleh karena itu, jika Anda mengakses instance menggunakan IP publik, sebaiknya terapkan SSL untuk semua koneksi.
Anda dapat terhubung langsung ke instance menggunakan sertifikat SSL/TLS, atau terhubung menggunakan Cloud SQL Auth Proxy atau Konektor Cloud SQL. Jika Anda terhubung menggunakan Cloud SQL Auth Proxy atau Cloud SQL Connector, koneksi akan otomatis dienkripsi dengan SSL/TLS. Dengan Proxy Auth Cloud SQL dan Cloud SQL Connector, identitas klien dan server juga diverifikasi secara otomatis, terlepas dari setelan mode SSL.
Untuk mengaktifkan requiring SSL/TLS, lakukan hal berikut:
Konsol
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Klik Connections dari menu navigasi SQL.
- Pilih tab Keamanan.
- Pilih salah satu opsi berikut:
- Allow unencrypted network traffic (not recommended)
- Hanya izinkan koneksi SSL. Opsi ini hanya mengizinkan koneksi yang menggunakan enkripsi SSL/TLS. Sertifikat tidak divalidasi.
- Wajibkan sertifikat klien tepercaya. Opsi ini hanya mengizinkan koneksi dari klien yang menggunakan sertifikat klien yang valid dan dienkripsi SSL.
gcloud
gcloud sql instances patch INSTANCE_NAME \ --ssl-mode=SSL_ENFORCEMENT_MODE
Ganti SSL_ENFORCEMENT_MODE dengan salah satu opsi berikut:
ALLOW_UNENCRYPTED_AND_ENCRYPTEDmengizinkan koneksi non-SSL/non-TLS dan SSL/TLS. Untuk koneksi SSL, sertifikat klien tidak diverifikasi. Ini adalah nilai defaultnya.ENCRYPTED_ONLYhanya mengizinkan koneksi yang dienkripsi dengan SSL/TLS. Sertifikat klien tidak diverifikasi untuk koneksi SSL.TRUSTED_CLIENT_CERTIFICATE_REQUIREDhanya mengizinkan koneksi yang dienkripsi dengan SSL/TLS dan dengan sertifikat klien yang valid.
Untuk informasi selengkapnya, lihat
Setelan untuk Cloud SQL untuk MySQL.
Terraform
Untuk menerapkan enkripsi SSL/TLS, gunakan resource Terraform:
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud , selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf—misalnyamain.tf. Dalam tutorial ini, file ini disebut sebagaimain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tfyang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:
- Untuk menonaktifkan proteksi dari penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protectionkefalse.deletion_protection = "false"
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan
memasukkan
yespada prompt:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform destroy
REST v1
-
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID
- SSL_ENFORCEMENT_MODE: Gunakan salah satu opsi berikut:
ALLOW_UNENCRYPTED_AND_ENCRYPTED: mengizinkan koneksi non-SSL/non-TLS dan SSL/TLS. Untuk koneksi SSL, sertifikat klien tidak diverifikasi. Ini adalah nilai defaultnya.ENCRYPTED_ONLY: hanya mengizinkan koneksi yang dienkripsi dengan SSL/TLS.TRUSTED_CLIENT_CERTIFICATE_REQUIRED: hanya mengizinkan koneksi yang dienkripsi dengan SSL/TLS dan dengan sertifikat klien yang valid.
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Meminta isi JSON:
{ "settings": { "ipConfiguration": {"sslMode": "SSL_ENFORCEMENT_MODE"} } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
REST v1beta4
-
Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID
- SSL_ENFORCEMENT_MODE: Gunakan salah satu opsi berikut:
ALLOW_UNENCRYPTED_AND_ENCRYPTED: mengizinkan koneksi non-SSL/non-TLS dan SSL/TLS. Untuk koneksi SSL, sertifikat klien tidak diverifikasi. Ini adalah nilai defaultnya.ENCRYPTED_ONLY: hanya mengizinkan koneksi yang dienkripsi dengan SSL/TLS.TRUSTED_CLIENT_CERTIFICATE_REQUIRED: hanya mengizinkan koneksi yang dienkripsi dengan SSL/TLS dan dengan sertifikat klien yang valid.
- INSTANCE_ID: ID instance
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Meminta isi JSON:
{ "settings": { "ipConfiguration": {"sslMode": "SSL_ENFORCEMENT_MODE"} } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Sertifikat Server
Cloud SQL membuat sertifikat server secara otomatis saat Anda membuat instance. Selama sertifikat server valid, Anda tidak perlu mengelola sertifikat server secara aktif. Cloud SQL memungkinkan Anda memilih di antara tiga hierarki certificate authority (CA) yang berbeda. Hierarki CA yang Anda pilih akan menjadi mode CA server dari instance. Jika Anda menggunakan CA per instance sebagai mode CA server untuk instance, sertifikat server memiliki tanggal habis masa berlaku selama 10 tahun. Jika Anda menggunakan CA bersama atau CA yang dikelola pelanggan sebagai mode CA server instance, sertifikat server memiliki tanggal habis masa berlaku selama 1 tahun*. Setelah tanggal habis masa berlaku, sertifikat server tidak lagi valid, dan klien tidak dapat lagi membuat koneksi yang aman ke instance Anda menggunakan sertifikat tersebut. Jika klien dikonfigurasi untuk memverifikasi CA atau memverifikasi nama host di sertifikat server, koneksi klien tersebut ke instance Cloud SQL dengan sertifikat server yang sudah tidak berlaku akan gagal. Untuk mencegah gangguan pada koneksi klien, aktifkan rotasi sertifikat server otomatis atau rotasikan sertifikat server secara manual sebelum masa berlaku sertifikat berakhir. Anda akan diberi tahu secara berkala bahwa sertifikat server hampir habis masa berlakunya. Notifikasi dikirim dalam jumlah hari sebagai berikut sebelum tanggal habis masa berlaku: 90, 30, 10, 2, dan 1.
* Untuk CA yang dikelola pelanggan, tanggal habis masa berlaku sertifikat server Anda mungkin kurang dari 1 tahun jika Anda memilih tanggal habis masa berlaku yang lebih singkat untuk masa berlaku CA Anda.
Mencantumkan dan membuat sertifikat server
Untuk melihat detail sertifikat server Anda di konsol Google Cloud , buka halaman Connections dan klik tab Security.
Dalam tabel sertifikat, Anda dapat melihat detail berikut:
- Status Sertifikat:Mendatang, Aktif, atau Sebelumnya
- Mendatang: Sertifikat tersedia untuk digunakan, tetapi tidak aktif. Untuk mengaktifkan sertifikat, gunakan prosedur rotasi.
- Aktif: Sertifikat sedang digunakan.
- Sebelumnya: Sertifikat tidak lagi digunakan. Untuk mengaktifkan sertifikat, gunakan prosedur rollback.
- Dibuat: Tanggal dan waktu sertifikat dibuat
- Expires: Tanggal dan waktu masa berlaku sertifikat habis
Sebelum masa berlaku sertifikat aktif berakhir, Anda dapat membuat sertifikat baru secara manual.
Konsol
Untuk instance yang menggunakan sertifikat server yang ditandatangani sendiri (CA per instance):
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Klik Connections dari menu navigasi SQL.
- Pilih tab Keamanan.
- Buka bagian Manage server CA certificates.
- Klik untuk meluaskan Kelola sertifikat.
- Klik Buat sertifikat CA baru.
Sertifikat CA server baru akan muncul di slot Upcoming. Jika Anda ingin segera melakukan rotasi ke sertifikat CA server baru, lanjutkan dengan rotasi sertifikat CA server dengan mengupdate klien dan menyelesaikan rotasi.
Untuk instance yang menggunakan sertifikat server yang diterbitkan oleh CA bersama:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Klik Connections dari menu navigasi SQL.
- Pilih tab Keamanan.
- Buka bagian Manage server certificates.
- Klik untuk meluaskan Kelola sertifikat.
- Klik Create server certificate.
Sertifikat server baru akan muncul di slot Mendatang. Jika Anda ingin segera menggunakan sertifikat server baru, lanjutkan dengan rotasi sertifikat server dengan mengupdate klien dan menyelesaikan rotasi.
gcloud
Untuk instance yang menggunakan sertifikat server yang ditandatangani sendiri (CA per instance):
- Untuk mendapatkan informasi tentang sertifikat server, gunakan perintah sql ssl server-ca-certs list:
gcloud sql ssl server-ca-certs list \ --instance=INSTANCE_NAME
- Untuk membuat sertifikat server, gunakan perintah sql ssl server-ca-certs create:
gcloud sql ssl server-ca-certs create \ --instance=INSTANCE_NAME
- Download informasi sertifikat ke file PEM lokal:
gcloud sql ssl server-ca-certs list \ --format="value(cert)" \ --instance=INSTANCE_NAME > \ FILE_PATH/FILE_NAME.pem
- Perbarui semua klien Anda untuk menggunakan informasi baru ini dengan
menyalin file yang didownload ke mesin host klien, menggantikan
file
server-ca.pemyang sudah ada.
Untuk instance yang menggunakan sertifikat server yang diterbitkan oleh CA bersama:
- Untuk mendapatkan informasi tentang sertifikat server, gunakan perintah sql ssl server-certs list:
gcloud sql ssl server-certs list \ --instance=INSTANCE_NAME
- Untuk membuat sertifikat server, gunakan perintah sql ssl server-certs create:
gcloud sql ssl server-certs create \ --instance=INSTANCE_NAME
- Download informasi sertifikat ke file PEM lokal:
gcloud sql ssl server-certs list \ --format="value(ca_cert.cert)" \ --instance=INSTANCE_NAME > \ FILE_PATH/FILE_NAME.pem
- Perbarui semua klien Anda untuk menggunakan informasi baru ini dengan
menyalin file yang didownload ke mesin host klien, menggantikan
file
server-ca.pemyang sudah ada.
Terraform
Untuk memberikan informasi sertifikat server sebagai output, gunakan sumber data Terraform:
- Tambahkan kode berikut ke file konfigurasi Terraform Anda:
data "google_sql_ca_certs" "ca_certs" { instance = google_sql_database_instance.default.name } locals { furthest_expiration_time = reverse(sort([for k, v in data.google_sql_ca_certs.ca_certs.certs : v.expiration_time]))[0] latest_ca_cert = [for v in data.google_sql_ca_certs.ca_certs.certs : v.cert if v.expiration_time == local.furthest_expiration_time] } output "db_latest_ca_cert" { description = "Latest CA certificate used by the primary database server" value = local.latest_ca_cert sensitive = true } - Untuk membuat file
server-ca.pem, jalankan perintah berikut:terraform output db_latest_ca_cert > server-ca.pem
Sertifikat klien
Membuat sertifikat klien baru
Anda dapat membuat hingga 10 sertifikat klien untuk setiap instance. Untuk membuat sertifikat klien, Anda harus memiliki peran IAM Cloud SQL Admin.
Berikut adalah beberapa hal penting yang perlu diketahui tentang sertifikat klien:
- Jika kunci pribadi untuk sertifikat hilang, Anda harus membuat yang baru; kunci pribadi tidak dapat dipulihkan.
- Secara default, sertifikat klien memiliki tanggal habis masa berlaku selama 10 tahun.
- Anda tidak akan menerima notifikasi saat sertifikat klien hampir habis masa berlakunya.
- Instance Cloud SQL harus dalam keadaan berjalan untuk membuat sertifikat SSL.
Konsol
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Klik Connections dari menu navigasi SQL.
- Pilih tab Security.
- Klik Create client certificate.
- Di dialog Create a client certificate, tambahkan nama yang unik.
- Klik Create.
- Di bagian pertama dialog New SSL certificate created, klik Download client-key.pem untuk mendownload kunci
pribadi ke file bernama
client-key.pem. - Di bagian kedua, klik Download client-cert.pem untuk mendownload
sertifikat klien ke file bernama
client-cert.pem. - Di bagian ketiga, klik Download server-ca.pem untuk mendownload
sertifikat server ke file bernama
server-ca.pem. - Klik Close.
gcloud
Buat sertifikat klien menggunakan perintah
ssl client-certs create:gcloud sql ssl client-certs create CERT_NAME client-key.pem \ --instance=INSTANCE_NAME
Ambil kunci publik untuk sertifikat yang baru saja Anda buat dan salin ke dalam file
client-cert.pemmenggunakan perintahssl client-certs describe:gcloud sql ssl client-certs describe CERT_NAME \ --instance=INSTANCE_NAME \ --format="value(cert)" > client-cert.pem
Salin sertifikat server ke dalam file
server-ca.pemmenggunakan perintahinstances describe:gcloud sql instances describe INSTANCE_NAME \ --format="value(serverCaCert.cert)" > server-ca.pem
Terraform
Untuk membuat sertifikat klien, gunakan resource Terraform:
REST v1
Buat sertifikat SSL/TLS, dengan memberikan nama unik untuk instance ini:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID
- instance-id: ID instance
- client-cert-name: Nama sertifikat klien
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/sslCerts
Meminta isi JSON:
{ "commonName" : "client-cert-name" }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
-
Salin semua konten sertifikat dalam tanda kutip (tetapi tidak dengan
tanda kutipnya) dari respons ke file lokal seperti berikut:
- Salin
serverCaCert.certkeserver-ca.pem. - Salin
clientCert.certkeclient-cert.pem. - Salin
certPrivateKeykeclient-key.pem.
- Salin
-
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID
- instance-id: ID instance
- activation-policy: Kebijakan aktivasi adalah SELALU atau TIDAK PERNAH
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/restart
Meminta isi JSON:
{ "settings": { "activationPolicy": "activation-policy" } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "RESTART", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Buat sertifikat SSL/TLS, dengan memberikan nama unik untuk instance ini:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID
- instance-id: ID instance
- client-cert-name: Nama sertifikat klien
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/sslCerts
Meminta isi JSON:
{ "commonName" : "client-cert-name" }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
-
Salin semua konten sertifikat dalam tanda kutip (tetapi tidak dengan
tanda kutipnya) dari respons ke file lokal seperti berikut:
- Salin
serverCaCert.certkeserver-ca.pem. - Salin
clientCert.certkeclient-cert.pem. - Salin
certPrivateKeykeclient-key.pem.
- Salin
-
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID
- instance-id: ID instance
- activation-policy: Kebijakan aktivasi adalah SELALU atau TIDAK PERNAH
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/restart
Meminta isi JSON:
{ "settings": { "activationPolicy": "activation-policy" } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-20T21:30:35.667Z", "operationType": "RESTART", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Pada tahap ini, Anda memiliki:
- Sertifikat server yang disimpan sebagai
server-ca.pem. - Public key certificate klien yang disimpan sebagai
client-cert.pem. - Kunci pribadi klien yang disimpan sebagai
client-key.pem.
Bergantung pada alat yang Anda gunakan untuk terhubung, ketiga item ini ditentukan
dengan cara yang berbeda. Misalnya, saat terhubung menggunakan klien MySQL, ketiga file
ini masing-masing adalah nilai untuk opsi perintah --ssl-ca, --ssl-cert, dan
--ssl-key. Untuk contoh koneksi
yang menggunakan klien MySQL dan SSL/TLS,
baca
Terhubung dengan Klien MySQL.
Verifikasi identitas server
Verifikasi identitas server bergantung pada konfigurasi hierarki certificate authority (CA) server instance Cloud SQL Anda.
Untuk instance yang menggunakan CA per instance, memverifikasi CA juga akan memverifikasi identitas server karena setiap instance memiliki CA yang unik. Untuk instance yang menggunakan CA bersama, verifikasi nama host beserta verifikasi CA diperlukan untuk verifikasi identitas server karena CA server dibagikan di seluruh instance.
Jika memiliki CA per instance, Anda dapat melakukan verifikasi identitas server berbasis nama DNS hanya untuk instance yang dikonfigurasi dengan Private Service Connect. Jika memiliki CA bersama, Anda dapat melakukan verifikasi identitas server berbasis nama DNS untuk semua jenis instance, yaitu Private Service Connect, akses layanan pribadi, dan instance IP publik.
Jika menggunakan CA yang dikelola pelanggan, Anda dapat memverifikasi
rantai kepercayaan CA dan melakukan verifikasi identitas server berbasis nama DNS
untuk semua jenis instance yang menggunakan
CA yang dikelola pelanggan untuk serverCAmode-nya.
Saat memilih opsi CA yang dikelola pelanggan untuk instance, Anda dapat menyisipkan nama DNS kustom di kolom SAN sertifikat server. Untuk mengetahui informasi selengkapnya, lihat Mengedit kolom SAN kustom.
Anda dapat melihat hierarki CA yang dikonfigurasi untuk instance Cloud SQL dengan melihat detail instance. Untuk mengetahui informasi selengkapnya, lihat Melihat informasi instance.
Mengaktifkan verifikasi identitas server
Jika Anda memilih CA bersama sebagai mode CA server instance Cloud SQL atau jika Anda menyiapkan nama DNS kustom menggunakan nilai SAN kustom, sebaiknya aktifkan juga verifikasi identitas server.
Instance yang menggunakan CA bersama sebagai mode CA server berisi nama DNS instance di kolom Subject Alternative Name (SAN) pada sertifikat server. Anda bisa mendapatkan nama DNS ini menggunakan API pencarian instance dan menggunakan responsnya sebagai nama host untuk verifikasi identitas server. Anda perlu menyiapkan resolusi DNS untuk nama DNS.
Untuk mengaktifkan verifikasi identitas server untuk instance yang menggunakan CA bersama, selesaikan langkah-langkah berikut:
Ambil nama DNS.
Untuk melihat informasi ringkasan tentang instance Cloud SQL, termasuk nama DNS instance tersebut, gunakan perintah
gcloud sql instances describe:gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance Cloud SQL
- PROJECT_ID: ID atau nomor project dari project Google Cloud yang berisi instance
Dalam respons, cari kolom
dnsNames:. Kolom ini dapat menampilkan beberapa nama DNS, yang memiliki format berikut:Konfigurasi jaringan Format nama DNS Level nama Private Service Connect atau Alamat IP publik INSTANCE_UID.PROJECT_DNS_LABEL.REGION_NAME.sql.goog.
Contoh:
1a23b4cd5e67.1a2b345c6d27.us-central1.sql.goog.Instance Akses layanan pribadi INSTANCE_UID.PROJECT_DNS_LABEL.REGION_NAME.sql-psa.goog.
Contoh:
1a23b4cd5e67.1a2b345c6d27.us-central1.sql-psa.goog.Instance
Buat data DNS di zona DNS. Jika Anda terhubung secara pribadi, buat data DNS di zona DNS pribadi pada jaringan Virtual Private Cloud (VPC) yang sesuai.
Saat Anda terhubung ke instance Cloud SQL untuk MySQL, konfigurasikan nama DNS sebagai nama host. Kemudian, aktifkan verifikasi identitas server di klien Anda.
Misalnya, saat menggunakan klien MySQL, tentukan flag
--ssl-mode=VERIFY_IDENTITY. Driver klien MySQL lainnya memiliki flag konfigurasi yang serupa.
Langkah berikutnya
- Kelola sertifikat SSL/TLS di instance Cloud SQL.
- Pelajari lebih lanjut cara penanganan enkripsi di Google Cloud.
- Hubungkan ke instance Cloud SQL Anda menggunakan sertifikat SSL/TLS.
- Pelajari lebih lanjut cara MySQL menggunakan SSL/TLS.