Mengonfigurasi akses layanan pribadi

Dokumen ini menjelaskan cara menyiapkan koneksi IP pribadi ke instance Cloud SQL Anda menggunakan akses layanan pribadi.

Sebelum memulai

Cloud SQL memerlukan akses layanan pribadi untuk setiap jaringan VPC yang digunakan untuk koneksi IP pribadi.

Aktifkan API yang diperlukan

Aktifkan Service Networking API (servicenetworking.googleapis.com) dan Compute Engine API (compute.googleapis.com) di project yang menghosting instance Cloud SQL Anda.

Jika Anda menggunakan Jaringan VPC Bersama, Anda juga harus mengaktifkan API ini di project host VPC Bersama.

Anda dapat mengaktifkan API menggunakan perintah berikut:

gcloud services enable servicenetworking.googleapis.com compute.googleapis.com --project=PROJECT_ID

Ganti PROJECT_ID dengan project ID Anda (atau project ID host VPC Bersama).

Jika Service Networking API tidak diaktifkan, saat Anda membuat instance Cloud SQL dengan alamat IP pribadi, operasi akan gagal dengan error SERVICE_NETWORKING_NOT_ENABLED.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat dan mengelola koneksi akses layanan pribadi, minta administrator untuk memberi Anda peran IAM Compute Network Admin (roles/compute.networkAdmin) di project yang menghosting instance Cloud SQL Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat dan mengelola koneksi akses layanan pribadi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat dan mengelola koneksi akses layanan pribadi:

  • compute.addresses.create
  • compute.addresses.list
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.list
  • compute.networks.list
  • compute.networks.use
  • servicenetworking.services.addPeering
  • serviceusage.services.list

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Jika menggunakan Jaringan VPC Bersama, Anda juga harus memberikan peran Compute Network Admin (roles/compute.networkAdmin) kepada pengguna di project host VPC Bersama.

Mengonfigurasi akses layanan pribadi untuk Cloud SQL

Terdapat dua bagian dalam proses konfigurasi akses layanan pribadi:

  • Pilih yang ada atau alokasikan rentang alamat IP baru.

    Jika Anda membuat instance Cloud SQL di Google Cloud konsol, Anda juga memiliki opsi untuk mengizinkan Google mengalokasikan rentang alamat IP untuk Anda. Dalam kasus ini, Google akan mengalokasikan rentang IP dengan panjang awalan /24 secara otomatis dan menggunakan nama default-ip-range.

    Jika Anda berencana membuat instance Cloud SQL di beberapa region atau untuk jenis database yang berbeda, Anda harus memiliki rentang alamat IP minimum /24 yang tersedia untuk setiap region atau jenis database. Hal ini mencakup aplikasi lain seperti Filestore atau Memorystore. Untuk region atau jenis database baru, Cloud SQL harus memiliki rentang /24 yang kosong.

  • Buat koneksi Private Service Connect dari jaringan VPC Anda ke jaringan produsen layanan yang mendasarinya.

Untuk mengetahui informasi tentang persyaratan lingkungan jaringan dan aplikasi serta izin IAM yang diperlukan untuk akses layanan pribadi, lihat Persyaratan untuk koneksi IP pribadi.

Mengalokasikan rentang alamat IP

Konsol

  1. Di konsol Google Cloud , buka halaman Jaringan VPC.

    Buka jaringan VPC

  2. Pilih jaringan VPC yang ingin Anda gunakan.
  3. Pilih tab Private services access.
  4. Pilih tab Rentang IP yang dialokasikan untuk layanan.
  5. Klik Alokasikan rentang IP.
  6. Untuk Nama rentang yang dialokasikan, tentukan google-managed-services-VPC_NETWORK_NAME, di mana VPC_NETWORK_NAME adalah nama jaringan VPC yang Anda sambungkan (misalnya, google-managed-services-default). Deskripsi bersifat opsional.
  7. Pilih opsi Kustom, lalu masukkan rentang alamat IP yang akan dialokasikan, dalam notasi CIDR.
  8. Klik Alokasikan untuk membuat rentang yang dialokasikan.

