Terhubung ke jaringan VPC

Halaman ini menunjukkan cara menggunakan Akses VPC Serverless untuk menghubungkan fungsi Cloud Run langsung ke jaringan VPC Anda, yang memungkinkan akses ke instance VM Compute Engine, Memorystore instance, dan resource lain apa pun dengan alamat IP internal.

Sebelum memulai

Membuat konektor Akses VPC Serverless

Untuk mengirim permintaan ke jaringan VPC dan menerima respons yang sesuai tanpa menggunakan internet publik, Anda dapat menggunakan konektor Akses VPC Serverless.

Jika konektor Anda berada di project yang sama dengan VPC-nya jaringan, Anda dapat membuat konektor menggunakan subnet yang ada atau membuat konektor dan subnet baru.

Jika konektor Anda berada di project layanan dan menggunakan VPC Bersama jaringan, konektor, dan jaringan VPC yang terkait dengannya project yang berbeda-beda. Saat konektor dan jaringan VPC-nya berada project yang berbeda, administrator jaringan VPC Bersama harus membuat subnet konektor di Jaringan VPC Bersama sebelum Anda dapat membuat konektor, dan Anda harus membuat konektor menggunakan subnet yang ada.

Untuk mempelajari persyaratan subnet lebih lanjut, lihat subnet konektor persyaratan.

Untuk mempelajari throughput konektor, termasuk jenis mesin dan penskalaan, lihat Throughput dan penskalaan.

Anda dapat membuat konektor menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform.

Konsol

  1. Buka halaman ringkasan Akses VPC Serverless.

    Buka Akses VPC Serverless

  2. Klik Create connector.

  3. Di kolom Nama, masukkan nama untuk konektor Anda, yang cocok dengan Penamaan Compute Engine yang sesuai, dengan persyaratan tambahan bahwa nama harus kurang dari 21 panjang karakter, dan tanda hubung (-) dihitung sebagai dua karakter.

  4. Di kolom Region, pilih region untuk konektor Anda. Region ini harus cocok dengan region layanan serverless Anda.

    Jika layanan atau tugas Anda berada di region us-central atau europe-west, gunakan us-central1 atau europe-west1.

  5. Di kolom Jaringan, pilih jaringan VPC yang akan dipasangkan konektor.

  6. Pada kolom Subnet pilih salah satu opsi berikut:

    • Buat konektor menggunakan subnet yang ada: Pilih konektor yang ada di kolom Subnet.

    • Buat konektor dan subnet baru: Pilih Rentang IP kustom di di kolom Subnet. Kemudian, masukkan alamat pertama di /28 yang tidak digunakan CIDR (misalnya 10.8.0.0/28) yang akan digunakan sebagai alamat IPv4 utama rentang subnet baru yang dibuat Google Cloud di antarmuka Jaringan VPC. Pastikan rentang IP tidak bertentangan dengan rute yang ada di jaringan VPC konektor. Nama subnet baru dimulai dengan "aet-" .

  7. (Opsional) Guna menetapkan opsi penskalaan untuk mendapatkan kontrol tambahan atas konektor, klik Tampilkan Setelan Penskalaan untuk menampilkan formulir penskalaan.

    1. Tetapkan jumlah minimum dan maksimum instance untuk konektor Anda, atau gunakan default, yaitu 2 (minimum) dan 10 (maksimum). Tujuan konektor diskalakan hingga jumlah maksimum yang ditentukan jika penggunaan traffic memerlukan tetapi konektor tidak menurunkan skala saat traffic menurun. Anda harus menggunakan nilai antara 2 dan 10.
    2. Di menu Jenis Instance, pilih jenis mesin yang akan digunakan untuk konektor, atau gunakan e2-micro default. Perhatikan sidebar biaya di sisi kanan saat Anda memilih jenis instance, yang menampilkan estimasi biaya dan bandwidth.
  8. Klik Buat.

  9. Tanda centang berwarna hijau akan muncul di samping nama konektor saat konektor siap digunakan.

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Update komponen gcloud ke versi terbaru:

    gcloud components update
  3. Pastikan API Akses VPC Serverless diaktifkan untuk project Anda:

    gcloud services enable vpcaccess.googleapis.com
  4. Buat konektor menggunakan salah satu opsi berikut:

    Untuk detail selengkapnya dan argumen opsional, lihat gcloud referensi.

    • Buat konektor menggunakan subnet yang ada:

      gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
       --region REGION \
       --subnet SUBNET_NAME \
       --subnet-project HOST_PROJECT_ID \
       --min-instances MIN \
       --max-instances MAX \
       --machine-type MACHINE_TYPE

      Ganti kode berikut:

      • CONNECTOR_NAME: nama untuk konektor Anda, penamaan Compute Engine yang cocok yang sesuai, dengan persyaratan tambahan bahwa nama harus kurang dari 21 panjang karakter, dan tanda hubung (-) dihitung sebagai dua karakter.
      • REGION: region untuk konektor Anda, yang cocok dengan region layanan atau tugas serverless Anda. Jika layanan atau pekerjaan Anda di us-central atau europe-west, gunakan us-central1 atau europe-west1.
      • SUBNET_NAME: nama subnet yang ada.
      • HOST_PROJECT_ID: host VPC Bersama project ID Anda. Jika konektor dan subnet yang ada berada project yang sama, hapus flag --subnet-project.
      • MIN: jumlah minimum instance yang akan digunakan ke konektor. Gunakan bilangan bulat antara 2(default) dan 9.
      • MAX: jumlah maksimum instance yang akan digunakan ke konektor. Gunakan bilangan bulat antara 3 dan 10 (default). Jika konektor menskalakan hingga jumlah maksimum instance, akan tidak menurunkan skala.
      • MACHINE_TYPE: harus salah satu dari berikut ini: f1-micro, e2-micro, atau e2-standard-4.
    • Buat konektor dan subnet baru:

      gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
       --region REGION \
       --network VPC_NETWORK \
       --range IP_RANGE
       --min-instances MIN \
       --max-instances MAX \
       --machine-type MACHINE_TYPE

      Ganti kode berikut:

      • CONNECTOR_NAME: nama untuk konektor Anda, penamaan Compute Engine yang cocok yang sesuai, dengan persyaratan tambahan bahwa nama harus kurang dari 21 panjang karakter, dan tanda hubung (-) dihitung sebagai dua karakter.
      • REGION: region untuk konektor Anda, yang cocok dengan region layanan atau tugas serverless Anda. Jika layanan atau pekerjaan Anda di us-central atau europe-west, gunakan us-central1 atau europe-west1.
      • VPC_NETWORK: nama VPC jaringan tempat konektor Anda dipasang. Konektor dan Jaringan VPC harus ditempatkan di project yang sama.
      • IP_RANGE: memberikan CIDR /28 yang tidak digunakan (untuk contoh 10.8.0.0/28) untuk digunakan sebagai rentang alamat IPv4 utama dari subnet baru yang dibuat Google Cloud di antarmuka Jaringan VPC. Pastikan rentang IP tidak bentrok dengan rute yang ada di rute konektor Jaringan VPC. Nama subnet baru dimulai dengan "aet-" .
      • MIN: jumlah minimum instance yang akan digunakan ke konektor. Gunakan bilangan bulat antara 2(default) dan 9.
      • MAX: jumlah maksimum instance yang akan digunakan ke konektor. Gunakan bilangan bulat antara 3 dan 10 (default). Jika konektor menskalakan hingga jumlah maksimum instance, akan tidak menurunkan skala.
      • MACHINE_TYPE: harus salah satu dari berikut ini: f1-micro, e2-micro, atau e2-standard-4.
  5. Pastikan konektor Anda berstatus READY sebelum menggunakannya:

    gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \
    --region REGION

    Ganti kode berikut:

    • CONNECTOR_NAME: nama konektor Anda; ini adalah nama yang Anda tentukan pada langkah sebelumnya.
    • REGION: region konektor Anda; ini adalah region yang Anda tentukan pada langkah sebelumnya.

    Output harus berisi baris state: READY.

