Terhubung ke jaringan VPC

Halaman ini menunjukkan cara menghubungkan layanan atau tugas Cloud Run ke jaringan VPC Anda, yang memungkinkan traffic keluar (outbound) dari Cloud Run ke Instance VM Compute Engine, instance Memorystore, dan resource lainnya dengan alamat IP internal.

Anda dapat mengaktifkan layanan atau tugas untuk mengirim traffic ke jaringan VPC dengan mengonfigurasi konektor Akses VPC Serverless atau menggunakan traffic keluar VPC Langsung (Pratinjau) tanpa memerlukan konektor.

Sebelum memulai

Batasan

Traffic IPv6 tidak didukung.

Buat konektor

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

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. Nama ini harus sesuai dengan konvensi penamaan Compute Engine, dengan batasan tambahan yaitu kurang dari 21 karakter dengan 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. Klik menu Subnet. Setiap konektor memerlukan subnet /28 tersendiri untuk menempatkan instance konektor. Subnet tidak dapat digunakan oleh resource lain seperti VM, Private Service Connect, atau load balancer.

    • Jika Anda menggunakan VPC Bersama, yang mengharuskan Anda menggunakan subnet Anda sendiri, pilih subnet /28 yang tidak digunakan. Untuk mengonfirmasi bahwa subnet Anda tidak digunakan untuk Private Service Connect atau Cloud Load Balancing, periksa apakah subnet purpose adalah PRIVATE dengan menjalankan perintah berikut di gcloud CLI:

      gcloud compute networks subnets describe SUBNET
      
      Ganti:

      • SUBNET: nama subnet Anda
    • Jika Anda tidak menggunakan VPC Bersama, buat subnet untuk konektor atau minta konektor untuk membuat subnet dengan memilih Rentang IP Kustom dari menu.

    • Di kolom rentang IP, masukkan alamat pertama pada rentang IP internal /28 CIDR yang belum direservasi. Rentang IP ini tidak boleh tumpang tindih dengan reservasi alamat IP apa pun yang sudah ada di jaringan VPC Anda. Misalnya, 10.8.0.0 (/28) dapat digunakan di sebagian besar project baru.

    • Subnet yang dibuat disembunyikan dan tidak dapat digunakan dalam aturan firewall dan konfigurasi NAT.

    • Lihat rentang IP yang saat ini dicadangkan di konsol Google Cloud.

    • Pelajari lebih lanjut tentang bekerja dengan subnet.

  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). Konektor diskalakan hingga batas maksimum yang ditentukan jika penggunaan traffic memerlukannya, tetapi konektor tidak diskalakan balik 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. Jika Anda menggunakan VPC Bersama, yang mengharuskan Anda menggunakan subnet Anda sendiri, buat konektor dengan perintah berikut:

    gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
    --region REGION \
    --subnet SUBNET \
    # If you are not using Shared VPC, omit the following line.
    --subnet-project HOST_PROJECT_ID \
    # Optional: specify minimum and maximum instance values between 2 and
    10, default is 2 min, 10 max.
    --min-instances MIN \
    --max-instances MAX \
    # Optional: specify machine type, default is e2-micro
    --machine-type MACHINE_TYPE
    

    Ganti kode berikut:

    • CONNECTOR_NAME: nama untuk konektor Anda. Nama ini harus sesuai dengan konvensi penamaan Compute Engine, dengan batasan tambahan yaitu kurang dari 21 karakter dengan tanda hubung (-) dihitung sebagai dua karakter.
    • REGION: region untuk konektor Anda; region ini harus cocok dengan region layanan atau tugas serverless Anda. Jika layanan atau tugas Anda berada di region us-central atau europe-west, gunakan us-central1 atau europe-west1.
    • SUBNET: nama subnet /28 yang tidak digunakan.
      • Subnet harus digunakan secara eksklusif oleh konektor. Subnet tersebut tidak dapat digunakan oleh resource lain seperti VM, Private Service Connect, atau load balancer.
      • Untuk mengonfirmasi bahwa subnet Anda tidak digunakan untuk Private Service Connect atau Cloud Load Balancing, pastikan subnet purpose adalah PRIVATE dengan menjalankan perintah berikut di gcloud CLI:
        gcloud compute networks subnets describe SUBNET
        
        Ganti:
        • SUBNET: nama subnet Anda.
      • Pelajari lebih lanjut tentang bekerja dengan subnet.
    • HOST_PROJECT_ID: ID project host; berikan ini hanya jika Anda menggunakan VPC Bersama.
    • MIN: jumlah minimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara 2 dan 9. Default-nya adalah 2. Untuk mempelajari penskalaan konektor, lihat Throughput dan penskalaan.
    • MAX: jumlah maksimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara 3 dan 10. Default-nya adalah 10. Jika traffic memerlukannya, konektor akan diskalakan ke instance [MAX], tetapi tidak diskalakan balik. Untuk mempelajari penskalaan konektor, lihat Throughput dan penskalaan.
    • MACHINE_TYPE: f1-micro, e2-micro, atau e2-standard-4. Untuk mempelajari tentang throughput konektor, termasuk jenis mesin dan penskalaan, lihat Throughput dan penskalaan.

    Untuk detail selengkapnya dan argumen opsional, lihat referensi gcloud.

  5. Jika Anda tidak menggunakan VPC Bersama dan ingin menyediakan rentang IP kustom, bukan menggunakan subnet yang ada, buat konektor dengan perintah berikut:

    gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
    --network VPC_NETWORK \
    --region REGION \
    --range IP_RANGE
    

    Ganti kode berikut:

    • CONNECTOR_NAME: nama untuk konektor Anda. Nama ini harus sesuai dengan konvensi penamaan Compute Engine, dengan batasan tambahan yaitu panjang nama harus kurang dari 21 karakter dengan tanda hubung (-) dihitung sebagai dua karakter.
    • VPC_NETWORK: jaringan VPC yang akan dipasangkan konektor.
    • REGION: region untuk konektor Anda. Region ini harus cocok dengan region layanan atau tugas serverless Anda. Jika layanan atau tugas Anda berada di region us-central atau europe-west, gunakan us-central1 atau europe-west1.
    • IP_RANGE: jaringan IP internal yang belum direservasi dan ruang /28 yang belum dialokasikan diperlukan. Nilai yang dimasukkan adalah jaringan dalam notasi CIDR (10.8.0.0/28). Rentang IP ini tidak boleh tumpang tindih dengan reservasi alamat IP yang ada di jaringan VPC Anda. Misalnya, 10.8.0.0/28 dapat digunakan di sebagian besar project baru. Subnet yang dibuat untuk rentang ini akan disembunyikan dan tidak dapat digunakan dalam aturan firewall dan konfigurasi NAT.

    Untuk mengetahui detail selengkapnya dan argumen opsional seperti kontrol throughput, baca referensi gcloud.

  6. 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 subnet dan jaringan VPC, lalu membuat konektor.

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
  ]
}