gcloud

Lakukan salah satu tindakan berikut:

  • Untuk menentukan rentang alamat IP dan panjang awalan (subnet mask), gunakan flag addresses dan prefix-length. Misalnya, untuk mengalokasikan blok CIDR 192.168.0.0/16, tentukan 192.168.0.0 untuk alamat dan 16 untuk panjang awalan.
  •     gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
           --global \
           --purpose=VPC_PEERING \
           --addresses=192.168.0.0 \
           --prefix-length=16 \
           --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
        
  • Untuk hanya menentukan panjang awalan (subnet mask), gunakan flag prefix-length. Jika Anda menghilangkan rentang alamat IP, Google Cloud akan otomatis memilih rentang alamat IP yang tidak digunakan di jaringan VPC Anda. Contoh berikut memilih rentang alamat IP yang tidak digunakan dengan panjang awalan bit 16.
  •   gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
      

Ganti VPC_NETWORK_NAME dengan nama jaringan VPC, seperti my-vpc-network.

Contoh berikut ini mengalokasikan rentang IP yang memungkinkan resource dalam jaringan VPC my-vpc-network untuk terhubung ke instance Cloud SQL menggunakan IP pribadi.

  gcloud compute addresses create google-managed-services-my-vpc-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --network=projects/myprojectid/global/networks/myvpcnetwork \
    --project=my-project
    

Terraform

Untuk mengalokasikan rentang alamat IP, gunakan resource Terraform.

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

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

Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan masukkan yes pada prompt:

terraform destroy

Membuat koneksi pribadi

Konsol

  1. Di konsol Google Cloud , buka halaman Jaringan VPC.

    Buka jaringan VPC

  2. Pilih jaringan VPC yang ingin Anda gunakan.
  3. Pilih tab Koneksi layanan pribadi.
  4. Pilih tab Koneksi pribadi ke layanan.
  5. Klik Buat koneksi untuk membuat koneksi pribadi antara jaringan Anda dan produsen layanan.
  6. Untuk Alokasi yang ditetapkan, pilih salah satu atau beberapa rentang yang sudah dialokasikan dan tidak digunakan oleh produsen layanan lainnya.
  7. Klik Hubungkan untuk membuat koneksi.

gcloud

  1. Buat koneksi akses layanan pribadi untuk jaringan VPC di project Anda.

    gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-VPC_NETWORK_NAME \
    --network=VPC_NETWORK_NAME \
    --project=PROJECT_ID

    Perintah ini memulai operasi instance Cloud SQL yang berjalan lama, dan mengembalikan ID operasi.

  2. Periksa apakah operasi tersebut berhasil.

    gcloud services vpc-peerings operations describe \
    --name=OPERATION_ID

Anda dapat menentukan lebih dari satu rentang IP yang dialokasikan saat membuat koneksi pribadi. Misalnya, jika rentang sudah habis, Anda dapat menetapkan rentang tambahan yang dialokasikan. Layanan tersebut menggunakan alamat IP dari semua rentang yang tersedia sesuai urutan yang Anda tetapkan.

Terraform

Gunakan resource Terraform untuk membuat koneksi pribadi.

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

Akun layanan dalam format service-HOST_PROJECT_NUMBER@service-networking. diberikan peran servicenetworking.serviceAgent saat koneksi pribadi dibuat karena akun tersebut disediakan tepat waktu (JIT).

Jika Anda mengalami error terkait izin compute.globalAddresses.list atau izin compute.projects.get untuk project, jalankan perintah gcloud berikut:

gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \
    --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking. \
    --role=roles/servicenetworking.serviceAgent

Mengonfigurasi instance untuk IP pribadi menggunakan akses layanan pribadi

Anda dapat mengonfigurasi akses layanan pribadi untuk instance baru dan instance yang ada.

Mengonfigurasi IP pribadi untuk instance baru