Terraform

Anda dapat menggunakan resource Terraform untuk mengaktifkan vpcaccess.googleapis.com API.

resource "google_project_service" "vpcaccess-api" {
  project = var.project_id # Replace this with your project ID in quotes
  service = "vpcaccess.googleapis.com"
}

Anda dapat menggunakan modul Terraform untuk membuat jaringan VPC dan subnet, lalu membuat konektor 20%.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-serverless-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "serverless-subnet"
      subnet_ip     = "10.10.10.0/28"
      subnet_region = "us-central1"
    }
  ]
}

module "serverless-connector" {
  source     = "terraform-google-modules/network/google//modules/vpc-serverless-connector-beta"
  version    = "~> 9.0"
  project_id = var.project_id
  vpc_connectors = [{
    name        = "central-serverless"
    region      = "us-central1"
    subnet_name = module.test-vpc-module.subnets["us-central1/serverless-subnet"].name
    # host_project_id = var.host_project_id # Specify a host_project_id for shared VPC
    machine_type  = "e2-standard-4"
    min_instances = 2
    max_instances = 7
    }
    # Uncomment to specify an ip_cidr_range
    #   , {
    #     name          = "central-serverless2"
    #     region        = "us-central1"
    #     network       = module.test-vpc-module.network_name
    #     ip_cidr_range = "10.10.11.0/28"
    #     subnet_name   = null
    #     machine_type  = "e2-standard-4"
    #     min_instances = 2
    #   max_instances = 7 }
  ]
  depends_on = [
    google_project_service.vpcaccess-api
  ]
}

Mengonfigurasi fungsi untuk terhubung ke jaringan VPC