Konfigurasikan lingkungan serverless Anda untuk menggunakan konektor

Setelah Anda membuat konektor Akses VPC Serverless, konfigurasikan lingkungan serverless Anda untuk menggunakan konektor dengan mengikuti petunjuk untuk lingkungan serverless Anda:

Mengonfigurasikan Cloud Run untuk menggunakan konektor.

Saat Anda membuat layanan baru atau men-deploy revisi baru, Anda dapat mengonfigurasi layanan tersebut supaya menggunakan konektor dengan menggunakan Konsol Google Cloud, Google Cloud CLI, file YAML, atau resource Terraform.

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit and deploy new revision.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai keinginan, kemudian klik Container, vo;ume, jejaring, sekuritas untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Connections.

    gambar

    • Di kolom VPC Connector, pilih konektor yang akan digunakan atau pilih None untuk memutuskan koneksi layanan Anda dari jaringan VPC.
  5. Klik Buat atau Deploy.

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 menentukan konektor selama proses deployment, gunakan flag --vpc-connector:

    gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME
    • Ganti SERVICE dengan nama layanan Anda.
    • Ganti IMAGE_URL.
    • Ganti CONNECTOR_NAME dengan nama konektor Anda. Jika konektor Anda berada dalam project host VPC Bersama, nama ini harus berupa nama yang ditentukan sepenuhnya, misalnya:
      projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
      dengan HOST_PROJECT_ID adalah ID project host, CONNECTOR_REGION adalah region konektor Anda, dan CONNECTOR_NAME adalah nama yang Anda berikan untuk konektor.

    Untuk memasang, memperbarui, atau menghapus konektor dari layanan yang ada, gunakan perintah gcloud run services update dengan salah satu flag berikut sesuai kebutuhan:

    Misalnya, untuk memasang atau memperbarui konektor:

    gcloud run services update SERVICE --vpc-connector CONNECTOR_NAME
    • Ganti SERVICE dengan nama layanan Anda.
    • Ganti CONNECTOR_NAME dengan nama konektor Anda.

