Halaman ini memberikan ringkasan tentang cara terhubung ke instance Cloud SQL dan menjelaskan opsi autentikasi dan otorisasi yang tersedia.
Ringkasan
Saat mempertimbangkan cara untuk terhubung ke instance Cloud SQL, terdapat banyak pilihan yang perlu diingat, termasuk:
- Apakah Anda ingin instance Cloud SQL dapat diakses dari internet, atau dirahasiakan dalam jaringan Virtual Private Cloud Virtual Private Cloud (VPC), atau membuatnya dapat diakses secara publik dan pribadi?
- Apakah Anda berencana menulis kode koneksi sendiri, atau terhubung menggunakan alat yang tersedia secara publik seperti Proxy Auth Cloud SQL atau sqlcmd client?
- Apakah Anda ingin mewajibkan enkripsi melalui SSL/TLS atau mengizinkan traffic yang tidak terenkripsi?
Di bagian berikut, kita akan membahas opsi yang disediakan Cloud SQL untuk menghubungkan, memberi otorisasi, dan mengautentikasi ke database Anda.
- Cara menghubungkan - jalur jaringan mana yang Anda gunakan untuk menjangkau instance:
- Alamat IP internal khusus VPC (Pribadi).
- Alamat IP eksternal yang dapat diakses internet (Publik).
- Cara memberikan otorisasi - koneksi mana yang diotorisasi dan diizinkan untuk
terhubung ke instance Cloud SQL Anda:
- Library proxy Auth Cloud SQL dan konektor Cloud SQL untuk Java dan Python - library ini menyediakan akses berdasarkan IAM.
- Sertifikat SSL/TLS yang dikelola sendiri - sertifikat ini hanya mengizinkan koneksi berdasarkan kunci publik tertentu.
- Jaringan yang diizinkan - daftar alamat IP yang diizinkan untuk terhubung.
- Cara mengautentikasi - metode untuk login ke database Anda.
- Autentikasi database bawaan - login dengan nama pengguna/sandi yang disetel di mesin database.
Gunakan informasi berikut untuk memutuskan opsi koneksi, otorisasi, dan autentikasi yang paling cocok bagi Anda.
Sebelum memulai
Memberi akses ke aplikasi tidak otomatis mengaktifkan akun pengguna database untuk terhubung ke instance. Sebelum dapat terhubung ke instance, Anda harus memiliki akun pengguna database yang dapat dihubungkan. Untuk instance baru, ini berarti Anda harus mengonfigurasi akun pengguna default. Untuk mengetahui informasi selengkapnya, lihat Mengelola pengguna dengan autentikasi bawaan.
Cara terhubung ke Cloud SQL
Koneksi database menggunakan resource di server dan aplikasi yang terhubung. Selalu gunakan praktik pengelolaan koneksi yang baik untuk meminimalkan jejak aplikasi Anda dan mengurangi kemungkinan terlampauinya batas koneksi Cloud SQL. Untuk mengetahui informasi selengkapnya, lihat Mengelola koneksi database.
IP publik dan pribadi
Di Cloud SQL, IP publik berarti instance dapat diakses melalui internet publik. Sebaliknya, instance yang hanya menggunakan IP pribadi tidak dapat diakses melalui internet publik, tetapi dapat diakses melalui Virtual Private Cloud (VPC). Instance Cloud SQL dapat memiliki alamat IP publik dan pribadi.
IP Pribadi
IP pribadi adalah alamat IPv4 yang dapat diakses di Virtual Private Cloud (VPC).
Anda dapat menggunakan alamat ini untuk terhubung dari resource lain yang memiliki akses ke VPC. Koneksi melalui IP pribadi biasanya memberikan latensi yang lebih rendah dan vektor serangan terbatas karena tidak perlu melintasi internet. Secara opsional, Anda dapat mewajibkan agar semua koneksi menggunakan proxy Cloud SQL atau sertifikat SSL yang dikelola sendiri.
Sebaiknya konfigurasi instance dengan IP pribadi saat terhubung dari klien di resource yang memiliki akses ke VPC. Untuk mengetahui informasi lebih lanjut tentang resource yang dapat menggunakan IP pribadi, lihat Persyaratan untuk IP Pribadi.
Untuk jalur IP pribadi, layanan dan aplikasi berikut terhubung langsung ke instance Anda melalui Akses VPC Serverless:
- Lingkungan standar App Engine
- Lingkungan fleksibel App Engine
- Fungsi Cloud Run
- Cloud Run
Pelajari lebih lanjut cara menggunakan IP pribadi dengan Cloud SQL
Untuk mengetahui petunjuk tentang cara menambahkan IP pribadi ke instance, lihat salah satu hal berikut:
- Mengonfigurasi Konektivitas IP Pribadi.
- Menghubungkan ke instance menggunakan Private Service Connect
IP Publik
IP publik adalah alamat IPv4 yang tersedia secara eksternal di internet publik. Alamat ini dapat menerima koneksi dari perangkat di dalam dan di luar jaringan Google, termasuk dari lokasi seperti rumah atau kantor Anda.
Untuk membantu menjaga keamanan instance Anda, setiap koneksi ke instance Cloud SQL yang menggunakan IP publik harus diberi otorisasi menggunakan Proxy Auth Cloud SQL atau jaringan yang diizinkan.
Mengonfigurasi instance dengan IP publik adalah cara terbaik saat terhubung dari klien yang tidak memenuhi persyaratan VPC.
Untuk mengetahui petunjuk tentang cara menambahkan IP publik ke instance, lihat Mengonfigurasi Konektivitas IP Publik.
Untuk informasi tentang cara menghubungkan klien sqlcmd ke instance Cloud SQL menggunakan Ip publik, lihat Menghubungkan menggunakan klien database.
Opsi koneksi untuk instance
Bagian ini berisi fitur yang didukung Cloud SQL untuk menghubungkan ke instance. Bagian ini juga berisi opsi koneksi yang didukung untuk membuat, menonaktifkan, dan mengaktifkan instance.
Fitur yang didukung
Tabel berikut mencantumkan fitur yang didukung Cloud SQL untuk terhubung ke instance menggunakan koneksi pribadi.
Fitur | Instance dengan akses layanan pribadi saja | Instance dengan Private Service Connect saja | Instance dengan akses layanan pribadi dan Private Service Connect |
---|---|---|---|
Menghubungkan dari beberapa VPC | Tidak didukung. | Didukung. | Didukung dengan menggunakan endpoint Private Service Connect. |
Replika eksternal | Didukung. | Tidak didukung. | Didukung dengan menggunakan konektivitas keluar untuk akses layanan pribadi. |
Endpoint tulis | Didukung. | Tidak didukung. | Didukung untuk akses layanan pribadi. |
Mengubah jaringan VPC terkait untuk akses layanan pribadi | Didukung. | Tidak berlaku. | Tidak didukung untuk akses layanan pribadi karena instance telah mengaktifkan Private Service Connect untuknya. Tidak berlaku untuk Private Service Connect. |
Visibilitas alamat IP klien ke Cloud SQL | Didukung. | Tidak didukung. | Didukung dengan menggunakan alamat IP akses layanan pribadi. Tidak didukung dengan menggunakan endpoint Private Service Connect. |
Server tertaut | Didukung. | Tidak didukung. | Didukung dengan menggunakan alamat IP akses layanan pribadi. |
Active Directory Terkelola | Didukung. | Tidak didukung. | Didukung untuk akses layanan pribadi. |
Opsi koneksi untuk membuat instance
Cloud SQL mendukung konfigurasi IP pribadi dan IP publik. Anda dapat memilih opsi koneksi berdasarkan persyaratan aplikasi Anda.
Anda dapat mengonfigurasi IP pribadi agar instance Cloud SQL tetap bersifat pribadi dalam jaringan VPC. Jenis koneksi pribadi berikut didukung:
- Akses layanan pribadi: terhubung ke instance Cloud SQL dari satu jaringan VPC
- Private Service Connect: terhubung ke instance Cloud SQL dari beberapa jaringan VPC yang tergabung dalam grup, tim, project, atau organisasi yang berbeda
Jika Anda ingin instance mengakses koneksi dari klien di dalam dan di luar jaringan Google Cloud melalui internet publik, konfigurasikan IP publik untuk instance.
Cloud SQL mendukung opsi koneksi berikut untuk membuat instance:
- Hanya akses layanan pribadi
- Khusus Private Service Connect
- Khusus IP Publik
- Akses layanan pribadi dan Private Service Connect
- Akses IP publik dan layanan pribadi
- IP publik, akses layanan pribadi, dan Private Service Connect
Menonaktifkan opsi koneksi
Cloud SQL mendukung penonaktifan opsi koneksi berikut untuk instance:
- IP publik di instance dengan akses layanan pribadi dan IP publik
- IP publik di instance dengan IP publik, akses layanan pribadi, dan Private Service Connect
- Private Service Connect di instance dengan Private Service Connect dan akses layanan pribadi
- Private Service Connect di instance dengan Private Service Connect, akses layanan pribadi, dan IP publik
Mengaktifkan opsi koneksi
Cloud SQL mendukung pengaktifan opsi koneksi berikut untuk instance:
- Akses layanan pribadi di instance dengan IP publik saja
- Private Service Connect di instance dengan akses layanan pribadi saja
- Private Service Connect di instance dengan akses layanan pribadi dan IP publik
- IP publik di instance dengan akses layanan pribadi saja
Batasan
- Membuat instance dengan IP publik dan Private Service Connect tidak didukung.
- Menonaktifkan akses layanan pribadi pada instance dengan akses layanan pribadi dan Private Service Connect tidak didukung.
- Menonaktifkan akses layanan pribadi di instance dengan akses layanan pribadi dan IP publik tidak didukung.
- Jika Anda memiliki instance yang hanya menggunakan IP publik, mengaktifkan akses layanan pribadi dan Private Service Connect secara bersamaan tidak didukung. Pertama, aktifkan akses layanan pribadi, lalu aktifkan Private Service Connect.
- Pemberian izin berbasis IP dengan menggunakan jaringan yang diotorisasi tidak didukung untuk instance yang mengaktifkan Private Service Connect.
Cara memberikan otorisasi ke Cloud SQL
Cloud SQL Language Connector
Konektor Bahasa Cloud SQL adalah library klien yang memberikan enkripsi dan otorisasi IAM saat terhubung ke instance Cloud SQL. Cloud SQL merekomendasikan penggunaan Cloud SQL Language Connectors untuk terhubung ke instance Cloud SQL Anda, bukan opsi koneksi lainnya.
Anda dapat menggunakan library ini secara langsung dari bahasa pemrograman yang didukung. Keduanya memberikan autentikasi yang sama dengan Proxy Auth Cloud SQL tanpa memerlukan proses eksternal. Hal ini memberikan keamanan yang lebih kuat dan persyaratan konfigurasi yang lebih rendah untuk terhubung ke Cloud SQL. Cloud SQL Language Connector juga menggunakan kode yang sama saat terhubung menggunakan alamat IP publik atau alamat IP pribadi.
Untuk memulai, lihat Cloud SQL Language Connector.
Proxy Auth Cloud SQL
Dengan Proxy Auth Cloud SQL, Anda dapat memberi otorisasi dan mengamankan koneksi menggunakan izin Identity and Access Management (IAM). Proxy Auth Cloud SQL memvalidasi koneksi menggunakan kredensial untuk pengguna atau akun layanan, dan menggabungkan koneksi dalam lapisan SSL/TLS yang diberi otorisasi untuk instance Cloud SQL. Untuk mengetahui detail selengkapnya tentang cara kerja Proxy Auth Cloud SQL, lihat Tentang Proxy Auth Cloud SQL.
Menggunakan Proxy Auth Cloud SQL adalah metode yang direkomendasikan untuk mengautentikasi koneksi ke instance Cloud SQL karena merupakan metode teraman.
Proxy Auth Cloud SQL adalah library open source yang didistribusikan sebagai biner yang dapat dieksekusi. Proxy Auth Cloud SQL bertindak sebagai server perantara yang memproses koneksi masuk, menggabungkannya ke dalam SSL/TLS, lalu meneruskannya ke instance Cloud SQL.
Beberapa lingkungan menyediakan mekanisme yang terhubung menggunakan Proxy Auth Cloud SQL. Untuk mengetahui petunjuk tentang cara menghubungkan menggunakan lingkungan tersebut, lihat salah satu hal berikut:
- Terhubung dari Cloud Run
- Terhubung dari fungsi Cloud Run
- Terhubung dari lingkungan standar App Engine
- Menghubungkan dari lingkungan Fleksibel App Engine
- Terhubung dari Google Kubernetes Engine
Sertifikat SSL/TLS yang dikelola sendiri
Daripada menggunakan Proxy Auth Cloud SQL untuk mengenkripsi koneksi Anda, ini memungkinkan untuk menyiapkan sertifikat SSL/TLS klien/server yang khusus untuk instance Cloud SQL. Sertifikat ini digunakan untuk memvalidasi klien dan server satu sama lain dan mengenkripsi koneksi di antara keduanya.
Sangat disarankan untuk menggunakan sertifikat SSL/TLS yang dikelola sendiri untuk memberikan enkripsi saat tidak menggunakan Proxy Auth Cloud SQL. Jika hal ini tidak dilakukan, data Anda akan disebarkan secara tidak aman dan mungkin dicegat atau diperiksa oleh pihak ketiga.
Untuk mulai menggunakan sertifikat SSL/TLS yang dikelola sendiri, lihat Memberikan otorisasi dengan sertifikat SSL/TLS.
Jaringan resmi
Kecuali menggunakan Proxy Auth Cloud SQL, koneksi ke alamat IP publik suatu instance hanya diizinkan jika koneksi tersebut berasal dari jaringan resmi. Jaringan yang diizinkan adalah alamat atau rentang IP yang telah ditentukan sebagai pengguna memiliki izin untuk terhubung.
Untuk mulai menggunakan jaringan resmi lihat Memberikan otorisasi dengan Jaringan Resmi.
Cara mengautentikasi ke Cloud SQL
Autentikasi memberikan kontrol akses dengan memverifikasi identitas pengguna. Untuk pengguna akhir, autentikasi dicapai saat pengguna memasukkan kredensial (nama pengguna dan sandi). Untuk aplikasi, autentikasi dilakukan saat kredensial pengguna ditetapkan ke akun layanan.
Cloud SQL menggunakan autentikasi bawaan database yang mengautentikasi menggunakan nama pengguna dan sandi. Untuk informasi selengkapnya, lihat membuat dan mengelola pengguna SQL Server.
Alat untuk terhubung ke Cloud SQL
Tabel berikut berisi beberapa opsi untuk terhubung ke Cloud SQL:
Opsi koneksi | Informasi selengkapnya |
---|---|
Proxy Auth Cloud SQL | |
gcloud CLI | |
Cloud SQL language connector | |
Cloud Shell | |
Cloud Code | |
Terhubung menggunakan alat administrasi database pihak ketiga | |
SQL Server Management Studio | |
Penjelajah Objek SSMS | |
Visual Studio |
Contoh kode
Anda dapat terhubung ke Proxy Auth Cloud SQL dari bahasa apa pun yang memungkinkan untuk terhubung ke soket TCP. Berikut ini beberapa cuplikan kode dari contoh lengkap di GitHub untuk membantu Anda memahami cara kerjanya dalam aplikasi.
Menghubungkan dengan TCP
Pernyataan pemanggilan Proxy Auth Cloud SQL:
./cloud-sql-proxy INSTANCE_CONNECTION_NAME &
Python
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Java
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Catatan:
- CLOUD-SQL-CONNECTION-NAME harus ditampilkan sebagai <MY-PROJECT>:<INSTANCE-REGION><INSTANCE-NAME>
- Menggunakan argumen ipTypes=PRIVATE akan memaksa SocketFactory untuk terhubung dengan IP pribadi yang terkait dengan instance.
- Lihat persyaratan versi factory soket JDBC untuk file pom.xml di sini .
Node.js
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Go
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
C#
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Ruby
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
PHP
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Memecahkan masalah
Jika Anda mengalami masalah saat menghubungkan, periksa halaman berikut untuk membantu melakukan proses debug atau menemukan solusi untuk masalah umum:
- Proses debug masalah koneksi
- Error konektivitas umum
- Memecahkan masalah koneksi Proxy Auth Cloud SQL
- Masalah koneksi umum
Langkah berikutnya
- Pelajari cara terhubung dengan Panduan memulai Cloud SQL untuk sqlserver.
- Pelajari praktik terbaik untuk mengelola koneksi database.
- Pelajari autentikasi database IAM.
- Pelajari cara menghubungkan menggunakan klien sqlcmd dari mesin lokal atau Compute Engine.
- Pelajari cara mengonfigurasi konektivitas IP.
- Pelajari tentang Proxy Auth Cloud SQL.
- Pelajari opsi untuk dukungan.