Anda harus mengonfigurasi setiap fungsi untuk menggunakan konektor Akses VPC Serverless agar terhubung ke jaringan VPC Anda untuk mengirimkan traffic keluar. Anda dapat mengonfigurasi fungsi untuk menggunakan konektor dari konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Buka fungsi Cloud Run

  2. Klik Create Function jika Anda mengonfigurasi fungsi baru. Jika Anda mengonfigurasi fungsi yang ada, klik fungsi, lalu klik Edit.

  3. Jika Anda mengonfigurasi fungsi baru, isi halaman setelan fungsi awal seperti yang diinginkan, lalu klik Runtime, build... untuk meluaskan halaman konfigurasi fungsi.

  4. Klik tab Connections dan di bawah setelan Egress, pilih salah satu opsi berikut dari menu Jaringan VPC:

    • Untuk memutuskan koneksi layanan Anda dari jaringan VPC, pilih None.
    • Untuk menggunakan konektor yang ada, pilih konektor dari menu drop-down atau pilih Custom untuk menggunakan konektor yang tidak ditampilkan di menu drop-down.
    • Untuk membuat konektor baru, pilih Add new VPC connector. (Pratinjau)

    Lihat Membuat konektor Akses VPC Serverless untuk mengetahui detail tentang cara membuat konektor.

  5. Klik Next.

gcloud

Gunakan perintah gcloud functions deploy untuk men-deploy fungsi tersebut dan menentukan flag --vpc-connector:

gcloud functions deploy FUNCTION_NAME \
--vpc-connector CONNECTOR_NAME \
FLAGS...

dengan:

  • FUNCTION_NAME adalah nama fungsi Anda.
  • CONNECTOR_NAME adalah nama konektor Anda.
  • FLAGS... merujuk pada flag lain yang Anda teruskan selama deployment fungsi.

Gunakan flag --clear-vpc-connector untuk memutuskan sambungan fungsi Anda dari jaringan VPC:

gcloud functions deploy FUNCTION_NAME \
--clear-vpc-connector \
FLAGS...

Untuk kontrol lebih lanjut atas permintaan yang dirutekan melalui konektor, lihat Setelan egress.

Akses ke resource VPC

Aturan firewall yang diperlukan untuk konektor dalam project layanan

Jika Anda membuat konektor di jaringan VPC mandiri atau di jaringan project host Jaringan VPC Bersama, Google Cloud membuat semua aturan firewall yang diperlukan untuk operasi konektor. Untuk informasi selengkapnya, lihat Aturan firewall untuk konektor di jaringan VPC mandiri atau project host VPC bersama.

Namun, jika Anda membuat konektor dalam project layanan dan target konektor tersebut jaringan VPC Bersama di project host, Anda harus menambahkan aturan firewall untuk mengizinkan traffic yang diperlukan untuk operasi konektor dari hal berikut rentang:

Rentang ini digunakan oleh infrastruktur Google yang mendasari Cloud Run, fungsi Cloud Run, dan lingkungan standar App Engine. Semua permintaan dari alamat IP ini berasal dari infrastruktur Google untuk memastikan bahwa setiap resource serverless hanya berkomunikasi dengan konektor yang terhubung dengannya.

Anda juga harus mengizinkan traffic dari subnet konektor ke resource di Jaringan VPC.

Untuk melakukan langkah-langkah ini, Anda harus memiliki salah satu peran berikut pada project host:

Untuk konfigurasi dasar, terapkan aturan untuk mengizinkan resource serverless dalam project layanan yang terhubung ke Jaringan VPC Bersama untuk mengirim permintaan resource apa pun di jaringan.

Untuk menerapkan aturan ini, jalankan perintah berikut di project host:

  1. Buat aturan firewall yang mengizinkan permintaan dari jaringan pemeriksaan infrastruktur dan health check untuk menjangkau semua konektor di jaringan. Dalam perintah ini, porta UDP dan TCP digunakan sebagai {i>proxy<i} dan untuk Health check HTTP. Jangan mengubah port yang ditentukan.

    gcloud compute firewall-rules create serverless-to-vpc-connector \
        --allow tcp:667,udp:665-666,icmp \
        --source-ranges=35.199.224.0/19 \
        --direction=INGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-to-serverless \
        --allow tcp:667,udp:665-666,icmp \
        --destination-ranges=35.199.224.0/19 \
        --direction=EGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK
    gcloud compute firewall-rules create vpc-connector-health-checks \
        --allow tcp:667 \
        --source-ranges=35.191.0.0/16,35.191.192.0/18,130.211.0.0/22 \
        --direction=INGRESS \
        --target-tags vpc-connector \
        --network=VPC_NETWORK

    Ganti VPC_NETWORK dengan nama Jaringan VPC untuk memasang konektor Anda.

  2. Buat aturan firewall masuk di jaringan VPC Anda untuk mengizinkan permintaan dari konektor yang menargetkan jaringan ini:

    gcloud compute firewall-rules create vpc-connector-requests \
        --allow tcp,udp,icmp \
        --direction=INGRESS \
        --source-tags vpc-connector \
        --network=VPC_NETWORK

    Aturan ini memberi konektor VPC akses ke setiap resource dalam jaringan. Kepada membatasi resource yang dapat dijangkau oleh lingkungan serverless Anda dengan menggunakan Akses VPC Serverless, lihat Membatasi akses VM konektor ke resource jaringan VPC.