YAML

Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan perintah gcloud run services describe --format export, yang memberikan hasil yang telah diolah dalam format YAML. Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace. Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.

  1. Untuk melihat dan mendownload konfigurasi:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Tambahkan atau perbarui atribut run.googleapis.com/vpc-access-connector di bagian annotations pada atribut spec level teratas:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
    • Ganti SERVICE dengan nama layanan Cloud Run Anda
    • Ganti CONNECTOR_NAME dengan nama konektor Anda. Jika konektor Anda berada dalam project host VPC Bersama, nama ini harus berupa nama yang ditentukan sepenuhnya, misalnya:
      projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
      dengan HOST_PROJECT_ID adalah ID project host, CONNECTOR_REGION adalah region konektor Anda, dan CONNECTOR_NAME adalah nama yang Anda berikan untuk konektor.
  3. Ganti layanan dengan konfigurasi baru menggunakan perintah berikut:

    gcloud beta run services replace service.yaml

Terraform

Anda dapat menggunakan resource Terraform untuk membuat layanan dan mengonfigurasinya untuk menggunakan konektor Anda.

# Cloud Run service
resource "google_cloud_run_v2_service" "gcr_service" {
  name     = "mygcrservice"
  provider = google-beta
  location = "us-west1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
      resources {
        limits = {
          cpu    = "1000m"
          memory = "512Mi"
        }
      }
      # the service uses this SA to call other Google Cloud APIs
      # service_account_name = myservice_runtime_sa
    }

    scaling {
      # Limit scale up to prevent any cost blow outs!
      max_instance_count = 5
    }

    vpc_access {
      # Use the VPC Connector
      connector = google_vpc_access_connector.connector.id
      # all egress from the service should go through the VPC Connector
      egress = "ALL_TRAFFIC"
    }
  }
}

Konfigurasikan Cloud Functions untuk menggunakan konektor.

Anda dapat mengonfigurasi fungsi untuk menggunakan konektor dari Konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Buka halaman ringkasan Cloud Functions di konsol Google Cloud:

    Buka Cloud Functions

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

  3. Perluas setelan lanjutan dengan mengklik RUNTIME, BUILD AND CONNECTIONS SETTINGS.

  4. Di tab Koneksi di bagian Setelan keluar, masukkan nama konektor Anda di kolom Konektor VPC.

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 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. Jika konektor Anda berada dalam project host VPC Bersama, nama ini harus berupa nama yang ditentukan sepenuhnya, misalnya:
      projects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
      dengan HOST_PROJECT_ID adalah ID project host, CONNECTOR_REGION adalah region konektor Anda, dan CONNECTOR_NAME adalah nama yang Anda berikan untuk konektor.
    • FLAGS... merujuk pada flag lain yang Anda teruskan selama deployment fungsi.

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

Mengonfigurasi App Engine untuk menggunakan konektor