Konsol

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

    Buka Instance Cloud SQL

  2. Klik Create instance.
  3. Di bagian Sesuaikan instance Anda, luaskan Tampilkan opsi konfigurasi.
  4. Luaskan Connections.
  5. Pilih Private IP.
  6. Pilih Private Service Access (PSA).

    Menu drop-down menampilkan jaringan VPC yang tersedia di project Anda. Jika project Anda adalah project layanan dari VPC Bersama, maka jaringan VPC dari project host juga akan ditampilkan.

  7. Pilih jaringan VPC yang ingin Anda gunakan.
  8. Jika menemukan pesan yang mengatakan bahwa Anda perlu menyiapkan koneksi layanan pribadi, lakukan langkah berikut:

    1. Klik Siapkan koneksi.
    2. Pada bagian Mengalokasikan rentang IP, pilih salah satu opsi berikut:
      • Pilih satu atau beberapa rentang IP yang ada, atau buat yang baru dari menu drop-down. Menu drop-down menyertakan rentang yang dialokasikan sebelumnya, jika ada, atau Anda dapat memilih Allocate a new IP range dan memasukkan rentang dan nama baru.
      • Gunakan rentang IP yang dialokasikan secara otomatis dalam jaringan Anda.
    3. Klik Lanjutkan.
    4. Klik Buat koneksi.
    5. Pastikan bahwa Anda melihat pesan tersebut: Private service connection for network VPC_NETWORK_NAME has been successfully created.
  9. Secara opsional, Anda dapat menentukan rentang IP yang dialokasikan untuk instance yang akan digunakan untuk koneksi.
    1. Luaskan Tampilkan opsi rentang IP yang dialokasikan.
    2. Pilih rentang IP dari menu drop-down.
  10. Selesaikan konfigurasi instance.
  11. Klik Create instance.

gcloud

Sebelum membuat instance menggunakan alamat IP pribadi, pastikan project Anda telah dikonfigurasi untuk akses layanan pribadi.

Jalankan perintah gcloud CLI berikut untuk menyiapkan jaringan akses layanan pribadi untuk Cloud SQL:

  1. Aktifkan API yang diperlukan:
    gcloud services enable \
        sqladmin.googleapis.com \
        compute.googleapis.com \
        servicenetworking.googleapis.com \
        --project=PROJECT_ID
        
  2. Mengalokasikan rentang alamat IP untuk Peering Jaringan VPC:
    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
        --project=PROJECT_ID
        
  3. Buat koneksi Peering Jaringan VPC:
    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=google-managed-services-VPC_NETWORK_NAME \
        --network=VPC_NETWORK_NAME \
        --project=PROJECT_ID
        

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • INSTANCE_ID: ID instance
  • PROJECT_ID: Project ID
  • NETWORK_PROJECT_ID: ID project jaringan VPC

  • VPC_NETWORK_NAME: Nama jaringan VPC
  • RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk rentang IP. Nama rentang harus sesuai dengan RFC-1035 dan berisi 1-63 karakter.
  • REGION_NAME: Nama region
Untuk menentukan nama jaringan VPC Anda, gunakan paramater --network. Untuk menonaktifkan IP publik, gunakan flag --no-assign-ip.

Untuk menerapkan penggunaan arsitektur jaringan baru untuk instance, gunakan flag --enforce-new-sql-network-architecture. Pastikan Anda telah mengalokasikan alamat IP yang cukup. Saat Anda menggunakan penerapan arsitektur jaringan baru sebelum project diupgrade sepenuhnya, Anda mungkin mengalami kegagalan pembuatan instance jika ruang alamat IP yang tersedia tidak mencukupi. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.

gcloud beta sql instances create INSTANCE_ID \
  --project=PROJECT_ID \
  --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
  --no-assign-ip \
  --allocated-ip-range-name=RANGE_NAME \
  --enforce-new-sql-network-architecture

Terraform