Membuat aturan firewall untuk konektor tertentu

Mengikuti prosedur di Aturan firewall yang wajib untuk konektor dalam project layanan menghasilkan aturan firewall yang berlaku untuk semua konektor, keduanya dan project yang dibuat di masa mendatang. Jika Anda tidak menginginkannya, tetapi ingin membuat aturan untuk konektor tertentu saja, Anda dapat menentukan cakupan aturan tersebut sehingga aturan tersebut hanya berlaku untuk konektor tersebut.

Untuk membatasi cakupan aturan ke konektor tertentu, Anda dapat menggunakan salah satu mekanisme berikut:

  • Tag jaringan: Setiap konektor memiliki dua tag jaringan: vpc-connector dan vpc-connector-REGION-CONNECTOR_NAME. Gunakan format yang terakhir digunakan untuk membatasi cakupan aturan firewall ke konektor tertentu.
  • Rentang IP: Gunakan ini hanya untuk aturan keluar, karena ini tidak berfungsi untuk aturan traffic masuk. Anda dapat menggunakan rentang IP konektor subnet untuk membatasi cakupan aturan firewall Anda ke satu VPC konektor 20%.

Membatasi akses VM konektor ke resource jaringan VPC

Anda dapat membatasi akses konektor ke resource di jaringan VPC targetnya menggunakan aturan firewall VPC atau aturan dalam kebijakan firewall. Anda dapat membuat batasan ini menggunakan salah satu strategi berikut:

  • Buat aturan traffic masuk yang targetnya mewakili resource yang ingin Anda batasi aksesnya ke VM konektor dan sumbernya mewakili VM konektor.
  • Buat aturan traffic keluar yang targetnya mewakili VM konektor, dan yang tujuannya mewakili resource yang ingin Anda batasi aksesnya ke VM konektor.

Contoh berikut mengilustrasikan setiap strategi.

Membatasi akses menggunakan aturan traffic masuk

Pilih tag jaringan atau rentang CIDR untuk mengontrol traffic yang masuk ke jaringan VPC Anda.

Network tags

Langkah-langkah berikut menunjukkan cara membuat aturan traffic masuk yang membatasi akses konektor ke jaringan VPC berdasarkan tag jaringan konektor.

  1. Pastikan Anda memiliki izin yang diperlukan untuk menyisipkan aturan firewall. Anda harus memiliki salah satu peran Identity and Access Management (IAM) berikut:

  2. Tolak traffic konektor di seluruh jaringan VPC Anda.

    Buat aturan firewall traffic masuk dengan prioritas di bawah 1000 di jaringan VPC Anda untuk menolak traffic masuk dari tag jaringan konektor. Aturan ini akan menggantikan aturan firewall implisit yang secara default dibuat oleh Akses VPC Serverless di jaringan VPC Anda secara default.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Ganti kode berikut:

    • RULE_NAME: nama aturan firewall baru. Contoh, deny-vpc-connector.

    • PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah tcp atau udp. Misalnya, tcp:80,udp mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flag allow.

      Untuk tujuan keamanan dan validasi, Anda juga dapat mengonfigurasi aturan penolakan guna memblokir traffic untuk protokol yang tidak didukung berikut: ah, all, esp, icmp, ipip, dan sctp.

    • VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor universal jika Anda ingin membatasi akses untuk semua konektor (termasuk konektor yang dibuat di masa mendatang), atau tag jaringan unik jika Anda ingin membatasi akses untuk konektor tertentu.

      • Tag jaringan universal: vpc-connector
      • Tag jaringan unik: vpc-connector-REGION-CONNECTOR_NAME

        Ganti:

        • REGION: region konektor yang ingin Anda batasi
        • CONNECTOR_NAME: nama konektor yang ingin Anda batasi

      Untuk mempelajari tag jaringan konektor lebih lanjut, lihat Tag jaringan.

    • VPC_NETWORK: nama jaringan VPC

    • PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.

  3. Izinkan traffic konektor ke resource yang akan menerima traffic konektor.

    Gunakan flag allow dan target-tags untuk membuat aturan firewall traffic masuk yang menargetkan resource di jaringan VPC yang Anda inginkan untuk diakses oleh konektor VPC. Tetapkan prioritas untuk aturan ini ke nilai yang lebih rendah daripada prioritas aturan yang Anda buat di langkah sebelumnya.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY

    Ganti kode berikut:

    • RULE_NAME: nama aturan firewall baru. Contoh, allow-vpc-connector-for-select-resources.

    • PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah tcp atau udp. Misalnya, tcp:80,udp mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flag allow.

    • VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor universal jika Anda ingin membatasi akses untuk semua konektor (termasuk konektor yang dibuat di masa mendatang), atau tag jaringan unik jika Anda ingin membatasi akses untuk konektor tertentu. Tag ini harus sama dengan tag jaringan yang Anda tentukan di langkah sebelumnya.

      • Tag jaringan universal: vpc-connector
      • Tag jaringan unik: vpc-connector-REGION-CONNECTOR_NAME

        Ganti:

        • REGION: region konektor yang ingin Anda batasi
        • CONNECTOR_NAME: nama konektor yang ingin Anda batasi

      Untuk mempelajari tag jaringan konektor lebih lanjut, lihat Tag jaringan.

    • VPC_NETWORK: nama jaringan VPC Anda

    • RESOURCE_TAG: tag jaringan untuk resource VPC yang Anda inginkan untuk diakses oleh konektor VPC

    • PRIORITY: bilangan bulat yang lebih kecil daripada prioritas yang Anda tetapkan pada langkah sebelumnya. Misalnya, jika Anda menetapkan prioritas untuk aturan yang dibuat di langkah sebelumnya ke 990, coba 980.