Python 2

  1. Hentikan penggunaan layanan URL-fetch App Engine.

    Secara default, semua permintaan dirutekan melalui layanan URL Fetch. Hal ini menyebabkan permintaan ke jaringan VPC Anda gagal. Untuk menonaktifkan default ini, lihat Menonaktifkan URL Fetch agar tidak menangani semua permintaan keluar.

    Anda masih dapat menggunakan library urlfetch secara langsung untuk setiap permintaan jika diperlukan, tetapi hal ini tidak direkomendasikan.

  2. Tambahkan kolom Akses VPC Serverless ke file app.yaml Anda:

    vpc_access_connector:
     name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Ganti kode berikut:

    • PROJECT_ID dengan project ID Google Cloud Anda. Jika konektor Anda berada dalam project host VPC Bersama, ID ini harus merupakan ID project host.
    • REGION dengan region tempat konektor Anda berada.
    • CONNECTOR_NAME dengan nama konektor Anda.
  3. Men-deploy layanan:

    gcloud app deploy

    Layanan yang telah Anda deploy dapat mengirim permintaan ke alamat IP internal untuk mengakses resource di jaringan VPC Anda.

Java 8

  1. Hentikan penggunaan layanan URL-fetch App Engine URLFetchService.

  2. Tambahkan elemen Akses VPC Serverless ke file appengine-web.xml layanan Anda:

    <vpc-access-connector>
    <name>projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name>
    </vpc-access-connector>
    

    Ganti kode berikut:

    • PROJECT_ID dengan project ID Google Cloud Anda. Jika konektor Anda berada dalam project host VPC Bersama, ID ini harus merupakan ID project host.
    • REGION dengan region tempat konektor Anda berada.
    • CONNECTOR_NAME dengan nama konektor Anda.
  3. Men-deploy layanan:

    gcloud app deploy WEB-INF/appengine-web.xml

    Layanan yang telah Anda deploy dapat mengirim permintaan ke alamat IP internal untuk mengakses resource di jaringan VPC Anda.

Go 1.11

  1. Hentikan penggunaan layanan URL-fetch App Engine.

    Akses VPC Serverless tidak mendukung URL Fetch, dan permintaan yang dibuat menggunakan URL Fetch akan mengabaikan setelan Akses VPC Serverless. Buat koneksi keluar dengan soket sebagai gantinya.

  2. Tambahkan kolom Akses VPC Serverless ke file app.yaml Anda:

    vpc_access_connector:
     name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Ganti kode berikut:

    • PROJECT_ID dengan project ID Google Cloud Anda
    • REGION dengan region tempat konektor Anda berada
    • CONNECTOR_NAME dengan nama konektor Anda
  3. Men-deploy layanan:

    gcloud app deploy

    Layanan yang telah Anda deploy dapat mengirim permintaan ke alamat IP internal untuk mengakses resource di jaringan VPC Anda.

Semua runtime lainnya

  1. Tambahkan kolom Akses VPC Serverless ke file app.yaml Anda:

    vpc_access_connector:
     name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Ganti kode berikut:

    • PROJECT_ID dengan project ID Google Cloud Anda. Jika konektor Anda berada dalam project host VPC Bersama, ID ini harus merupakan ID project host.
    • REGION dengan region tempat konektor Anda berada.
    • CONNECTOR_NAME dengan nama konektor Anda.
  2. Men-deploy layanan:

    gcloud app deploy

    Layanan yang telah Anda deploy dapat mengirim permintaan ke alamat IP internal untuk mengakses resource di jaringan VPC Anda.

Mengonfigurasi lingkungan Cloud Run Anda tanpa konektor

Anda dapat mengaktifkan layanan Cloud Run untuk mengirim traffic keluar (eksternal) langsung ke jaringan VPC, sehingga memungkinkan akses ke instance VM Compute Engine, instance Memorystore, dan resource lainnya dengan alamat IP internal.

Konfigurasikan layanan Anda tanpa konektor

Traffic keluar VPC langsung memungkinkan layanan Cloud Run Anda mengirim traffic ke jaringan VPC tanpa konektor Akses VPC Serverless. Biaya jaringan diskalakan ke nol seperti layanan itu sendiri. Anda juga dapat menggunakan tag jaringan secara langsung pada revisi layanan Cloud Run untuk keamanan jaringan yang terperinci.

Anda dapat mengonfigurasi Traffic keluar VPC Langsung dengan layanan menggunakan konsol Google Cloud, Google Cloud CLI, atau YAML