Untuk mengonfigurasi IP pribadi bagi instance baru, gunakan resource Terraform berikut:


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "instance" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
  # 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
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.id
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

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 proteksi dari 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

Buat instance baru dengan alamat IP pribadi:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID
  • INSTANCE_ID: ID instance
  • VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
  • RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk rentang IP. Nama rentang harus sesuai dengan RFC-1035 dan berisi 1-63 karakter.
  • AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.

Untuk parameter ipv4Enabled, tetapkan nilai ke true jika Anda menggunakan alamat IP publik untuk instance atau false jika instance Anda memiliki alamat IP pribadi.

Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat pembuatan, meskipun project belum diupgrade sepenuhnya. Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

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

REST v1beta4

Buat instance baru dengan alamat IP pribadi:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID
  • INSTANCE_ID: ID instance
  • VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
  • RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk rentang IP. Nama rentang harus sesuai dengan RFC-1035 dan berisi 1-63 karakter.
  • AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.

Untuk parameter ipv4Enabled, tetapkan nilai ke true jika Anda menggunakan alamat IP publik untuk instance atau false jika instance Anda memiliki alamat IP pribadi.

Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat pembuatan, meskipun project belum diupgrade sepenuhnya. Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

Meminta isi JSON:

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

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

Mengonfigurasi IP pribadi untuk instance yang sudah ada

Mengonfigurasi instance Cloud SQL yang sudah ada untuk menggunakan IP pribadi akan menyebabkan instance dimulai ulang sehingga menyebabkan periode nonaktif.

Untuk mengonfigurasi instance yang sudah ada menggunakan IP pribadi:

Konsol

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

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance tersebut.
  3. Pilih Koneksi dari menu navigasi Cloud SQL.
  4. Di tab Networking, centang kotak Private IP.

    Menu drop-down menampilkan jaringan apa saja yang ada di project Anda.

  5. Pilih jaringan VPC yang ingin Anda gunakan:
  6. Apabila Anda melihat Private service connection diperlukan:

    1. Klik Siapkan koneksi.
    2. Pada bagian Alokasikan rentang IP, pilih salah satu opsi berikut:
      • Pilih satu atau beberapa rentang IP yang ada, atau buat yang baru dari menu drop-down. Drop-down menyertakan rentang yang dialokasikan sebelumnya, jika ada, atau Anda dapat memilih Allocate a new IP range dan memasukkan rentang dan nama baru.
      • Gunakan rentang IP yang dialokasikan secara otomatis dalam jaringan Anda.
    3. Klik Lanjutkan.
    4. Klik Buat koneksi.
    5. Pastikan Anda melihat status Private service connection untuk jaringan VPC_NETWORK_NAME telah berhasil dibuat.
  7. Klik Simpan.

gcloud

Pastikan project Anda dikonfigurasi untuk akses layanan pribadi.

Perbarui instance Cloud SQL dengan menggunakan parameter --network untuk menentukan nama jaringan VPC yang dipilih.

Untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat Anda menambahkan konfigurasi jaringan IP pribadi, gunakan flag --enforce-new-sql-network-architecture. Pastikan Anda telah mengalokasikan ruang alamat IP yang cukup dalam rentang IP Anda. Jika Anda menggunakan penerapan arsitektur jaringan baru sebelum project diupgrade sepenuhnya, Anda mungkin mengalami kegagalan pembuatan instance jika ruang alamat IP yang tersedia tidak mencukupi.

Untuk mengetahui informasi selengkapnya, lihat Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.

gcloud beta sql instances patch INSTANCE_ID \
  --project=PROJECT_ID \
  --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
  --no-assign-ip \
  --enforce-new-sql-network-architecture

REST v1

Buat instance baru dengan alamat IP pribadi:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID
  • INSTANCE_ID: ID instance
  • VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
  • RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk rentang IP. Nama rentang harus sesuai dengan RFC-1035 dan berisi 1-63 karakter.
  • AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.