Untuk informasi selengkapnya tentang flag wajib dan opsional dalam membuat aturan firewall, baca dokumentasi untuk gcloud compute firewall-rules create.

Rentang CIDR

Langkah-langkah berikut menunjukkan cara membuat aturan traffic masuk yang membatasi akses konektor ke jaringan VPC berdasarkan rentang CIDR konektor.

  1. Pastikan Anda memiliki izin yang diperlukan untuk menyisipkan aturan firewall. Anda harus memiliki salah satu peran Identity and Access Management (IAM) berikut:

  2. Tolak traffic konektor di seluruh jaringan VPC Anda.

    Buat aturan firewall traffic masuk dengan prioritas di bawah 1000 di jaringan VPC Anda untuk menolak traffic masuk dari rentang CIDR konektor. Aturan ini akan menggantikan aturan firewall implisit yang secara default dibuat oleh Akses VPC Serverless di jaringan VPC Anda secara default.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Ganti kode berikut:

    • RULE_NAME: nama aturan firewall baru. Contoh, deny-vpc-connector.

    • PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah tcp atau udp. Misalnya, tcp:80,udp mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flag allow.

      Untuk tujuan keamanan dan validasi, Anda juga dapat mengonfigurasi aturan penolakan guna memblokir traffic untuk protokol yang tidak didukung berikut: ah, all, esp, icmp, ipip, dan sctp.

    • VPC_CONNECTOR_CIDR_RANGE: rentang CIDR untuk konektor yang aksesnya Anda batasi

    • VPC_NETWORK: nama jaringan VPC Anda

    • PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.

  3. Izinkan traffic konektor ke resource yang akan menerima traffic konektor.

    Gunakan flag allow dan target-tags untuk membuat aturan firewall traffic masuk yang menargetkan resource di jaringan VPC yang Anda inginkan untuk diakses oleh konektor VPC. Tetapkan prioritas untuk aturan ini ke nilai yang lebih rendah daripada prioritas aturan yang Anda buat di langkah sebelumnya.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY

    Ganti kode berikut:

    • RULE_NAME: nama aturan firewall baru. Contoh, allow-vpc-connector-for-select-resources.

    • PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah tcp atau udp. Misalnya, tcp:80,udp mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flag allow.

    • VPC_CONNECTOR_CIDR_RANGE: rentang CIDR untuk konektor yang aksesnya Anda batasi

    • VPC_NETWORK: nama jaringan VPC Anda

    • RESOURCE_TAG: tag jaringan untuk resource VPC yang Anda inginkan untuk diakses oleh konektor VPC

    • PRIORITY: bilangan bulat yang lebih kecil daripada prioritas yang Anda tetapkan pada langkah sebelumnya. Misalnya, jika Anda menetapkan prioritas untuk aturan yang dibuat di langkah sebelumnya ke 990, coba 980.

Untuk informasi selengkapnya tentang flag wajib dan opsional dalam membuat aturan firewall, lihat dokumentasi untuk gcloud compute firewall-rules create.

Membatasi akses menggunakan aturan traffic keluar