Konsol

  1. Buka Cloud Run

  2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi dan men-deploy layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai kebutuhan, lalu klik Container(s), volume, networking, security untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Networking.

  5. Klik Hubungkan ke VPC untuk traffic keluar.

  6. Klik Kirim traffic langsung ke VPC.

  7. Di kolom Network, pilih jaringan VPC yang ingin Anda kirimi traffic.

  8. Di kolom Subnet, pilih subnet tempat alamat IP diterima oleh layanan Anda. Anda dapat men-deploy beberapa layanan di subnet yang sama.

  9. Opsional: Masukkan nama tag jaringan yang ingin dikaitkan dengan layanan Anda atau layanan lainnya. Tag jaringan ditentukan pada tingkat revisi. Setiap revisi layanan dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.

  10. Untuk Pemilihan rute traffic, pilih salah satu opsi berikut:

    • Rutekan hanya permintaan IP pribadi ke VPC untuk hanya mengirim traffic ke alamat internal melalui jaringan VPC.
    • Rutekan semua traffic ke VPC untuk mengirim semua traffic keluar melalui jaringan VPC.
  11. Klik Buat atau Deploy.

  12. Untuk memverifikasi bahwa layanan Anda berada di jaringan VPC, klik layanan tersebut, lalu klik tab Networking. Jaringan dan subnet tercantum dalam kartu VPC.

    Kini Anda dapat mengirim permintaan dari layanan Cloud Run ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.

gcloud

Untuk men-deploy layanan Cloud Run tanpa konektor dari Google Cloud CLI:

  1. Pastikan Compute Engine API diaktifkan untuk project Anda:

    gcloud services enable compute.googleapis.com
    
  2. Deploy layanan Cloud Run Anda dengan perintah berikut:

    gcloud beta run deploy SERVICE_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION
    

    Ganti:

    • SERVICE_NAME dengan nama layanan Cloud Run Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • NETWORK dengan nama jaringan VPC Anda.
    • SUBNET dengan nama subnet Anda. Subnet harus berukuran /26 atau lebih besar. Traffic keluar VPC langsung mendukung rentang IPv4 RFC 1918, RFC 6598, dan Class E. Anda dapat men-deploy atau menjalankan beberapa layanan atau tugas di subnet yang sama, tetapi subnet tersebut tidak dapat digunakan bersama oleh konektor yang ada.
    • Opsional: NETWORK_TAG_NAMES dengan nama tag jaringan yang dipisahkan koma yang ingin Anda kaitkan dengan layanan. Untuk layanan, tag jaringan ditentukan pada tingkat revisi. Setiap revisi jaringan dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.
    • EGRESS_SETTING dengan nilai setelan traffic keluar:
      • all-traffic: Mengirim semua traffic keluar melalui jaringan VPC.
      • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
    • REGION dengan region untuk layanan Anda.
  3. Untuk memverifikasi bahwa layanan Anda berada di jaringan VPC, jalankan perintah berikut:

    gcloud beta run services describe SERVICE_NAME \
    --region=REGION
    

    Ganti:

    • SERVICE_NAME dengan nama layanan Anda.
    • REGION dengan region untuk layanan yang Anda tentukan di langkah sebelumnya.

    Output harus berisi nama jaringan, subnet, dan setelan egress, misalnya:

    VPC access:
      Network:       default
      Subnet:        subnet
      Egress:        private-ranges-only
    

Kini Anda dapat mengirim permintaan dari layanan Cloud Run ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.

YAML

