Tentang Proxy Auth Cloud SQL

Halaman ini merangkum Proxy Auth Cloud SQL dan menjelaskan cara menggunakannya untuk membuat koneksi yang terotorisasi, terenkripsi, dan aman, ke instance Anda.

Untuk petunjuk langkah demi langkah tentang cara menggunakan Proxy Auth Cloud SQL, ikuti link di bawah ini yang cocok untuk lingkungan Anda:

Anda tidak perlu menggunakan Proxy Auth Cloud SQL atau mengonfigurasi SSL untuk terhubung ke Cloud SQL dari lingkungan standar App Engine atau lingkungan fleksibel App Engine.

Cobalah sendiri

JIka Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi perfoma Cloud SQL dalam skenario di dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

Coba Cloud SQL secara gratis

Manfaat Proxy Auth Cloud SQL

Proxy Auth Cloud SQL adalah konektor Cloud SQL yang memberikan akses aman ke instance Anda tanpa memerlukan Jaringan yang diizinkan atau untuk mengonfigurasi SSL.

Proxy Auth Cloud SQL dan Konektor Cloud SQL lainnya memiliki manfaat berikut:

  • Koneksi aman: Proxy Auth Cloud SQL secara otomatis mengenkripsi traffic ke dan dari database menggunakan TLS 1.3 dengan cipher AES 256-bit. 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: Proxy Auth Cloud SQL menggunakan izin IAM untuk mengontrol siapa dan apa yang dapat terhubung ke instance Cloud SQL Anda. Dengan demikian, Proxy Auth Cloud SQL 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, Proxy Auth Cloud SQL harus berada di resource yang memiliki akses ke jaringan VPC yang sama dengan instance.

Cara kerja Proxy Auth Cloud SQL

Proxy Auth Cloud SQL bekerja dengan menjalankan klien lokal di lingkungan lokal. Aplikasi Anda berkomunikasi dengan Proxy Auth Cloud SQL 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 terhubung ke Proxy Auth Cloud SQL, aplikasi akan memeriksa apakah koneksi antara aplikasi tersebut dan instance Cloud SQL target telah 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. Proxy Auth Cloud SQL memperbarui sertifikat-sertifikat tersebut sebelum masa berlakunya habis.

Meskipun dapat me-listen pada port manapun, Proxy Auth Cloud SQL akan membuat koneksi keluar (egress connection) ke instance Cloud SQL Anda hanya pada port 3307. Dikarenakan Proxy Auth Cloud SQL akan memanggil API melalui nama domain sqladmin.googleapis.com, yang mana tidak memiliki alamat IP tetap, maka semua koneksi TCP yang keluar pada port 443 harus diizinkan. Jika mesin klien Anda memiliki kebijakan firewall untuk traffic keluar (outbound), pastikan kebijakan tersebut mengizinkan koneksi keluar ke port 3307 pada IP instance Cloud SQL.

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:

Diagram dari Proxy Auth Cloud SQL menghubung dari software klien ke instance SQL

Persyaratan untuk menggunakan Proxy Auth Cloud SQL

Untuk menggunakan Proxy Auth Cloud SQL, Anda harus memenuhi persyaratan berikut:

  • Cloud SQL Admin API harus diaktifkan.
  • Anda harus menyediakan kredensial autentikasi Google Cloud ke Proxy Auth Cloud SQL.
  • Anda harus menyediakan sebuah akun dan sandi pengguna database yang valid ke Proxy Auth Cloud SQL.
  • 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).

Download dan instal Proxy Auth Cloud SQL

Linux 64 bit

  1. Download Auth Proxy Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.0/cloud-sql-proxy.linux.amd64
    
  2. Jadikan Proxy Auth Cloud SQL dapat dieksekusi:
    chmod +x cloud-sql-proxy
    

Linux 32 bit

  1. Download Auth Proxy Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.0/cloud-sql-proxy.linux.386
    
  2. Jika perintah curl tidak ditemukan, jalankan sudo apt install curl dan ulangi perintah download.
  3. Jadikan Proxy Auth Cloud SQL dapat dieksekusi:
    chmod +x cloud-sql-proxy
    

