Menghubungkan klien SQL Server menggunakan image Docker Proxy Auth Cloud SQL

Halaman ini menjelaskan cara menghubungkan klien sqlcmd ke instance Cloud SQL Anda, dari komputer klien yang menjalankan Linux atau instance Compute Engine Linux, menggunakan image Docker Cloud SQL Auth Proxy.

Sebelum memulai

Anda harus:

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk terhubung ke instance Cloud SQL menggunakan image Docker Cloud SQL Auth Proxy, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menghubungkan klien sqlcmd menggunakan image Docker Proxy Auth Cloud SQL

Untuk terhubung menggunakan image Docker Cloud SQL Auth Proxy:

  1. Aktifkan Cloud SQL Admin API, jika belum diaktifkan.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    Mengaktifkan API

  2. Jika Anda menggunakan instance Compute Engine, siapkan instance tersebut:
    1. Tampilkan properti instance Compute Engine:
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. Verifikasi akun layanan dan cakupan akses yang dikonfigurasi pada instance:
      • Pastikan akun layanan yang terpasang ke VM memiliki peran Identity and Access Management (IAM) yang telah ditetapkan Klien Cloud SQL (roles/cloudsql.client) untuk terhubung menggunakan Cloud SQL Auth Proxy atau Cloud SQL Admin API. Jika Anda menggunakan autentikasi database IAM, berikan juga peran Pengguna Instance Cloud SQL (roles/cloudsql.instanceUser). Untuk mengetahui informasi selengkapnya tentang peran yang telah ditetapkan, lihat Peran yang diperlukan.
      • Pastikan cakupan akses VM ditetapkan ke cloud-platform (https://www.googleapis.com/auth/cloud-platform, atau Allow full access to all Cloud APIs di konsol Google Cloud ). Cakupan akses adalah metode lama untuk menentukan otorisasi untuk VM dan hanya menetapkan cakupan otorisasi OAuth maksimum untuk permintaan. Kelola kontrol akses melalui peran IAM yang telah ditetapkan, bukan cakupan akses.

      Jika instance Compute Engine Anda tidak memiliki peran akun layanan atau cakupan akses yang diperlukan, Anda dapat mengupdate instance tersebut. Untuk mengetahui informasi selengkapnya tentang cara mengubah akun layanan dan cakupan akses di VM, lihat Mengubah akun layanan yang terpasang dalam dokumentasi Compute Engine.

    3. Buka koneksi terminal ke instance menggunakan petunjuk pada Menghubungkan ke instance Linux.
  3. Instal klien sqlcmd di instance Compute Engine atau komputer klien, jika belum diinstal.

    Debian/Ubuntu

    Untuk Debian/Ubuntu, instal alat command line SQL Server yang berlaku.

    CentOS/RHEL

    Untuk CentOS/RHEL, instal alat command line SQL Server yang berlaku.

    OpenSUSE

    Untuk openSUSE, instal alat command line SQL Server yang berlaku.

    Platform lainnya

    Lihat halaman landing untuk menginstal SQL Server, serta halaman download SQL Server.

  4. Jika diperlukan, instal klien Docker:
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER

    Jika Anda menggunakan instance Compute Engine yang dioptimalkan untuk container, maka klien Docker telah terinstal di dalamnya.

  5. Instal image Docker Cloud SQL Auth Proxy dari Google Container Registry.
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.27.0
  6. Jika Anda menjalankan image Docker Cloud SQL Auth Proxy di mesin lokal (bukan instance Compute Engine), atau jika akun layanan yang dilampirkan ke instance Compute Engine Anda tidak memiliki peran IAM dan cakupan akses yang diperlukan, buat akun layanan Google Cloud .
    1. Di konsol Google Cloud , buka halaman Service accounts.

      Buka halaman Service accounts

    2. Pilih project yang berisi instance Cloud SQL.
    3. Klik Create service account.
    4. Pada kolom Nama akun layanan, masukkan nama deskriptif untuk akun tersebut.
    5. Ubah ID akun layanan menjadi nilai yang unik dan dapat dikenali, kemudian klik Buat dan lanjutkan.
    6. Klik kolom Pilih peran dan pilih salah satu dari peran berikut:
      • Cloud SQL > Klien Cloud SQL
      • Cloud SQL > Editor Cloud SQL
      • Cloud SQL > Admin Cloud SQL
    7. Klik Selesai untuk menyelesaikan pembuatan akun layanan.
    8. Klik menu tindakan untuk akun layanan baru kemudian pilih Mengelola kunci.
    9. Klik menu drop-down Tambahkan kunci kemudian klik Buat kunci baru.
    10. Lakukan konfirmasi bahwa jenis kunci tersebut adalah JSON kemudian klik Buat.

      File kunci pribadi telah didownload ke mesin. Anda dapat memindahkan file tersebut ke lokasi lain. Simpan file kunci dengan aman.

    Anda memberikan jalur ke file kunci sebagai "PATH_TO_KEY_FILE" saat memulai Cloud SQL Auth Proxy.

  7. Buka halaman Instance Cloud SQL di konsol Google Cloud .

    Buka Instance Cloud SQL

  8. Pilih instance untuk membuka halaman Instance details-nya dan salin Instance connection name.

    Misalnya: myproject:us-central1:myinstance.

  9. Mulai Cloud SQL Auth Proxy.

    Soket TCP

    docker run -d 
    -v PATH_TO_KEY_FILE:/path/to/service-account-key.json
    -p 127.0.0.1:1433:1433
    gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.27.0
    --address 0.0.0.0 --port 1433
    --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME

    Jika Anda menggunakan kredensial yang disediakan oleh instance Compute Engine, jangan sertakan parameter --credentials-file dan baris -v PATH_TO_KEY_FILE:/path/to/service-account-key.json .

    Selalu tentukan awalan 127.0.0.1 di -p agar Cloud SQL Auth Proxy tidak terekspos di luar host lokal. Flag --address 0.0.0.0 diperlukan agar port dapat diakses dari luar container Docker.

  10. Mulai klien:

    String koneksi yang Anda gunakan bergantung pada apakah Anda memulai Cloud SQL Auth Proxy menggunakan soket TCP atau Docker.

    Soket TCP

    1. Mulai klien sqlcmd:
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD

      Saat Anda terhubung menggunakan soket TCP, Proxy Auth Cloud SQL diakses melalui 127.0.0.1.

    2. Jika diminta, masukkan sandi.
    3. Perintah sqlcmd akan muncul.
Butuh bantuan? Untuk menemukan bantuan pemecahan masalah proxy, lihat Memecahkan masalah koneksi Cloud SQL Auth Proxy, atau lihat halaman Dukungan Cloud SQL.

Pastikan image Docker Cloud SQL Auth Proxy selalu terbaru

Image Docker Cloud SQL Auth Proxy didasarkan pada versi tertentu dari Cloud SQL Auth Proxy. 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 mengecek halaman rilis GitHub Cloud SQL Auth Proxy.

Langkah berikutnya