Langkah-langkah berikut menunjukkan cara membuat aturan traffic keluar untuk membatasi akses konektor.

  1. Pastikan Anda memiliki izin yang diperlukan untuk menyisipkan aturan firewall. Anda harus memiliki salah satu peran Identity and Access Management (IAM) berikut:

  2. Tolak traffic keluar dari konektor Anda.

    Buat aturan firewall traffic keluar di konektor Akses VPC Serverless Anda agar tidak mengirim traffic keluar, dengan pengecualian untuk respons yang sudah ditetapkan, ke tujuan mana pun.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --direction=EGRESS \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --network=VPC_NETWORK \
    --priority=PRIORITY

    Ganti kode berikut:

    • RULE_NAME: nama aturan firewall baru. Contoh, deny-vpc-connector.

    • PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah tcp atau udp. Misalnya, tcp:80,udp mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flag allow.

      Untuk tujuan keamanan dan validasi, Anda juga dapat mengonfigurasi aturan penolakan guna memblokir traffic untuk protokol yang tidak didukung berikut: ah, all, esp, icmp, ipip, dan sctp.

    • VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor VPC universal jika Anda ingin aturan tersebut diterapkan ke semua konektor VPC yang ada dan konektor VPC apa pun yang dibuat di masa mendatang. Atau, tag jaringan konektor VPC unik jika Anda ingin mengontrol konektor tertentu.

    • VPC_NETWORK: nama jaringan VPC Anda

    • PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.

  3. Izinkan traffic keluar saat tujuan berada dalam rentang CIDR yang Anda inginkan untuk diakses oleh konektor Anda.

    Gunakan flag allow dan destination-ranges untuk membuat aturan firewall yang mengizinkan traffic keluar dari konektor Anda untuk rentang tujuan tertentu. Tetapkan rentang tujuan ke rentang CIDR resource di jaringan VPC yang Anda inginkan untuk diakses oleh konektor. Tetapkan prioritas untuk aturan ini ke nilai yang lebih rendah daripada prioritas aturan yang Anda buat di langkah sebelumnya.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --destination-ranges=RESOURCE_CIDR_RANGE \
    --direction=EGRESS \
    --network=VPC_NETWORK \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --priority=PRIORITY

    Ganti kode berikut:

    • RULE_NAME: nama aturan firewall baru. Contoh, allow-vpc-connector-for-select-resources.

    • PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah tcp atau udp. Misalnya, tcp:80,udp mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flag allow.

    • RESOURCE_CIDR_RANGE: rentang CIDR untuk konektor yang aksesnya Anda batasi

    • VPC_NETWORK: nama jaringan VPC Anda

    • VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor VPC universal jika Anda ingin aturan tersebut diterapkan ke semua konektor VPC yang ada dan konektor VPC apa pun yang dibuat di masa mendatang. Atau, tag jaringan konektor VPC unik jika Anda ingin mengontrol konektor tertentu. Jika Anda menggunakan tag jaringan unik pada langkah sebelumnya, gunakan tag jaringan unik tersebut.

    • PRIORITY: bilangan bulat yang lebih kecil daripada prioritas yang Anda tetapkan pada langkah sebelumnya. Misalnya, jika Anda menetapkan prioritas untuk aturan yang dibuat di langkah sebelumnya ke 990, coba 980.

Untuk informasi selengkapnya tentang flag wajib dan opsional dalam membuat aturan firewall, baca dokumentasi untuk gcloud compute firewall-rules create.

Mengelola konektor

Memutuskan sambungan fungsi dari jaringan VPC

Anda dapat memutuskan koneksi fungsi dari jaringan VPC menggunakan konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Buka halaman ringkasan fungsi Cloud Run di Konsol Google Cloud:

    Buka fungsi Cloud Run

  2. Atau, klik fungsi yang ada untuk membuka halaman detailnya dan klik Edit.

  3. Perluas setelan lanjutan dengan mengeklik Runtime, build....

  4. Di tab Sambungan pada setelan Egress, masukkan nama konektor Anda di bidang konektor VPC, atau kosongkan bidang tersebut untuk memutuskan sambungan fungsi Anda dari jaringan VPC.

gcloud

Gunakan flag --clear-vpc-connector untuk memutuskan sambungan fungsi Anda dari jaringan VPC:

gcloud functions deploy FUNCTION_NAME \
--clear-vpc-connector \
FLAGS...

dengan:

  • FUNCTION_NAME adalah nama fungsi Anda.
  • CONNECTOR_NAME adalah nama konektor Anda.
  • FLAGS... merujuk pada flag lain yang Anda teruskan selama deployment fungsi.

Konektor akan terus dikenai biaya meskipun tidak ada traffic dan koneksinya sudah diputus. Untuk mengetahui detailnya, lihat harga. Jika Anda tidak lagi memerlukan konektor, pastikan untuk menghapusnya agar penagihan tidak berlanjut.

Memperbarui konektor

Anda dapat memperbarui dan memantau atribut konektor berikut menggunakan konsol Google Cloud, Google Cloud CLI, atau API:

  • Jenis mesin (instance)
  • Jumlah minimum dan maksimum instance
  • Throughput terbaru, jumlah instance, dan pemakaian CPU

Update jenis mesin