Untuk parameter ipv4Enabled, tetapkan nilai ke true jika Anda menggunakan alamat IP publik untuk instance atau false jika instance Anda memiliki alamat IP pribadi.

Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat pembuatan, meskipun project belum diupgrade sepenuhnya. Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

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

REST v1beta4

Buat instance baru dengan alamat IP pribadi:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID
  • INSTANCE_ID: ID instance
  • VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
  • RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk rentang IP. Nama rentang harus sesuai dengan RFC-1035 dan berisi 1-63 karakter.
  • AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.

Untuk parameter ipv4Enabled, tetapkan nilai ke true jika Anda menggunakan alamat IP publik untuk instance atau false jika instance Anda memiliki alamat IP pribadi.

Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance setelah pembuatan, meskipun project belum sepenuhnya diupgrade. Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
    }
  },
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

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

Mengubah konfigurasi akses layanan pribadi

Anda dapat mengubah rentang alamat IP yang dialokasikan untuk koneksi layanan pribadi tanpa mengubah instance Cloud SQL yang sudah ada. Untuk mengubah alamat IP pribadi dari instance Cloud SQL yang sudah ada, ikuti langkah-langkah ini.

Untuk mengubah rentang alamat IP yang dialokasikan:

Konsol

  1. Di konsol Google Cloud , buka halaman Jaringan VPC.

    Buka jaringan VPC

  2. Pilih jaringan VPC yang ingin Anda gunakan.
  3. Pilih tab Koneksi layanan pribadi.
  4. Pilih tab Rentang IP yang dialokasikan untuk layanan.
  5. Pilih nama rentang yang ingin dihapus.

  6. Klik Lepaskan.

  7. Klik Alokasikan rentang IP.

  8. Buat rentang baru dengan nama dan rentang yang sama

    Nama tersebut penting karena koneksi pribadi telah ditetapkan menggunakan nama alamat tersebut.

gcloud services vpc-peerings update \
--network=VPC_NETWORK_NAME \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force

Mengubah alamat IP pribadi dari instance Cloud SQL yang sudah ada.

Untuk mengubah alamat IP pribadi instance Cloud SQL yang ada, pindahkan instance dari jaringan aslinya ke jaringan VPC sementara. Kemudian, ubah konfigurasi akses layanan pribadi dari jaringan asli instance tersebut dan pindahkan kembali instance Cloud SQL ke jaringan asli.

Untuk berpindah ke jaringan VPC yang berbeda, ikuti semua langkah kecuali langkah terakhir (memindahkan instance kembali) dalam prosedur berikut. Dalam hal ini, TEMPORARY_VPC_NETWORK_NAME adalah jaringan VPC baru. Selain itu, hapus koneksi pribadi yang lama. Diperlukan waktu beberapa hari agar koneksi pribadi yang sudah dihapus dapat hilang dari konsolGoogle Cloud .

Jika instance Cloud SQL dihosting pada jaringan VPC Bersama, variabel VPC_NETWORK_NAME yang digunakan dalam petunjuk berikut harus berupa nama jaringan VPC project host. Untuk menentukan sebuah jaringan dengan jaringan VPC Bersama, gunakan URL lengkap dari jaringan tersebut—misalnya projects/HOST_PROJECT/global/networks/NETWORK_NAME.

Konsol

  1. Di konsol Google Cloud , buka halaman VPC networks.

    Buka jaringan VPC

  2. Buat jaringan VPC sementara.
  3. Buat alokasi IP di jaringan VPC sementara.
  4. Buat koneksi pribadi dalam jaringan VPC sementara.
  5. Pindahkan instance Cloud SQL ke jaringan VPC sementara.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/TEMPORARY_VPC_NETWORK_NAME \
      --no-assign-ip
  6. Ubah konfigurasi akses layanan pribadi di jaringan asli untuk menambahkan rentang baru yang dialokasikan atau menghapus rentang yang sudah ada.

  7. Pindahkan kembali instance Cloud SQL ke jaringan VPC asli.

    gcloud beta sql instances patch INSTANCE_ID \
      --project=PROJECT_ID \
      --network=projects/PROJECT_ID/global/networks/ORIGINAL_VPC_NETWORK_NAME \
      --no-assign-ip