Anda dapat menyimpan spesifikasi layanan dalam fileYAML kemudian men-deploy-nya menggunakan gcloud CLI.

  1. Buat file baru bernama service.yaml dengan konten berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE_NAME
      annotations:
        run.googleapis.com/launch-stage: BETA
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
        spec:
          containers:
          - image: IMAGE

    Ganti:

    • SERVICE_NAME dengan nama layanan Cloud Run Anda. Nama layanan harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
    • REGION dengan region untuk layanan Cloud Run, yang harus sesuai dengan region subnet Anda.
    • NETWORK dengan nama jaringan VPC Anda.
    • SUBNET dengan nama subnet Anda. Subnet harus berukuran /26 atau lebih besar. Traffic keluar VPC langsung mendukung rentang IPv4 RFC 1918, RFC 6598, dan Class E. Anda dapat men-deploy atau menjalankan beberapa layanan atau tugas di subnet yang sama, tetapi subnet tersebut tidak dapat digunakan bersama oleh konektor yang ada.
    • Opsional NETWORK_TAG_NAMES dengan nama tag jaringan yang ingin Anda kaitkan dengan layanan. Untuk layanan, tag jaringan ditentukan pada tingkat revisi. Setiap revisi jaringan dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.
    • EGRESS_SETTING dengan nilai setelan traffic keluar:
      • all-traffic: Mengirim semua traffic keluar melalui jaringan VPC.
      • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
    • IMAGE dengan URL image container layanan Anda.

    Anda juga dapat menentukan lebih banyak konfigurasi, seperti variabel lingkungan atau batas memori.

  2. Deploy layanan baru dengan menjalankan perintah berikut:

    gcloud run services replace service.yaml
  3. Sebagai opsi, tampilkan layanan Anda ke publik jika ingin mengizinkan akses tanpa autentikasi ke layanan.

Jika Anda perlu mendownload atau melihat konfigurasi layanan yang sudah ada, gunakan perintah berikut untuk menyimpan hasilnya ke file YAML:

gcloud run services describe SERVICE --format export > service.yaml

Dari file YAML konfigurasi layanan, ubah atribut turunan spec.template sesuai kebutuhan untuk memperbarui setelan revisi, lalu deploy revisi baru:

gcloud run services replace service.yaml

Mengonfigurasi tugas Anda tanpa konektor

Traffic keluar VPC langsung memungkinkan tugas Cloud Run Anda mengirim traffic ke jaringan VPC tanpa konektor Akses VPC Serverless.

Anda dapat mengonfigurasi traffic keluar VPC Langsung dengan tugas menggunakan Konsol Google Cloud, Google Cloud CLI, atau YAML.

Konsol

  1. Buka Cloud Run

  2. Jika Anda mengonfigurasi tugas baru, klik tab Tugas dan isi halaman setelan tugas awal seperti yang diinginkan. Jika Anda mengonfigurasi tugas yang sudah ada, klik tugas, kemudian klik Edit.

  3. Klik Container, Variabel, & Rahasia, Koneksi, Keamanan untuk memperluas halaman properti tugas.

  4. Klik tab Koneksi.

  5. Klik Hubungkan ke VPC untuk traffic keluar.

  6. Klik Kirim traffic langsung ke VPC.

  7. Di kolom Network, pilih jaringan VPC yang ingin Anda kirimi traffic.

  8. Di kolom Subnet, pilih subnet tempat alamat IP diterima oleh tugas Anda. Anda dapat menjalankan beberapa tugas di subnet yang sama.

  9. Untuk Pemilihan rute traffic, pilih salah satu opsi berikut:

    • Rutekan hanya permintaan IP pribadi ke VPC untuk hanya mengirim traffic ke alamat internal melalui jaringan VPC.
    • Rutekan semua traffic ke VPC untuk mengirim semua traffic keluar melalui jaringan VPC.
  10. Opsional: Masukkan nama tag jaringan yang ingin dikaitkan dengan layanan Anda atau layanan lainnya. Tag jaringan ditentukan pada tingkat revisi. Setiap revisi layanan dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.

  11. Opsional: Masukkan nama tag jaringan yang ingin dikaitkan dengan tugas Anda. Untuk tugas, tag jaringan ditentukan pada tingkat eksekusi. Setiap eksekusi tugas dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.

  12. Klik Buat atau Update.

  13. Untuk memverifikasi bahwa tugas Anda berada di jaringan VPC, klik tugas tersebut, lalu klik tab Konfigurasi. Jaringan dan subnet tercantum dalam kartu VPC.

    Sekarang Anda dapat menjalankan tugas Cloud Run dan mengirim permintaan dari tugas ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.

gcloud