macOS 64-bit

  1. Download Auth Proxy Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.0/cloud-sql-proxy.darwin.amd64
    
  2. Jadikan Proxy Auth Cloud SQL dapat dieksekusi:
    chmod +x cloud-sql-proxy
    

Mac M1

  1. Download Proxy Auth Cloud SQL:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.0/cloud-sql-proxy.darwin.arm64
      
  2. Menjadikan Proxy Auth Cloud SQL dapat dieksekusi:
      chmod +x cloud-sql-proxy
      

Windows 64 bit

Klik kanan https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.0/cloud-sql-proxy.x64.exe, lalu pilih Save Link As untuk mendownload Proxy Auth Cloud SQL. Ganti nama file menjadi cloud-sql-proxy.exe.

Windows 32 bit

Klik kanan https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.11.0/cloud-sql-proxy.x86.exe, lalu pilih Save Link As untuk mendownload Proxy Auth Cloud SQL. Ganti nama file menjadi cloud-sql-proxy.exe.

Image Docker Proxy Auth Cloud SQL

Auth Proxy Cloud SQL memiliki image container yang berbeda, seperti distroless, alpine, dan buster. Image container Proxy Auth Cloud SQL default menggunakan distroless, yang tidak berisi shell. Jika Anda memerlukan shell atau alat terkait, download gambar berdasarkan alpine atau buster. Untuk mengetahui informasi selengkapnya, lihat Image Container Proxy Auth Cloud SQL.

Anda dapat menarik image terbaru ke mesin lokal menggunakan Docker dengan menggunakan perintah berikut:

docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.0

OS lainnya

Untuk sistem operasi lain yang tidak disertakan di sini, Anda dapat mengompilasi Proxy Auth Cloud SQL dari sumber.

Opsi startup Proxy Auth Cloud SQL

Saat memulai Proxy Auth Cloud SQL, 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 Proxy Auth Cloud SQL, lihat Memulai Proxy Auth Cloud SQL.

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 sebuah akun layanan untuk tujuan ini adalah Anda dapat membuat file kredensial yang dikhususkan untuk Proxy Auth Cloud SQL, dan akan secara eksplisit serta permanen tertaut ke Proxy Auth Cloud SQL 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 Proxy Auth Cloud SQL 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, maka Anda harus meminta orang lain untuk membuatkan akun layanan Anda, atau gunakan metode lain untuk mengautentikasi Proxy Auth Cloud SQL.

Pelajari cara Membuat akun layanan.

Izin yang diperlukan untuk akun layanan

Jika Anda menggunakan sebuah akun layanan untuk menyediakan kredensial untuk Proxy Auth Cloud SQL, maka 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.

Opsi untuk menentukan instance Cloud SQL

Ada beberapa cara untuk memberi tahu Proxy Auth Cloud SQL tentang instance mana yang ingin Anda hubungkan. Ada beberapa yang eksplisit dan ada juga yang implisit. Dalam beberapa konfigurasi, Anda tidak perlu memberi tahu Proxy Auth Cloud SQL terlebih dahulu tentang instance mana yang ingin Anda hubungkan, karena Proxy Auth Cloud SQL akan terhubung berdasarkan adanya permintaan koneksi.

Berbagai opsi Anda untuk spesifikasi instance tergantung pada sistem operasi dan lingkungan Anda:

Opsi Manfaat Peringatan dan Persyaratan Linux/macOS
(soket Unix)
Java Windows Notes
FUSE
(Sistem File dalam User Space)
Pembuatan soket dinamis berdasarkan permintaan koneksi; tidak perlu mulai ulang proxy saat instance berubah. FUSE harus diinstal. Didukung Tidak Tidak Menggunakan --fuse flag.
Penemuan instance otomatis Tidak perlu menentukan instance; soket yang dibuat adalah untuk semua instance dalam project default. Penggunaan API Proxy Auth Cloud SQL ditingkatkan. gcloud CLI harus terinstal dan terautentikasi, dengan sebuah setelan project default. Harus memulai ulang Proxy Auth Cloud SQL untuk menambahkan instance baru. Didukung Tidak Tidak Tidak direkomendasikan untuk instance produksi.
Instance ditentukan pada pemanggilan Proxy Auth Cloud SQL Daftar instance telah diketahui dan bersifat statis. Harus memulai ulang Proxy Auth Cloud SQL untuk menambahkan instance baru. Didukung Didukung dengan soket TCP Didukung dengan soket TCP Bila instance lebih dari satu, gunakan daftar yang dipisahkan koma, tanpa spasi. Pelajari lebih lanjut.
Lihat contoh pemanggilan dan string koneksi.

