Memberi otorisasi dengan jaringan yang diizinkan

Halaman ini menjelaskan cara menggunakan setelan jaringan yang diizinkan untuk terhubung ke instance Cloud SQL yang menggunakan alamat IP.

Konfigurasi jaringan yang diizinkan

Alamat IP aplikasi klien Anda atau rentang alamat IP harus dikonfigurasi sebagai authorized networks dalam kondisi berikut:

  • Aplikasi klien Anda terhubung langsung ke instance Cloud SQL pada alamat IP publiknya.
  • Aplikasi klien Anda terhubung langsung ke instance Cloud SQL di alamat IP pribadinya, dan alamat IP klien Anda adalah alamat non-RFC 1918

Alamat IP dapat berupa endpoint tunggal atau terdiri dari rentang dalam notasi CIDR.

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Dari menu navigasi SQL, pilih Koneksi.
  4. Klik tab Jaringan.
  5. Pilih kotak centang IP Publik.
  6. Klik Tambah jaringan.
  7. Di kolom Nama, masukkan nama untuk Jaringan baru.
  8. Di kolom Jaringan*, masukkan alamat publik IPv4 atau rentang alamat IP yang ingin Anda izinkan untuk terhubung.

    Untuk rentang alamat IP, Anda harus menggunakan notasi CIDR yang valid (misalnya, 10.10.10.0/24).

  9. Klik Selesai.
  10. Klik Save.

gcloud

Mengonfigurasi jaringan yang diizinkan mengganti daftar jaringan yang diizinkan yang sudah ada.

gcloud sql instances patch INSTANCE_ID \
--authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
    

Terraform

Untuk mengonfigurasi jaringan yang diizinkan, gunakan resource Terraform.

resource "google_sql_database_instance" "default" {
  name             = "sqlserver-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      authorized_networks {
        name            = "Network Name"
        value           = "192.0.2.0/24"
        expiration_time = "3021-11-15T16:19:00.094Z"
      }
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Menerapkan perubahan

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. 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).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.

    Salin kode contoh ke dalam main.tf yang baru dibuat.

    Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. 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

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. 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:

  1. Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan argumen deletion_protection ke false.
    deletion_protection =  "false"
  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply
  1. Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan yes pada prompt:

    terraform destroy

REST v1

Mengonfigurasi jaringan yang diizinkan mengganti daftar jaringan yang diizinkan yang sudah ada.

Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance
  • network_range_1 Rentang atau alamat IP yang diotorisasi
  • network_range_2 Rentang atau alamat IP resmi lainnya

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "ipConfiguration":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

REST v1beta4

Mengonfigurasi jaringan yang diizinkan mengganti daftar jaringan yang diizinkan yang sudah ada.

Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance
  • network_range_1 Rentang atau alamat IP yang diotorisasi
  • network_range_2 Rentang atau alamat IP resmi lainnya

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "ipConfiguration":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Batasan

Beberapa rentang alamat IP tidak dapat ditambahkan sebagai jaringan yang diizinkan.

Rentang alamat IP Catatan
10.0.0.0/8 Rentang alamat IP RFC 1918. Parameter ini secara otomatis dan implisit disertakan dalam jaringan yang diizinkan oleh Cloud SQL
172.16.0.0/12 Rentang alamat IP RFC 1918. Parameter ini secara otomatis dan implisit disertakan dalam jaringan yang diizinkan oleh Cloud SQL
192.168.0.0/16 Rentang alamat IP RFC 1918. Parameter ini secara otomatis dan implisit disertakan dalam jaringan yang diizinkan oleh Cloud SQL

Langkah berikutnya