Konsol

  1. Buka halaman ringkasan Akses VPC Serverless.

    Buka Akses VPC Serverless

  2. Pilih konektor yang ingin Anda edit, lalu klik Edit.

  3. Dalam daftar Jenis instance, pilih jenis mesin (instance) yang Anda inginkan. Untuk mempelajari jenis mesin yang tersedia, baca dokumentasi tentang Throughput dan penskalaan.

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Untuk mengupdate jenis mesin konektor, jalankan perintah berikut di terminal Anda:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
    Ganti yang berikut:

    • CONNECTOR_NAME: nama konektor Anda
    • REGION: nama region konektor Anda
    • MACHINE_TYPE: jenis mesin pilihan Anda. Untuk mempelajari tentang jenis mesin yang tersedia, baca dokumentasi tentang Throughput dan penskalaan.

Mengurangi jumlah minimum dan maksimum instance

Untuk mengurangi jumlah minimum dan maksimum instance, lakukan tindakan berikut:

  1. Buat konektor baru dengan nilai yang Anda inginkan.
  2. Perbarui fungsi atau layanan Anda agar dapat menggunakan konektor baru.
  3. Hapus konektor lama setelah Anda memindahkan traffic-nya.

Baca Membuat konektor Akses VPC Serverless untuk informasi selengkapnya.

Menambah jumlah minimum dan maksimum instance

Konsol

  1. Buka halaman ringkasan Akses VPC Serverless.

    Buka Akses VPC Serverless

  2. Pilih konektor yang ingin Anda edit, lalu klik Edit.

  3. Di kolom Instance minimum, pilih jumlah minimum instance yang Anda inginkan.

    Nilai terkecil yang mungkin untuk kolom ini adalah nilai saat ini. Nilai terbesar yang mungkin untuk kolom ini adalah nilai saat ini di kolom Instance maksimum dikurangi 1. Misalnya, jika nilai di kolom Instance maksimum adalah 8, nilai terbesar yang mungkin untuk kolom Instance minimum adalah 7.

  4. Di kolom Instance maksimum, pilih jumlah maksimum instance yang Anda inginkan.

    Nilai terkecil yang mungkin untuk kolom ini adalah nilai saat ini. Nilai terbesar yang mungkin untuk kolom ini adalah 10.

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Untuk menambah jumlah minimum atau maksimum instance konektor, jalankan perintah berikut di terminal Anda:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
    Ganti yang berikut:

  • CONNECTOR_NAME: nama konektor Anda
  • REGION: nama region konektor Anda
  • MIN_INSTANCES: jumlah minimum instance yang Anda inginkan.
    • Nilai terkecil yang mungkin untuk kolom ini adalah nilai min_instances saat ini. Untuk mengetahui nilai saat ini, baca Menemukan nilai atribut saat ini.
    • Nilai terbesar yang mungkin untuk kolom ini adalah nilai max_instances saat ini dikurangi 1, karena min_instances harus lebih kecil dari max_instances. Misalnya, jika max_instances adalah 8, nilai terbesar yang mungkin untuk kolom ini adalah 7. Jika konektor Anda menggunakan nilai max-instances default 10, nilai terbesar yang mungkin untuk kolom ini adalah 9. Untuk mengetahui nilai max-instances, lihat Menemukan nilai atribut saat ini.
  • MAX_INSTANCES:

    • Nilai terkecil yang mungkin untuk kolom ini adalah nilai max_instances saat ini. Untuk mengetahui nilai saat ini, baca Menemukan nilai atribut saat ini.
    • Nilai terbesar yang mungkin untuk kolom ini adalah 10.

    Jika hanya ingin menambah jumlah minimum instance, tetapi bukan jumlah maksimumnya, Anda tetap harus menentukan jumlah maksimum instance. Sebaliknya, jika Anda hanya ingin memperbarui jumlah maksimum instance, tetapi bukan jumlah minimumnya, Anda tetap harus menentukan jumlah minimum instance. Untuk mempertahankan jumlah minimum atau maksimum instance pada nilainya saat ini, tentukan nilai instance saat ini. Untuk mengetahui nilainya saat ini, baca Menemukan nilai atribut saat ini.

Menemukan nilai atribut saat ini

Untuk menemukan nilai atribut saat ini bagi konektor Anda, jalankan perintah berikut ini di terminal Anda:

gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
Ganti yang berikut:

  • CONNECTOR_NAME: nama konektor Anda
  • REGION: nama region konektor Anda
  • PROJECT: nama project Google Cloud Anda

Memantau penggunaan konektor

Memantau penggunaan dari waktu ke waktu dapat membantu Anda menentukan waktu untuk menyesuaikan konektor setelan. Misalnya, jika penggunaan CPU melonjak, Anda dapat mencoba meningkatkan jumlah instance maksimum untuk hasil yang lebih baik. Atau jika Anda sudah memaksimalkan throughput yang lebih tinggi, Anda mungkin memutuskan untuk beralih ke jenis mesin yang lebih besar.

