Halaman ini merangkum Cloud SQL Auth Proxy dan menjelaskan cara menggunakannya untuk membuat koneksi yang terotorisasi, terenkripsi, dan aman, ke instance Anda.
Untuk petunjuk langkah demi langkah tentang cara menggunakan Cloud SQL Auth Proxy, ikuti link di bawah ini yang cocok untuk lingkungan Anda:
- Panduan memulai menggunakan Cloud SQL Auth Proxy
- Cara untuk terhubung menggunakan Proxy Auth Cloud SQL
- Cara untuk terhubung menggunakan Cloud SQL Auth Proxy dari GKE
Anda tidak perlu menggunakan Cloud SQL Auth Proxy atau mengonfigurasi SSL untuk terhubung ke Cloud SQL dari lingkungan standar App Engine atau lingkungan fleksibel App Engine.
Manfaat Cloud SQL Auth Proxy
Cloud SQL Auth Proxy adalah konektor Cloud SQL yang memberikan akses aman ke instance Anda tanpa memerlukan Jaringan yang diizinkan atau mengonfigurasi SSL.
Cloud SQL Auth Proxy dan Konektor Cloud SQL lainnya memiliki manfaat sebagai berikut:
- Koneksi aman: Cloud SQL Auth Proxy secara otomatis mengenkripsi traffic ke dan dari database menggunakan TLS 1.3 dengan pilihan cipher yang ditentukan oleh aturan Go. Sertifikat SSL digunakan untuk memverifikasi identitas klien dan server, serta tidak bergantung pada protokol database; Anda tidak perlu mengelola sertifikat SSL.
- Otorisasi koneksi yang lebih mudah: Cloud SQL Auth Proxy menggunakan izin IAM untuk mengontrol siapa dan apa yang dapat terhubung ke instance Cloud SQL Anda. Dengan demikian, Cloud SQL Auth Proxy akan menangani autentikasi dengan Cloud SQL, sehingga tidak perlu menyediakan alamat IP statis.
- Autentikasi database IAM. Secara opsional, Proxy Auth Cloud SQL mendukung pemuatan ulang otomatis token akses OAuth 2.0. Untuk mengetahui informasi tentang fungsi ini, lihat Autentikasi database IAM Cloud SQL.
Proxy Auth Cloud SQL tidak menyediakan jalur konektivitas baru; hal ini bergantung pada konektivitas IP yang ada. Untuk terhubung ke instance Cloud SQL menggunakan IP pribadi, Cloud SQL Auth Proxy harus berada di resource yang memiliki akses ke Jaringan VPC yang sama dengan instance.
Batasan
Anda tidak dapat menggunakan Cloud SQL Auth Proxy jika Anda menggunakan akses kontekstual dan autentikasi database IAM. Saat Anda mencoba login ke instance, autentikasi IAM gagal.
Cara kerja Proxy Auth Cloud SQL
Proxy Auth Cloud SQL bekerja dengan menjalankan klien lokal di lingkungan lokal. Aplikasi Anda berkomunikasi dengan Cloud SQL Auth Proxy menggunakan protokol database standar yang digunakan oleh database Anda.
Proxy Auth Cloud SQL menggunakan tunnel yang aman untuk berkomunikasi dengan proses pendampingnya yang berjalan di server. Setiap koneksi yang dibuat melalui Proxy Auth Cloud SQL membuat satu koneksi ke instance Cloud SQL.
Saat aplikasi terhubung ke Cloud SQL Auth Proxy, aplikasi akan memeriksa apakah koneksi yang ada antara aplikasi tersebut dan instance Cloud SQL target tersedia. Jika tidak tersedia, maka koneksi akan memanggil Cloud SQL Admin API untuk mendapatkan sertifikat SSL sementara dan menggunakannya untuk terhubung ke Cloud SQL. Masa berlaku sertifikat SSL sementara akan habis dalam waktu sekitar satu jam. Cloud SQL Auth Proxy memperbarui sertifikat-sertifikat tersebut sebelum masa berlakunya habis.
Proxy Auth Cloud SQL tidak menyediakan connection pooling, tetapi dapat disambungkan dengan connection pooling lainnya untuk meningkatkan efisiensi.
Diagram berikut menunjukkan cara Proxy Auth Cloud SQL terhubung ke Cloud SQL:
Persyaratan untuk menggunakan Cloud SQL Auth Proxy
Untuk menggunakan Proxy Auth Cloud SQL, Anda harus memenuhi persyaratan berikut:
- Cloud SQL Admin API harus diaktifkan.
- Anda harus menyediakan kredensial autentikasiGoogle Cloud ke Cloud SQL Auth Proxy.
- Anda harus menyediakan akun dan sandi pengguna database yang valid ke Cloud SQL Auth Proxy.
Instance harus memilih antara memiliki alamat IPv4 publik, atau dikonfigurasi untuk menggunakan IP pribadi.
Alamat IP publik tidak perlu menjadi dapat diakses oleh alamat eksternal apa pun (IP tersebut tidak perlu ditambahkan sebagai alamat jaringan yang diotorisasi).
Jika instance Cloud SQL yang Anda hubungkan menggunakan
otoritas sertifikat (CA) bersama
untuk setelan serverCaMode-nya,
maka di sisi klien, Anda harus menggunakan Cloud SQL Auth Proxy versi 2.13.0 atau yang lebih baru.
Jika instance Cloud SQL yang Anda hubungkan menggunakan
CA yang dikelola pelanggan
untuk setelan serverCaMode-nya,
maka di sisi klien, Anda harus menggunakan Cloud SQL Auth Proxy versi 2.14.3 atau yang lebih baru.
Jika instance menggunakan CA yang dikelola pelanggan sebagai mode CA servernya, Anda dapat mengonfigurasi instance dengan nama DNS kustom. Anda memberikan nama DNS kustom di kolom nama alternatif subjek (SAN) kustom pada sertifikat server.
Setelah menyiapkan nama DNS kustom untuk instance, Anda dapat terhubung ke instance dari Cloud SQL Language Connectors menggunakan nama DNS.
Download dan instal Cloud SQL Auth Proxy
Sebelum memulai, Anda harus menentukan arsitektur komputer Anda.
Jika berjalan di Linux atau Mac, Anda dapat menemukannya dengan menjalankan perintah berikut:
uname -a
Linux 64 bit
- Download Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.amd64
- Buat Cloud SQL Auth Proxy agar dapat dieksekusi:
chmod +x cloud-sql-proxy
Linux 32 bit
- Download Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.386
- Jika perintah
curltidak ditemukan, jalankansudo apt install curldan ulangi perintah download. - Buat Cloud SQL Auth Proxy agar dapat dieksekusi:
chmod +x cloud-sql-proxy
macOS 64-bit
- Download Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.darwin.amd64
- Buat Cloud SQL Auth Proxy agar dapat dieksekusi:
chmod +x cloud-sql-proxy
Mac M1
- Download Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.darwin.arm64
- Buat Cloud SQL Auth Proxy agar dapat dieksekusi:
chmod +x cloud-sql-proxy
Windows 64 bit
Klik kanan https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x64.exe dan pilih Simpan Link Sebagai untuk mendownload Cloud SQL Auth Proxy. Ganti nama file menjadicloud-sql-proxy.exe.
Windows 32 bit
Klik kanan https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x86.exe dan pilih Simpan Link Sebagai untuk mendownload Cloud SQL Auth Proxy. Ganti nama file menjadicloud-sql-proxy.exe.
Image Docker Cloud SQL Auth Proxy
Cloud SQL Auth Proxy memiliki image container yang berbeda, seperti distroless, alpine, dan buster. Image container Cloud SQL Auth Proxy default menggunakan
distroless, yang
tidak berisi shell. Jika Anda memerlukan shell atau alat terkait, download image berdasarkan alpine atau buster.
Untuk mengetahui informasi selengkapnya, lihat
Image Container Cloud SQL Auth Proxy.
Anda dapat menarik image terbaru ke mesin lokal menggunakan Docker dengan perintah berikut:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2
OS Lainnya
Untuk sistem operasi lain yang tidak disertakan di sini, Anda dapat mengompilasi Cloud SQL Auth Proxy dari sumber.Opsi startup Proxy Auth Cloud SQL
Saat memulai Cloud SQL Auth Proxy, Anda memberinya informasi berikut:
- Instance Cloud SQL mana saja yang akan dihubungkan
- Di mana proxy akan me-listen data yang datang dari aplikasi Anda, yang kemudian akan dikirim ke Cloud SQL
- Di mana tempat Proxy Auth Cloud SQL akan menemukan kredensial yang digunakan untuk mengautentikasi aplikasi Anda ke Cloud SQL
- Jika diperlukan, jenis alamat IP yang mana yang akan digunakan.
Berbagai opsi startup Proxy Auth Cloud SQL yang Anda berikan, menentukan apakah proxy tersebut akan me-listen di sebuah port TCP
atau di soket Unix. Jika me-listen di soket Unix, maka proxy tersebut akan membuat
soket di lokasi yang Anda pilih; biasanya di direktori /cloudsql/.
Untuk TCP, Proxy Auth Cloud SQL akan me-listen di localhost secara default.
Jalankan file cloud-sql-proxy yang dapat dieksekusi dengan argumen --help untuk
melihat daftar lengkap opsi startup.
Anda dapat menginstal Proxy Auth Cloud SQL di mana saja di lingkungan lokal Anda. Lokasi biner Proxy Auth Cloud SQL tidak akan memengaruhi lewat mana proxy tersebut akan me-listen data dari aplikasi Anda.
Untuk mengetahui informasi selengkapnya tentang cara memulai Cloud SQL Auth Proxy, lihat Memulai Cloud SQL Auth Proxy.
Menggunakan akun layanan untuk autentikasi
Proxy Auth Cloud SQL perlu berautentikasi sebagai identitas IAM Cloud SQL untuk mengizinkan koneksi Anda ke instance Cloud SQL.
Keuntungan menggunakan akun layanan untuk tujuan ini adalah Anda dapat membuat file kredensial yang dikhususkan untuk Cloud SQL Auth Proxy, dan akan secara eksplisit serta permanen tertaut ke Cloud SQL Auth Proxy selama proxy tersebut berjalan. Oleh karena itu, menggunakan akun layanan adalah metode yang direkomendasikan untuk instance produksi yang tidak berjalan di instance Compute Engine.
File kredensial dapat diduplikasi dalam image sistem jika Anda perlu memanggil Cloud SQL Auth Proxy dari beberapa mesin.
Untuk menggunakan metode ini, Anda harus membuat dan mengelola file kredensial tersebut. Hanya pengguna
dengan izin resourcemanager.projects.setIamPolicy
(seperti project owner) yang dapat membuat akun layanan. Jika pengguna
Google Cloud Anda tidak memiliki izin ini, Anda harus meminta orang lain
untuk membuatkan akun layanan Anda, atau gunakan metode lain untuk
mengautentikasi Cloud SQL Auth Proxy.
Pelajari cara Membuat akun layanan.
Izin yang diperlukan untuk akun layanan
Jika Anda menggunakan akun layanan untuk menyediakan kredensial untuk Cloud SQL Auth Proxy, Anda harus membuatnya menggunakan izin yang tepat. Jika Anda menggunakan peran
Identity Access and Management (IAM) yang lebih detail untuk mengelola izin Cloud SQL,
maka Anda harus memberi akun layanan tersebut sebuah peran yang
mencakup izin cloudsql.instances.connect. Beberapa peran Cloud SQL bawaan
yang mencakup izin ini adalah:
- Cloud SQL Client
- Cloud SQL Editor
- Cloud SQL Admin
Jika Anda menggunakan peran project lama (Viewer, Editor, Owner), maka akun layanan setidaknya harus memiliki peran Editor.
Menjaga agar Cloud SQL Auth Proxy tetap terbaru
Google sewaktu-waktu merilis versi baru Proxy Auth Cloud SQL. Anda dapat melihat versi terkini dengan mengunjungi halaman rilis GitHub Proxy Auth Cloud SQL.
Penggunaan API
Cloud SQL Auth Proxy mengeluarkan permintaan ke Cloud SQL Admin API. Tiap permintaan yang keluar akan mengurangi kuota API project Anda.
Penggunaan API tertinggi terjadi saat Anda memulai Proxy Auth Cloud SQL. Saat berjalan, Proxy Auth Cloud SQL mengeluarkan 2 panggilan API per jam per instance yang terhubung.
Parameter dan flag Cloud SQL Auth Proxy
Proxy Auth Cloud SQL akan menerima beberapa flag dan parameter saat proxy tersebut dimulai. Berbagai opsi tersebut akan menentukan di mana dan bagaimana Proxy Auth Cloud SQL membuat soket yang digunakannya untuk berkomunikasi dengan Cloud SQL, serta bagaimana proxy tersebut berautentikasi.
Untuk mendapatkan bantuan terkait opsi Cloud SQL Auth Proxy, baca informasi di bawah ini:
- Opsi untuk mengautentikasi Cloud SQL Auth Proxy
- Contoh pemanggilan Cloud SQL Auth Proxy
- Halaman GitHub Cloud SQL Auth Proxy
- Bantuan Cloud SQL Auth Proxy, ditampilkan dengan
./cloud-sql-proxy --help
Menggunakan Cloud SQL Auth Proxy di lingkungan produksi
Saat Anda menggunakan Cloud SQL Auth Proxy di lingkungan produksi, ada beberapa langkah yang dapat Anda lakukan untuk memastikan bahwa Cloud SQL Auth Proxy tersebut menyediakan ketersediaan yang diperlukan untuk aplikasi Anda.
Memastikan Proxy Auth Cloud SQL dijalankan sebagai layanan tetap
Jika proses Cloud SQL Auth Proxy terhenti, maka semua koneksi yang ada di dalamnya akan terputus, dan aplikasi Anda tidak dapat membuat koneksi lagi ke instance Cloud SQL dengan Cloud SQL Auth Proxy. Untuk mencegah skenario ini, pastikan untuk
menjalankan Cloud SQL Auth Proxy sebagai layanan tetap, sehingga jika Cloud SQL Auth Proxy berhenti karena
alasan apa pun, layanan tersebut akan otomatis dimulai ulang. Ini dapat dilakukan dengan menggunakan
layanan seperti systemd, upstart, atau supervisor. Untuk sistem operasi Windows, jalankan Cloud SQL Auth Proxy sebagai Layanan Windows. Secara umum, pastikan Proxy Auth Cloud SQL memiliki
target waktu beroperasi yang sama dengan proses aplikasi Anda.
Berapa jumlah salinan Proxy Auth Cloud SQL yang dibutuhkan aplikasi Anda
Tidaklah diperlukan membuat satu proses proxy untuk setiap satu proses aplikasi; beberapa proses aplikasi dapat saling berbagi satu proses Cloud SQL Auth Proxy yang sama. Jalankan satu proses klien Cloud SQL Auth Proxy untuk satu workstation atau mesin virtual.
Jika Anda menggunakan penskalaan otomatis untuk virtual machine, pastikan Cloud SQL Auth Proxy telah termasuk dalam konfigurasi virtual machine Anda, sehingga setiap kali sebuah virtual machine baru dimulai, virtual machine tersebut akan memiliki proses Cloud SQL Auth Proxy sendiri.
Anda dapat mengelola berapa banyak koneksi yang dibutuhkan aplikasi Anda, baik dengan membatasi atau dengan mem-pooling koneksi. Proxy Auth Cloud SQL tidak memberlakukan pembatasan apa pun pada kecepatan koneksi baru atau pada jumlah koneksi persisten.
Mengurangi output Cloud SQL Auth Proxy
Jika Anda perlu mengurangi ukuran log Cloud SQL Auth Proxy, Anda dapat melakukannya dengan menyetel
--quiet saat Anda memulai Cloud SQL Auth Proxy. Namun, perlu diingat bahwa tindakan tersebut akan mengurangi efektivitas output Cloud SQL Auth Proxy dalam mendiagnosis masalah koneksi.
Pengaruh failover terhadap Cloud SQL Auth Proxy
Jika Anda menjalankan Cloud SQL Auth Proxy pada instance yang dikonfigurasi untuk Ketersediaan Tinggi, lalu terjadi failover, maka koneksi yang melalui Cloud SQL Auth Proxy akan terpengaruh dengan cara yang sama seperti koneksi yang melalui IP: semua koneksi yang ada akan terputus, dan aplikasi tersebut harus membuat koneksi-koneksi yang baru. Namun, intervensi secara manual tidaklah diperlukan; aplikasi dapat terus menggunakan string koneksi yang sama seperti sebelumnya.
Jika Anda terhubung ke instance yang memiliki endpoint tulis, Anda dapat terhubung ke instance menggunakan nama DNS endpoint tulis, bukan alamat IP. Dengan menggunakan nama endpoint tulis, Cloud SQL Auth Proxy dapat terhubung ke instance utama baru jika terjadi operasi pengalihan atau failover replika. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan klien database ke instance menggunakan Cloud SQL Auth Proxy atau Cloud SQL Language Connectors
Pastikan image Docker Cloud SQL Auth Proxy selalu terbaru
Image Docker Proxy Auth Cloud SQL berdasarkan versi tertentu Proxy Auth Cloud SQL. Ketika versi baru Cloud SQL Auth Proxy tersedia, tarik image Docker Cloud SQL Auth Proxy versi baru untuk menjaga lingkungan Anda tetap yang terbaru. Anda dapat melihat versi terbaru Cloud SQL Auth Proxy dengan memeriksa halaman rilis GitHub Cloud SQL Auth Proxy.
Cara memaksakan penggunaan Cloud SQL Auth Proxy
Anda dapat menerapkan penggunaan Cloud SQL Auth Proxy pada koneksi instance Cloud SQL menggunakan ConnectorEnforcement. Dengan pemaksaan konektor, maka koneksi database langsung akan ditolak.
Untuk menggunakan pemaksaan konektor, gunakan kolom ConnectorEnforcement di instances API.
Jika Anda menggunakan instance yang mengaktifkan Private Service Connect, ada batasan. Jika instance mengaktifkan penerapan konektor, Anda tidak dapat membuat replika baca untuk instance tersebut. Demikian pula, jika instance memiliki replika baca, Anda tidak dapat mengaktifkan penerapan konektor untuk instance tersebut.
Untuk mengetahui informasi selengkapnya tentang cara menerapkan penggunaan hanya Cloud SQL Auth Proxy atau Cloud SQL Language Connectors untuk terhubung ke instance, lihat Menerapkan penggunaan Cloud SQL Auth Proxy.
Tentang Operator Proxy Cloud SQL
Operator Proxy Cloud SQL adalah operator Kubernetes open source yang mengotomatisasi koneksi workload di sebuah klaster GKE ke database Cloud SQL. Operator Proxy Auth Cloud SQL menggunakan resource khusus AuthProxyWorkload yang menentukan konfigurasi Proxy Auth Cloud SQL untuk workload tertentu. Operator Cloud SQL Auth Proxy membaca resource ini dan menambahkan container Cloud SQL Auth Proxy dengan konfigurasi yang diperlukan ke workload yang sesuai.
Saat Anda menginstal operator di klaster GKE serta mengonfigurasi workload dan instance Cloud SQL, Operator Proxy Auth Cloud SQL akan secara otomatis mengonfigurasi Proxy Auth Cloud SQL dan menghubungkan workload GKE ke instance Cloud SQL Anda.
Operator Cloud SQL Auth Proxy juga akan memeriksa status Cloud SQL Auth Proxy. Jika Cloud SQL Auth Proxy tidak dapat terhubung, Operator Cloud SQL Auth Proxy akan membuat output informasi proses debug, dan memberi Anda panduan untuk memecahkan masalah serta memperbaiki masalah konfigurasi umum.
Untuk mengetahui informasi lebih lengkap, lihat Menghubungkan menggunakan Operator Proxy Cloud SQL.