Jaga agar Proxy Auth Cloud SQL 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. Rilisan proxy yang akan datang juga akan diumumkan di forum pengumuman Cloud SQL Google Grup.

Penggunaan API

Proxy Auth Cloud SQL 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. Di saat Proxy Auth Cloud SQL berjalan, itu akan mengeluarkan 2 panggilan API per jam pada per instance yang terhubung.

Tentang membuat akun pengguna khusus untuk Proxy Auth Cloud SQL

Saat terhubung ke instance menggunakan Proxy Auth Cloud SQL, Anda memberikan akun pengguna yang digunakan untuk login ke instance. Anda dapat menggunakan akun pengguna database apa pun. untuk tujuan ini. Namun, karena Proxy Auth Cloud SQL selalu terhubung dari nama host yang tidak dapat diakses kecuali oleh Proxy Auth Cloud SQL, Anda dapat membuat akun pengguna yang hanya dapat digunakan oleh Proxy Auth Cloud SQL. Keuntungan dari melakukan hal ini adalah Anda dapat menentukan akun ini tanpa sandi tanpa mengorbankan keamanan instance atau data Anda.

Agar dapat membuat akun pengguna untuk koneksi Proxy Auth Cloud SQL, tentukan nama host sebagai 'cloudsqlproxy~[IP_ADDRESS]'. Anda juga dapat menggunakan karakter pengganti alamat IP, yang akan menghasilkan 'cloudsqlproxy~%'. Nama lengkap akun pengguna adalah:

'[USER_NAME]'@'cloudsqlproxy~%'

atau

'[USER_NAME]'@'cloudsqlproxy~[IP_ADDRESS]'

Untuk mendapatkan bantuan dalam membuat pengguna, lihat Membuat dan Mengelola Pengguna. Untuk informasi tentang cara kerja Cloud SQL dengan akun pengguna, lihat Pengguna. Untuk informasi tentang akun pengguna MySQL, lihat Mengamankan Akun MySQL Awal di Dokumentasi MySQL.

Parameter dan flag Proxy Auth Cloud SQL

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 Proxy Auth Cloud SQL, baca informasi di bawah ini:

Cara penggunaan FUSE dengan Proxy Auth Cloud SQL

FUSE adalah singkatan dari "Filesystem in User Space". Bergantung pada cara pemanggilan Proxy Auth Cloud SQL, FUSE dapat secara opsional menggunakan FUSE untuk membuat soket yang digunakannya untuk terhubung dengan Cloud SQL.

Saat terhubung dari Compute Engine atau lingkungan pengembangan lokal, Proxy Auth Cloud SQL menggunakan FUSE untuk mengakses instance Cloud SQL sebagai berikut:

  • Direktori “/cloudsql” dipasang sebagai Filesystem di Userspace, atau FUSE, oleh Proxy Auth Cloud SQL.

  • Sebuah proses (misalnya, mysql) berupaya mencari file bernama $INSTANCE.

  • Proxy Auth Cloud SQL mencegat permintaan dan menampilkan bahwa /cloudsql/$INSTANCE link simbolis yang mengarah ke soket Unix yang terletak di tempat lain pada sistem file.

  • Proses ini (misalnya, mysql) mengikuti link dan membuka soket Unix yang mengarah dan menghubungkan.

Instal FUSE

Untuk Linux:

FUSE memerlukan fusermount program, dan modul kernel, agar berfungsi. Anda dapat memeriksa untuk melihat apakah program diinstal dengan mencari filenya, /dev/fuse/. Jika fusermount tidak ada di sistem, Anda dapat menginstalnya menggunakan pengelola paket atau mengompilasinya dari sumber.