Untuk membuat tugas Cloud Run tanpa konektor dari Google Cloud CLI:

  1. Pastikan Compute Engine API diaktifkan untuk project Anda:

    gcloud services enable compute.googleapis.com
    
  2. Buat tugas Cloud Run dengan perintah berikut:

    gcloud run jobs create JOB_NAME \
    --image=IMAGE_URL \
    --network=NETWORK \
    --subnet=SUBNET \
    --network-tags=NETWORK_TAG_NAMES \
    --vpc-egress=EGRESS_SETTING \
    --region=REGION
    

    Ganti:

    • JOB_NAME dengan nama tugas Cloud Run Anda
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/job:latest
    • NETWORK dengan nama jaringan VPC Anda.
    • SUBNET dengan nama subnet Anda. Subnet harus berukuran /26 atau lebih besar. Traffic keluar VPC langsung mendukung rentang IPv4 RFC 1918, RFC 6598, dan Class E. Anda dapat men-deploy atau menjalankan beberapa layanan atau tugas di subnet yang sama, tetapi subnet tersebut tidak dapat digunakan bersama oleh konektor yang ada.
    • Opsional: NETWORK_TAG_NAMES dengan nama tag jaringan yang ingin Anda kaitkan dengan tugas. Untuk tugas, tag jaringan ditentukan pada tingkat eksekusi. Setiap eksekusi tugas dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.
    • EGRESS_SETTING dengan nilai setelan traffic keluar:
      • all-traffic: Mengirim semua traffic keluar melalui jaringan VPC.
      • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
    • REGION dengan region untuk tugas Anda.
  3. Untuk memverifikasi bahwa tugas berada di jaringan VPC Anda, jalankan perintah berikut:

    gcloud run jobs describe JOB_NAME \
      --region=REGION
      

    Ganti:

    • JOB_NAME dengan nama tugas Anda.
    • REGION dengan region untuk tugas yang Anda tentukan di langkah sebelumnya.

    Output harus berisi nama jaringan dan subnet, misalnya:

    VPC network:
      Network:       default
      Subnet:        default
    

Sekarang Anda dapat menjalankan tugas Cloud Run dan mengirim permintaan dari tugas ke resource mana pun di jaringan VPC, sebagaimana diizinkan oleh aturan firewall Anda.

YAML

Anda dapat menyimpan spesifikasi tugas dalam file YAML kemudian men-deploy-nya menggunakan gcloud CLI.

  1. Buat file baru job.yaml dengan konten berikut:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
      annotations:
        run.googleapis.com/launch-stage: BETA
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
        spec:
          containers:
          - image: IMAGE

    Ganti:

    • JOB_NAME dengan nama tugas Cloud Run Anda Nama tugas harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
    • REGION dengan region untuk tugas Cloud Run, yang harus sesuai dengan region subnet Anda.
    • NETWORK dengan nama jaringan VPC Anda.
    • SUBNET dengan nama subnet Anda. Subnet harus berukuran /26 atau lebih besar. Traffic keluar VPC langsung mendukung rentang IPv4 RFC 1918, RFC 6598, dan Class E. Anda dapat men-deploy atau menjalankan beberapa layanan atau tugas di subnet yang sama, tetapi subnet tersebut tidak dapat digunakan bersama oleh konektor yang ada.
    • Opsional: NETWORK_TAG_NAMES dengan nama tag jaringan yang ingin Anda kaitkan dengan tugas. Untuk tugas, tag jaringan ditentukan pada tingkat eksekusi. Setiap eksekusi tugas dapat memiliki tag jaringan yang berbeda, seperti network-tag-2.
    • EGRESS_SETTING dengan nilai setelan traffic keluar:
      • all-traffic: Mengirim semua traffic keluar melalui jaringan VPC.
      • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui jaringan VPC.
    • IMAGE dengan URL image container dari tugas Anda.
  2. Deploy tugas baru dengan menjalankan perintah berikut:

    gcloud run jobs replace job.yaml

Jika Anda perlu mendownload atau melihat konfigurasi tugas yang ada, gunakan perintah berikut untuk menyimpan hasilnya ke file YAML:

gcloud run jobs describe JOB --format export > job.yaml

Dari file YAML konfigurasi tugas, ubah atribut turunan spec.template apa pun sesuai kebutuhan untuk memperbarui setelan revisi, lalu deploy ulang:

gcloud run jobs replace job.yaml

Akses ke resource VPC

Mengizinkan traffic masuk dari infrastruktur serverless ke konektor

VM konektor Anda harus dapat menerima paket dari rentang alamat IP eksternal Google Cloud 35.199.224.0/19. Rentang ini digunakan oleh infrastruktur serverless Google dasar untuk memastikan bahwa layanan dari Cloud Run, Cloud Functions, dan App Engine dapat mengirimkan paket ke konektor.

Akses VPC Serverless membuat aturan firewall izinkan traffic masuk yang berlaku untuk VM konektor dengan mengizinkan paket dari 35.199.224.0/19 jika konektor berada dalam project yang sama dengan jaringan VPC yang menjadi target. Konektor dan jaringan VPC targetnya harus berada dalam project yang sama baik saat konektor menargetkan jaringan VPC mandiri maupun saat konektor menargetkan jaringan VPC Bersama dan konektor berada di project host.

Jika Anda membuat konektor di project layanan VPC Bersama, Security Admin atau Project Owner untuk project host VPC Bersama harus membuat aturan firewall izinkan traffic masuk yang berlaku untuk VM konektor yang mengizinkan paket dari 35.199.224.0/19. Berikut ini adalah contoh set data terstruktur, yaitu tabel sederhana:

gcloud compute firewall-rules create RULE_NAME \
--action=ALLOW \
--rules=TCP \
--source-ranges=35.199.224.0/19 \
--target-tags=VPC_CONNECTOR_NETWORK_TAG \
--direction=INGRESS \
--network=VPC_NETWORK \
--priority=PRIORITY \
--project=PROJECT_ID

Ganti kode berikut:

  • RULE_NAME: nama aturan firewall baru. Contoh: allow-vpc-connector-ingress.
  • VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor universal vpc-connector dapat digunakan untuk membuat aturan berlaku ke semua konektor di jaringan VPC. Atau, Anda dapat menggunakan tag jaringan yang spesifik untuk konektor tersebut. Tag jaringan spesifik memiliki format: vpc-connector-REGION-CONNECTOR_NAME di mana REGION adalah region Google Cloud konektor dan CONNECTOR_NAME adalah nama konektornya.
  • VPC_NETWORK: nama jaringan VPC yang ditargetkan oleh konektor.
  • PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.
  • PROJECT_ID: project ID untuk project yang berisi jaringan VPC yang ditargetkan oleh konektor.

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 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. Misalnya, 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. Misalnya, 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. Misalnya, 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. Misalnya, 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. Misalnya, 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. Misalnya, 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.

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, jumlah instance, dan penggunaan CPU terbaru

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 memperbarui 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 perintah 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 meningkatkan jumlah minimum atau maksimum instance untuk 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 ini:

  • 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 untuk konektor Anda, jalankan perintah berikut di terminal:

gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
Ganti nilai 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 kapan harus menyesuaikan setelan konektor. Misalnya, jika penggunaan CPU melonjak, Anda dapat mencoba meningkatkan jumlah maksimum instance agar hasilnya lebih baik. Atau jika Anda sudah memaksimalkan throughput, Anda mungkin memutuskan untuk beralih ke jenis mesin yang lebih besar.

Untuk menampilkan diagram throughput konektor, jumlah instance, dan metrik pemanfaatan CPU dari waktu ke waktu 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 ditampilkan antara 1 dan 90 hari.

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

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

  6. Pada diagram Pemakaian CPU, arahkan kursor ke diagram untuk melihat penggunaan CPU terbaru konektor. Diagram menampilkan penggunaan CPU yang didistribusikan di seluruh 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 rentang IP internal RFC 1918 yang tidak tumpang-tindih dengan reservasi alamat IP yang ada 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 yang menurunkan performa jaringan, koneksi Anda dapat berkembang tanpa batas di seluruh pemanggilan aplikasi serverless Anda. Untuk membatasi jumlah maksimum koneksi yang digunakan per instance, gunakan library klien yang mendukung kumpulan koneksi. 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.

Langkah berikutnya