Menghubungkan ke instance menggunakan alamat IP pribadinya

Anda menggunakan akses layanan pribadi untuk terhubung ke instance Cloud SQL dari Compute Engine atau instance Google Kubernetes Engine dalam jaringan VPC yang sama (dijelaskan di sini sebagai sources internal) atau dari luar jaringan tersebut (sourceeksternal).

Menghubungkan dari source internal

Untuk terhubung dari sumber dalam project Google Cloud yang sama dengan instance Cloud SQL Anda, seperti Cloud SQL Auth Proxy yang berjalan pada resource Compute Engine, resource tersebut harus berada di Jaringan VPC yang sama dengan tempat akses layanan pribadi telah dibuat untuk instance Cloud SQL.

Untuk terhubung dari sumber serverless, seperti lingkungan standar App Engine, Cloud Run, atau fungsi Cloud Run, aplikasi atau fungsi Anda terhubung langsung ke instance melalui Akses VPC Serverless tanpa Cloud SQL Auth Proxy.

Menghubungkan dari source eksternal

Jika jaringan eksternal (misalnya, jaringan lokal atau jaringan VPC) terhubung ke jaringan VPC yang terhubung dengan instance Cloud SQL Anda, Anda dapat menggunakan Cloud VPN atau Cloud Interconnect untuk terhubung ke instance dari klien di jaringan eksternal.

Untuk mengizinkan koneksi dari jaringan eksternal, lakukan hal berikut:

  1. Pastikan jaringan VPC Anda terhubung ke jaringan eksternal menggunakan tunnel Cloud VPN atau lampiran VLAN untuk Dedicated Interconnect atau Partner Interconnect.
  2. Pastikan sesi Border Gateway Protocol (BGP) pada Cloud Router yang mengelola tunnel Cloud VPN dan lampiran Cloud Interconnect (VLAN) sudah menerima awalan (tujuan) tertentu dari jaringan lokal Anda.

    Rute default (tujuan 0.0.0.0/0) tidak dapat diimpor ke jaringan VPC Cloud SQL karena jaringan tersebut memiliki rute default lokal sendiri. Rute lokal untuk suatu tujuan digunakan meskipun peering Cloud SQL sudah dikonfigurasikan untuk mengimpor rute khusus dari jaringan VPC Anda.

  3. Mengidentifikasi koneksi peering yang dihasilkan oleh koneksi layanan pribadi. Bergantung pada layanannya, koneksi Private Service Connect mungkin membuat satu atau beberapa koneksi peering berikut, tetapi tidak harus semuanya:
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. Perbarui semua koneksi peering untuk mengaktifkan Rute kustom ekspor.
  5. Mengidentifikasi rentang yang dialokasikan yang digunakan oleh koneksi Private Service Connect.
  6. Konfigurasi mode pemberitahuan kustom Cloud Router untuk rentang yang dialokasikan pada Cloud Router yang mengelola sesi BGP untuk tunnel Cloud VPN Anda atau lampiran Cloud Interconnect (VLAN).

Hubungkan dari Cloud Shell

Cloud Shell menggunakan virtual machine Compute Engine yang dikelola oleh Google Cloud dan berada di luar jaringan VPC Anda. Oleh karena itu, jalur konektivitas tidak ada antara Cloud Shell dan ruang alamat IP pribadi jaringan VPC Anda.

Akibatnya, Cloud Shell tidak mendukung koneksi ke instance Cloud SQL yang hanya memiliki alamat IP pribadi.

Untuk terhubung ke instance Cloud SQL dari jaringan eksternal menggunakan konektivitas IP pribadi, lihat Menghubungkan ke instance Cloud SQL dari luar VPC-nya.

Menghubungkan dari alamat IP non-RFC 1918