Untuk macOS:

Instal FUSE untuk macOS.

Menggunakan Proxy Auth Cloud SQL di lingkungan produksi

Saat Anda menggunakan Proxy Auth Cloud SQL di lingkungan produksi, ada beberapa langkah yang dapat Anda lakukan untuk memastikan bahwa Proxy Auth Cloud SQL tersebut menyediakan ketersediaan yang diperlukan untuk aplikasi Anda.

Memastikan Proxy Auth Cloud SQL dijalankan sebagai layanan tetap

Jika proses Proxy Auth Cloud SQL terhenti, maka semua koneksi yang ada di dalamnya akan terputus, dan aplikasi Anda tidak dapat membuat koneksi lagi ke instance Cloud SQL dengan Proxy Auth Cloud SQL. Untuk mencegah skenario ini, pastikan untuk menjalankan Proxy Auth Cloud SQL sebagai sebuah layanan tetap, sehingga jika Proxy Auth Cloud SQL berhenti karena kejadian apa pun, maka layanan tersebut akan secara otomatis dimulai ulang. Ini dapat dilakukan dengan menggunakan layanan seperti systemd, upstart, atau supervisor. Untuk sistem operasi Windows, jalankan Proxy Auth Cloud SQL 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 Proxy Auth Cloud SQL yang sama. Jalankan satu proses klien Proxy Auth Cloud SQL untuk satu workstation atau mesin virtual.

Jika Anda menggunakan penskalaan otomatis untuk mesin virtual, pastikan Proxy Auth Cloud SQL telah termasuk dalam konfigurasi mesin virtual Anda, sehingga setiap kali sebuah mesin virtual baru dimulai, mesin virtual tersebut akan memiliki proses Proxy Auth Cloud SQL 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 Proxy Auth Cloud SQL

Jika Anda perlu mengurangi ukuran log Proxy Auth Cloud SQL, maka Anda dapat melakukannya dengan menyetel --quiet saat Anda memulai Proxy Auth Cloud SQL. Namun, perlu diingat bahwa tindakan tersebut akan mengurangi efektivitas output Proxy Auth Cloud SQL dalam mendiagnosis masalah koneksi.

Pengaruh failover terhadap Proxy Auth Cloud SQL

Jika Anda menjalankan Proxy Auth Cloud SQL pada instance yang dikonfigurasi untuk Ketersediaan Tinggi, lalu terjadi failover, maka koneksi yang melalui Proxy Auth Cloud SQL 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.

Menjaga agar versi image Docker Proxy Auth Cloud SQL selalu terbaru

Image Docker Proxy Auth Cloud SQL didasarkan pada versi tertentu dari Proxy Auth Cloud SQL. Ketika versi terbaru Proxy Auth Cloud SQL tersedia, tarik image Docker Proxy Auth Cloud SQL versi baru untuk menjaga lingkungan tetap menjadi yang terbaru. Anda dapat melihat versi terbaru Auth Proxy Cloud SQL dengan mengunjungi halaman rilis GitHub Proxy Auth Cloud SQL.

Cara memaksakan penggunaan Proxy Auth Cloud SQL

Anda dapat memaksakan penggunaan Proxy Auth Cloud SQL pada koneksi instance Cloud SQL menggunakan ConnectorEnforcement (PemaksaanKonektor). Dengan pemaksaan konektor, maka koneksi database langsung akan ditolak.

Untuk menggunakan pemaksaan konektor, gunakan kolom ConnectorEnforcement di instances API.

Untuk mengetahui informasi lebih lengkap, lihat Mengedit instance.

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 Proxy Auth Cloud SQL akan membaca resource ini dan menambahkan container Proxy Auth Cloud SQL 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 Proxy Auth Cloud SQL juga akan memeriksa status Proxy Auth Cloud SQL. Jika Proxy Auth Cloud SQL tidak dapat terhubung, maka Operator Proxy Auth Cloud SQL 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.

Langkah selanjutnya