Untuk menampilkan diagram throughput, jumlah instance, dan CPU konektor metrik pemakaian dari waktu ke waktu dengan menggunakan Konsol Google Cloud:

  1. Buka halaman ringkasan Akses VPC Serverless.

    Buka Akses VPC Serverless

  2. Klik nama konektor yang ingin Anda pantau.

  3. Pilih jumlah hari yang ingin Anda tampilkan antara 1 dan 90 hari.

  4. Di diagram throughput, arahkan kursor ke diagram untuk melihat konektor. throughput terbaru.

  5. Pada diagram Jumlah instance, arahkan kursor ke diagram untuk melihat jumlah instance yang baru-baru ini digunakan oleh konektor.

  6. Di diagram Pemanfaatan CPU, arahkan kursor ke diagram untuk melihat penggunaan CPU terbaru konektor. Diagram menampilkan penggunaan CPU yang didistribusikan lintas instance untuk persentil ke-50, ke-95, dan ke-99.

Menghapus konektor

Sebelum Anda menghapus konektor, pastikan tidak ada layanan atau tugas yang masih terhubung ke konektor tersebut.

Untuk pengguna VPC Bersama yang menyiapkan konektor di project host VPC Bersama, Anda dapat menggunakan perintah gcloud compute networks vpc-access connectors describe untuk mencantumkan project yang memiliki layanan atau tugas yang menggunakan konektor tertentu.

Untuk menghapus konektor, gunakan konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Buka halaman ringkasan Akses VPC Serverless di konsol Google Cloud:

    Buka Akses VPC Serverless

  2. Pilih konektor yang ingin dihapus.

  3. Klik Delete.

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Gunakan perintah gcloud berikut untuk menghapus konektor:

    gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
    

    Ganti kode berikut:

    • CONNECTOR_NAME dengan nama konektor yang ingin dihapus
    • REGION dengan region tempat konektor berada

Pemecahan masalah

Izin akun layanan

Untuk menjalankan operasi di project Google Cloud Anda, Akses VPC Serverless menggunakan akun layanan Agen Layanan Akses VPC Serverless. Alamat email akun layanan ini memiliki format berikut:

service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com

Secara default, akun layanan ini memiliki peran Agen Layanan Akses VPC Serverless (roles/vpcaccess.serviceAgent). Operasi Akses VPC Serverless mungkin gagal jika Anda mengubah izin akun ini.

Error

Error akun layanan memerlukan peran Agen Layanan

Jika menggunakan batasan kebijakan organisasi Batasi Service Usage Resource untuk memblokir Cloud Deployment Manager (deploymentmanager.googleapis.com), Anda mungkin melihat pesan error berikut:

Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.

Tetapkan kebijakan organisasi untuk menghapus Deployment Manager dari daftar tolak atau menambahkannya ke daftar yang diizinkan.

Error pembuatan konektor

Jika pembuatan konektor menghasilkan error, coba langkah berikut:

  • Tentukan RFC 1918 rentang IP internal yang tidak tumpang tindih dengan alamat IP yang ada reservasi di jaringan VPC.
  • Beri project Anda izin untuk menggunakan image VM Compute Engine dari project dengan ID serverless-vpc-access-images. Untuk informasi selengkapnya tentang cara memperbarui kebijakan organisasi, lihat Menetapkan batasan akses image.

Tidak dapat mengakses resource

Jika Anda telah menentukan konektor, tetapi masih tidak dapat mengakses resource di jaringan VPC Anda, pastikan tidak ada aturan firewall di jaringan VPC dengan prioritas di bawah 1000 yang menolak traffic masuk dari rentang alamat IP konektor Anda.

Jika Anda mengonfigurasi konektor di project layanan VPC Bersama, pastikan aturan firewall Anda mengizinkan traffic masuk dari infrastruktur serverless ke konektor.

Error koneksi ditolak

Jika Anda menerima error connection refused atau connection timeout yang menurunkan performa jaringan, koneksi Anda dapat berkembang tanpa batasan di pemanggilan aplikasi serverless Anda. Untuk membatasi jumlah maksimum yang digunakan per instance, gunakan library klien yang mendukung koneksi Google Cloud. Untuk contoh mendetail tentang cara menggunakan kumpulan koneksi, lihat Mengelola koneksi database.

Error resource tidak ditemukan

Saat menghapus jaringan VPC atau aturan firewall, Anda mungkin melihat pesan yang mirip dengan berikut ini: The resource "aet-uscentral1-subnet--1-egrfw" was not found.

Untuk informasi tentang error ini dan solusinya, lihat Error resource tidak ditemukan dalam dokumentasi aturan firewall VPC.

Izin yang diperlukan vpcaccess.connectors.use untuk akun layanan tidak ada...

Pertama, pastikan peran roles/vpcaccess.user ditetapkan ke akun layanan.

Jika Anda masih mengalami masalah izin dengan konektor VPC, periksa apakah benar-benar VPC Bersama. Dalam hal ini, penyiapan tambahan diperlukan pada project host.

Langkah berikutnya