RFC 1918 menentukan alamat IP yang ditetapkan untuk digunakan secara internal (yaitu, dalam organisasi) dan tidak akan dirutekan di internet. Secara khusus, yaitu:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Koneksi ke instance Cloud SQL yang menggunakan alamat IP pribadi akan otomatis diizinkan untuk rentang alamat RFC 1918. Dengan cara ini, semua klien pribadi dapat mengakses database tanpa melalui proxy.

Untuk terhubung dari alamat IP non-RFC 1918, Anda harus menetapkan otorisasi IP per instance untuk mengizinkan traffic dari rentang alamat IP non-RFC 1918.

Misalnya, gunakan perintah gcloud seperti berikut:

gcloud sql instances patch INSTANCE_NAME \
--authorized-networks=192.88.99.0/24,11.0.0.0/24

Secara default, Cloud SQL tidak mempelajari rute subnet non-RFC 1918 dari jaringan VPC Anda. Anda harus memperbarui peering jaringan ke Cloud SQL untuk mengekspor rute non-RFC 1918.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Ganti kode berikut:

  • PEERING_CONNECTION adalah nama koneksi peering yang dihasilkan oleh koneksi Private Service Connect antara jaringan VPC Anda dan jaringan produsen layanan.
  • VPC_NETWORK_NAME adalah nama jaringan VPC Anda.
  • PROJECT_ID adalah ID project jaringan VPC. Jika Anda menggunakan VPC Bersama, maka gunakan project ID host.

Untuk meminimalkan kehabisan alamat IP, Anda dapat menggunakan alamat IP publik yang digunakan secara pribadi.

Terhubung dari alamat IP yang digunakan secara pribadi

Jika ingin mengonfigurasi instance dalam rentang alamat IP publik yang digunakan secara pribadi, aktifkan export-subnet-routes-with-public-ip pada peering jaringan antara jaringan Anda dan jaringan Cloud SQL.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Ganti kode berikut:

  • PEERING_CONNECTION adalah nama koneksi peering yang dihasilkan oleh koneksi layanan pribadi antara jaringan VPC Anda dan jaringan produsen layanan. Untuk mengetahui nama koneksi peering tersebut, buka halaman peering jaringan VPC.
  • VPC_NETWORK_NAME adalah nama jaringan VPC Anda.
  • PROJECT_ID adalah ID project jaringan VPC. Jika Anda menggunakan VPC Bersama, gunakan project ID host.

Menghubungkan ke instance yang dikonfigurasi dengan alamat IP publik yang digunakan secara pribadi

Jika instance Anda dikonfigurasi dalam rentang alamat IP publik yang digunakan secara pribadi dan Anda ingin menghubungkannya, maka aktifkan import-subnet-routes-with-public-ip pada peering jaringan antara jaringan Anda dan jaringan Cloud SQL.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

Ganti kode berikut:

  • PEERING_CONNECTION adalah nama koneksi peering yang dihasilkan oleh koneksi layanan pribadi antara jaringan VPC Anda dan jaringan produsen layanan. Untuk menemukan nama koneksi peering, buka halaman VPC network peering.
  • VPC_NETWORK_NAME adalah nama jaringan VPC Anda.
  • PROJECT_ID adalah ID project jaringan VPC. Gunakan project ID host jika Anda menggunakan VPC Bersama.

Menghubungkan menggunakan endpoint tulis

Selain alamat IP pribadi, Anda dapat menggunakan endpoint tulis dalam string koneksi SQL. Endpoint tulis adalah nama domain name service (DNS) global yang otomatis me-resolve ke alamat IP instance utama saat ini. Dengan menggunakan endpoint tulis, Anda dapat menghindari perubahan koneksi aplikasi saat terjadi kegagalan region.

Jika terjadi pengalihan atau peralihan failover replika, endpoint tulis dapat membantu mengelola alamat IP pribadi instance. Jika hal ini terjadi, gunakan endpoint tulis untuk terhubung ke instance yang bertindak sebagai instance utama.

Cara Cloud SQL membuat endpoint tulis

Jika Anda mengaktifkan Cloud DNS API untuk project Google Cloud , dan setelahnya, Anda membuat instance edisi Cloud SQL Enterprise Plus utama, mempromosikan replika untuk instance, atau mengupgrade instance dari edisi Cloud SQL Enterprise, Cloud SQL akan otomatis membuat endpoint tulis dan menetapkannya ke instance.

Untuk mengetahui informasi selengkapnya, lihat Melihat endpoint tulis.

Menetapkan endpoint tulis ke instance

Jika Anda tidak mengaktifkan Cloud DNS API untuk project Google Cloud , lalu Anda membuat, mempromosikan, atau mengupgrade instance, Cloud SQL tidak akan otomatis menetapkan endpoint tulis ke instance.

Agar Cloud SQL membuat endpoint tulis dan menetapkannya ke instance, lihat Membuat endpoint tulis.

Batasan Layanan Terkelola untuk Microsoft Active Directory

Jika region instance utama asli menjadi tidak tersedia dan Layanan Terkelola untuk Microsoft Active Directory diaktifkan, endpoint tulis instance utama yang baru dipromosikan tidak dapat digunakan dengan autentikasi Microsoft AD Terkelola untuk terhubung setelah operasi failover.

Dukungan untuk endpoint tulis edisi Cloud SQL Enterprise Plus di seluruh kepercayaan lintas forest

VM yang digabungkan secara lokal mengandalkan perutean akhiran nama untuk autentikasi. Endpoint tulis instance edisi Cloud SQL Enterprise Plus, yang dikelola oleh Cloud SQL, menggunakan format nama host yang berbeda, misalnya, *.sql-psa.goog.

Jika endpoint tulis yang terkait dengan instance edisi Cloud SQL Enterprise Plus Anda beroperasi dari domain yang terhubung melalui hubungan kepercayaan, format koneksi ini dapat mencegah domain lokal menemukan domain otoritatif untuk Nama Prinsipal Layanan secara otomatis.

Untuk mengatasinya, Anda perlu menambahkan akhiran domain yang dikelola Cloud SQL yang relevan (misalnya, goog atau sql-psa.goog) sebagai akhiran UPN alternatif. Anda harus menambahkan akhiran ini, di tingkat forest, dalam Active Directory domain terkelola menggunakan akun setupadmin:

  1. Di Active Directory terkelola, selesaikan langkah-langkah berikut:
    1. Di jendela Server Manager, pilih Tools. Kemudian, pilih Active Directory Domains and Trusts.
    2. Di panel, klik kanan Active Directory Domains and Trusts (node root).
    3. Kemudian, pilih Properties.
    4. Di tab UPN Suffixes, masukkan akhiran UPN alternatif (misalnya, sql-psa.goog).
    5. Klik Tambahkan.
    6. Klik Terapkan.
    7. Klik Oke.
  2. Di Active Directory lokal Anda, selesaikan langkah-langkah berikut:
    1. Di jendela Server Manager, pilih Tools, lalu pilih Active Directory Domains and Trusts.
    2. Di panel, klik kanan nama domain AD terkelola dan kepercayaan Anda. Ini adalah domain terkelola tertentu yang memiliki kepercayaan terhadap domain lokal Anda.
    3. Pilih Properties, lalu buka tab Trusts.
    4. Di bagian Domains trusted by this domain (outgoing trusts) atau Domains that trust this domain (incoming trusts), pilih entri untuk nama domain terkelola Anda, lalu klik Properties.
    5. Buka tab Name Suffix Routing, lalu klik Refresh.
    6. Temukan dan pilih akhiran nama yang baru ditambahkan, seperti sql-psa.goog lalu klik Aktifkan.
    7. Klik Terapkan dan OK di semua dialog yang tersisa.

Memecahkan masalah

Lihat memecahkan masalah untuk masalah konektivitas yang diketahui, dan juga proses debug masalah koneksi untuk mendapatkan bantuan diagnostik mandiri.