VPC dengan konektor

Anda dapat mengaktifkan layanan atau tugas Cloud Run untuk mengirim traffic ke Jaringan VPC dengan mengonfigurasikan konektor Akses VPC Serverless.

Sebelum memulai

  • Buat jaringan VPC di project Anda jika belum memilikinya.

  • Jika Anda menggunakan VPC Bersama, lihat Menghubungkan ke jaringan VPC Bersama.

  • Di konsol Google Cloud, pastikan bahwa API Akses VPC Serverless diaktifkan untuk project Anda.

    Aktifkan API

  • Setiap konektor Akses VPC Serverless memerlukan subnet /28 -nya sendiri guna menempatkan instance konektor; subnet ini tidak boleh memiliki resource lain selain konektor. Jika tidak menggunakan VPC Bersama, Anda dapat membuat subnet untuk konektor yang akan digunakan, atau menentukan rentang IP kustom yang tidak digunakan untuk konektor tersebut guna membuat subnet bagi penggunanya. Jika Anda memilih rentang IP kustom, subnet yang dibuat akan disembunyikan dan tidak dapat digunakan di aturan firewall dan konfigurasi NAT.

Buat konektor

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

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

Jika konektor Anda berada dalam project layanan dan menggunakan jaringan VPC Bersama, konektor dan jaringan VPC terkaitnya berada dalam project yang berbeda. Jika konektor dan jaringan VPC-nya berada di 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 persyaratan subnet konektor.

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 Name, masukkan nama untuk konektor Anda, yang cocok dengan konvensi penamaan Compute Engine, dengan persyaratan tambahan bahwa nama harus kurang dari 21 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. Di kolom Subnet, pilih salah satu opsi berikut:

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

    • Buat konektor dan subnet baru: Pilih Rentang IP kustom di kolom Subnet. Kemudian, masukkan alamat pertama di CIDR /28 yang tidak digunakan (misalnya 10.8.0.0/28) untuk digunakan sebagai rentang alamat IPv4 utama dari subnet baru yang dibuat Google Cloud di jaringan VPC konektor. Pastikan rentang IP tidak bertentangan dengan rute yang ada di jaringan VPC konektor. Nama subnet baru dimulai dengan awalan "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). Konektor diskalakan hingga batas maksimum yang ditentukan jika penggunaan traffic memerlukannya, tetapi konektor tidak diskalakan kembali 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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 mengetahui detail selengkapnya dan argumen opsional, lihat referensi gcloud.

    • Membuat 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, yang cocok dengan konvensi penamaan Compute Engine, dengan persyaratan tambahan bahwa nama harus kurang dari 21 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 tugas Anda berada di us-central atau europe-west, gunakan us-central1 atau europe-west1.
      • SUBNET_NAME: nama subnet yang ada.
      • HOST_PROJECT_ID: ID project host VPC Bersama. Jika konektor dan subnet yang ada berada di project yang sama, hapus tanda --subnet-project.
      • MIN: jumlah minimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara 2(default) dan 9.
      • MAX: jumlah maksimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara 3 dan 10 (default). Jika diskalakan hingga jumlah maksimum instance, konektor tidak akan diskalakan kembali ke bawah.
      • MACHINE_TYPE: harus berupa salah satu dari hal berikut: 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, yang cocok dengan konvensi penamaan Compute Engine, dengan persyaratan tambahan bahwa nama harus kurang dari 21 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 tugas Anda berada di us-central atau europe-west, gunakan us-central1 atau europe-west1.
      • VPC_NETWORK: nama jaringan VPC yang akan dilampirkan konektor. Konektor dan jaringan VPC harus berada dalam project yang sama.
      • IP_RANGE: berikan CIDR /28 yang tidak digunakan (misalnya, 10.8.0.0/28) untuk digunakan sebagai rentang alamat IPv4 utama dari subnet baru yang dibuat Google Cloud di jaringan VPC konektor. Pastikan rentang IP tidak bertentangan dengan rute yang ada di jaringan VPC konektor. Nama subnet baru dimulai dengan awalan "aet-".
      • MIN: jumlah minimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara 2(default) dan 9.
      • MAX: jumlah maksimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara 3 dan 10 (default). Jika diskalakan hingga jumlah maksimum instance, konektor tidak akan diskalakan kembali ke bawah.
      • MACHINE_TYPE: harus berupa salah satu dari hal berikut: 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 API vpcaccess.googleapis.com.

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.

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 layanan Anda

Anda dapat mengonfigurasi layanan Cloud Run agar menggunakan konektor Akses VPC Serverless untuk mengirim traffic keluar. Anda dapat melakukannya dengan konsol Google Cloud, Google Cloud CLI, atau file YAML saat Anda membuat layanan baru atau men-deploy revisi baru:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.

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

  4. Klik tab Networking.

    gambar

    • Di kolom Jaringan, pilih salah satu opsi dari menu berikut:

      • Untuk memutuskan koneksi layanan Anda dari jaringan VPC, pilih Tidak Ada.
      • Untuk menggunakan konektor yang ada, pilih konektor dari menu drop-down atau pilih Kustom untuk menggunakan konektor yang tidak ditampilkan di menu drop-down.
      • Untuk membuat konektor baru, pilih Add new VPC connector. Lihat Membuat konektor Akses VPC Serverless untuk mengetahui detail tentang cara membuat konektor.
      • Untuk Traffic routing, 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.
  5. Klik Buat atau Deploy.

gcloud

Untuk menentukan konektor selama proses deployment, gunakan --vpc-connector flag:

gcloud run deploy SERVICE --image IMAGE_URL --vpc-connector CONNECTOR_NAME

Replace:

  • SERVICE dengan nama layanan 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 berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CONNECTOR_NAME dengan nama konektor Anda.

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

Replace:

  • SERVICE dengan nama layanan Anda.
  • CONNECTOR_NAME dengan nama konektor Anda.

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

    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
          name: REVISION

    Replace:

    • SERVICE dengan nama layanan Cloud Run Anda.
    • CONNECTOR_NAME dengan nama konektor Anda.
    • REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
      • Dimulai denganSERVICE-
      • Hanya berisi huruf kecil, angka, dan -
      • Tidak diakhiri dengan -
      • Tidak melebihi 63 karakter
  3. Buat atau perbarui layanan menggunakan perintah berikut:

    gcloud 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"
  location = "us-west1"

  deletion_protection = false # set to "true" in production

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

Mengonfigurasi tugas Anda

Setelah membuat konektor Akses VPC Serverless, Anda dapat mengonfigurasi tugas Cloud Run Anda untuk menggunakan konektor. Anda dapat melakukannya dengan konsol Google Cloud, Google Cloud CLI, atau YAML saat Anda membuat tugas baru:

Konsol

  1. Pada konsol Google Cloud, buka halaman tugas Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Job untuk mengisi halaman setelan tugas awal. Jika Anda mengonfigurasi tugas yang sudah ada, pilih tugas, lalu klik Edit.

  3. Klik Container, variabel dan secret, koneksi, keamanan untuk memperluas halaman properti tugas.

  4. Klik tab Koneksi.

    gambar

    • Di kolom Jaringan, pilih salah satu opsi dari menu berikut:

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

        Lihat Membuat konektor Akses VPC Serverless untuk mengetahui detail tentang cara membuat konektor.
  5. Klik Buat atau Perbarui.

gcloud

Untuk menentukan konektor selama deployment tugas, gunakan flag --vpc-connector :

gcloud run jobs create JOB --image IMAGE_URL --vpc-connector CONNECTOR_NAME

Replace:

  • JOB dengan nama tugas Anda.
  • IMAGE_URL dengan mereferensikan ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CONNECTOR_NAME dengan nama konektor Anda.

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

Misalnya, untuk memasang atau memperbarui konektor:

gcloud run jobs update JOB --vpc-connector CONNECTOR_NAME

Replace:

  • JOB dengan nama tugas Anda.
  • CONNECTOR_NAME dengan nama konektor Anda.

YAML

Anda dapat mendownload dan melihat konfigurasi keamanan yang ada menggunakan perintah gcloud run jobs describe --format export, yang memberikan hasil yang dibersihkan dalam format YAML. Anda kemudian dapat mengubah kolom yang dijelaskan di bawah ini dan mengupload YAML yang telah diubah menggunakan perintah gcloud run jobs replace. Pastikan Anda hanya mengubah kolom seperti yang dicantumkan.

  1. Untuk melihat dan mendownload konfigurasi:

    gcloud run jobs describe JOB --format export > job.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: Job
      metadata:
        name: JOB
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/vpc-access-connector: CONNECTOR_NAME

    Replace:

    • JOB dengan nama tugas Cloud Run Anda.
    • CONNECTOR_NAME dengan nama konektor Anda. Atribut run.googleapis.com/vpc-access-connector yang diperlukan saat menentukan setelan traffic keluar.
  3. Ganti tugas dengan konfigurasi barunya menggunakan perintah berikut:

    gcloud run jobs replace job.yaml

Akses ke resource VPC

Anda dapat membatasi akses konektor dengan aturan dan kebijakan firewall, serta menambahkan batasan tambahan dengan mengonfigurasi setelan traffic keluar dan masuk.

Setelan aturan dan kebijakan firewall

Aturan firewall yang diperlukan untuk konektor di project layanan

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

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

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 Anda.

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

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

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

  1. Buat aturan firewall yang mengizinkan permintaan dari infrastruktur serverless dan pemeriksaan health check Google untuk menjangkau semua konektor di jaringan. Dalam perintah ini, port UDP dan TCP masing-masing digunakan sebagai proxy dan untuk health check HTTP. Jangan ubah 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 tempat konektor Anda akan dilampirkan.

  2. Buat aturan firewall traffic 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. Untuk membatasi resource yang dapat dijangkau lingkungan serverless Anda menggunakan Akses VPC Serverless, lihat Membatasi akses VM konektor ke resource jaringan VPC.

Membuat aturan firewall untuk konektor tertentu

Mengikuti prosedur dalam artikel Aturan firewall yang diperlukan untuk konektor di project layanan akan menghasilkan aturan firewall yang berlaku untuk semua konektor, baik yang saat ini maupun 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 metode ini hanya untuk aturan traffic keluar, karena tidak berfungsi untuk aturan traffic masuk. Anda dapat menggunakan rentang IP subnet konektor untuk membatasi cakupan aturan firewall ke satu konektor VPC.

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

Secara default, hanya permintaan ke tujuan alamat IPv4 internal tertentu (termasuk tujuan IPv4 internal yang diselesaikan oleh respons DNS) yang dirutekan melalui konektor Akses VPC Serverless. Namun, dalam beberapa kasus, Anda mungkin ingin semua permintaan keluar dari layanan atau tugas Anda dirutekan ke jaringan VPC Anda.

Akses VPC Serverless hanya mendukung pemilihan rute traffic IPv4. Traffic IPv6 tidak didukung, meskipun Anda memiliki rute traffic IPv6 di jaringan VPC Anda.

Untuk kontrol pemilihan rute permintaan keluar dari layanan atau tugas, Anda dapat menetapkan traffic keluar VPC ke salah satu opsi berikut:

  • Rutekan hanya permintaan ke IP pribadi ke VPC: Default. Traffic dirutekan melalui jaringan VPC hanya jika paket yang membawa traffic memiliki tujuan yang sesuai dengan:

    Paket ke tujuan lain dirutekan dari Cloud Run ke internet (tidak melalui jaringan VPC apa pun).

  • Mengarahkan semua traffic ke VPC: Traffic selalu dirutekan melalui jaringan VPC yang terkait dengan konektor, untuk semua tujuan paket. Anda harus menggunakan opsi ini dalam kondisi berikut:

    • Jika Anda perlu mengirim traffic ke rentang subnet VPC dengan rentang alamat IP eksternal yang digunakan secara pribadi. Untuk informasi selengkapnya tentang rentang subnet VPC, lihat Rentang IPv4 yang valid dalam ringkasan Subnet.
    • Jika Anda perlu mengirim traffic ke endpoint Private Service Connect untuk Google API yang alamatnya adalah alamat IP eksternal yang digunakan secara pribadi. Untuk informasi selengkapnya tentang endpoint Private Service Connect untuk Google API, lihat Akses Google API melalui endpoint.
    • Jika Anda perlu mengirim traffic ke tujuan alamat IP eksternal lain yang digunakan secara pribadi yang dapat dirutekan dalam jaringan VPC konektor. Contoh tujuan lain yang mencakup alamat IP eksternal yang digunakan secara pribadi dapat mencakup rentang subnet peering (dan rentang subnet peering yang dibuat dari Rentang alamat IP yang dialokasikan untuk layanan), serta tujuan yang dapat diakses dengan rute khusus di VPC short.

    Jika jaringan VPC Anda menyertakan rute default, paket akan tetap dirutekan ke internet setelah diproses konektor saat Anda mengonfigurasikan gateway Cloud NAT untuk menyediakan layanan NAT ke subnet yang digunakan konektor. Paket ini tunduk pada rute di jaringan VPC dan aturan firewall yang diterapkan ke jaringan VPC Anda. Anda dapat menggunakan konfigurasi rute dan firewall guna mengontrol traffic keluar internet untuk semua permintaan keluar yang dikirimkan fungsi Anda melalui konektor Akses VPC Serverless.

Mengontrol traffic layanan keluar

Anda dapat menentukan setelan traffic keluar dengan konsol Google Cloud, Google Cloud CLI, atau file YAML saat Anda membuat layanan baru atau men-deploy revisi baru:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.

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

  4. Klik tab Networking.

    gambar

    • Setelah memilih konektor VPC, pilih Rutekan hanya permintaan ke IP pribadi ke VPC atau Rutekan semua traffic ke VPC.
  5. Klik Buat atau Deploy.

gcloud

Untuk menentukan setelan traffic keluar, gunakan --vpc-egress flag. Anda dapat menentukan setelan traffic keluar selama deployment:

gcloud run deploy SERVICE \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING

Replace:

  • SERVICE dengan nama layanan 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 berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CONNECTOR_NAME dengan nama konektor Anda.
  • EGRESS_SETTING dengan nilai setelan traffic keluar:
    • all-traffic: Mengirim semua traffic keluar melalui konektor.
    • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui konektor VPC.

Anda juga dapat memperbarui layanan yang sudah ada dan mengubah setelan traffic keluar:

gcloud run services update SERVICE --vpc-egress EGRESS_SETTING

Replace:

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Tambahkan atau perbarui atribut run.googleapis.com/vpc-access-egress 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
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
          name: REVISION

    Replace:

    • SERVICE dengan nama layanan Cloud Run Anda.
    • CONNECTOR_NAME dengan nama konektor Anda. Atribut run.googleapis.com/vpc-access-connector yang diperlukan saat menentukan setelan traffic keluar.
    • EGRESS_SETTING dengan salah satu dari berikut ini:
      • all-traffic: Mengirim semua traffic keluar melalui konektor.
      • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui konektor VPC.
      • REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
        • Dimulai denganSERVICE-
        • Hanya berisi huruf kecil, angka, dan -
        • Tidak diakhiri dengan -
        • Tidak melebihi 63 karakter
  3. Buat atau perbarui layanan menggunakan perintah berikut:

    gcloud run services replace service.yaml

Mengontrol traffic tugas keluar

Anda dapat menentukan setelan traffic keluar dengan konsol Google Cloud, Google Cloud CLI, atau file YAML saat Anda membuat atau memperbarui tugas:

Konsol

  1. Pada konsol Google Cloud, buka halaman tugas Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Job untuk mengisi halaman setelan tugas awal. Jika Anda mengonfigurasi tugas yang sudah ada, pilih tugas, lalu klik Edit.

  3. Klik Container, variabel dan secret, koneksi, keamanan untuk memperluas halaman properti tugas.

  4. Klik tab Koneksi.

    gambar

    • Setelah memilih konektor, pilih Rutekan hanya permintaan ke IP pribadi ke VPC atau Rutekan semua traffic ke VPC.
  5. Klik Buat atau Perbarui.

gcloud

Untuk menentukan setelan traffic keluar, gunakan --vpc-egress flag. Anda dapat menentukan setelan traffic keluar selama proses deployment tugas:

gcloud run jobs create JOB \
--image IMAGE_URL \
--vpc-connector CONNECTOR_NAME \
--vpc-egress EGRESS_SETTING

Replace:

  • JOB dengan nama tugas Anda.
  • IMAGE_URL dengan mereferensikan ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • CONNECTOR_NAME dengan nama konektor Anda.
  • EGRESS_SETTING dengan nilai setelan traffic keluar:
    • all-traffic: Mengirim semua traffic keluar melalui konektor.
    • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui konektor VPC.

Anda juga dapat memperbarui tugas yang sudah ada dan mengubah setelan traffic keluar:

gcloud run jobs update JOB --vpc-egress EGRESS_SETTING

Replace:

YAML

Anda dapat mendownload dan melihat konfigurasi keamanan yang ada menggunakan perintah gcloud run jobs describe --format export, yang memberikan hasil yang dibersihkan dalam format YAML. Anda kemudian dapat mengubah kolom yang dijelaskan di bawah ini dan mengupload YAML yang telah diubah menggunakan perintah gcloud run jobs replace. Pastikan Anda hanya mengubah kolom seperti yang dicantumkan.

  1. Ganti tugas dengan konfigurasi barunya menggunakan perintah berikut:

    gcloud run jobs replace job.yaml
  2. Tambahkan atau perbarui atribut run.googleapis.com/vpc-access-egress di bagian annotations pada atribut spec level teratas:

    apiVersion: serving.knative.dev/v1
      kind: Job
      metadata:
        name: JOB
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/vpc-access-connector: CONNECTOR_NAME
              run.googleapis.com/vpc-access-egress: EGRESS_SETTING

    Replace:

    • JOB dengan nama tugas Cloud Run Anda.
    • CONNECTOR_NAME dengan nama konektor Anda. Atribut run.googleapis.com/vpc-access-connector yang diperlukan saat menentukan setelan traffic keluar.
    • EGRESS_SETTING dengan salah satu dari berikut ini:
      • all-traffic: Mengirim semua traffic keluar melalui konektor.
      • private-ranges-only: Hanya mengirim traffic ke alamat internal melalui konektor VPC.
  3. Ganti tugas dengan konfigurasi barunya menggunakan perintah berikut:

    gcloud run jobs replace job.yaml

Melihat setelan konektor

Anda dapat melihat setelan konektor Akses VPC Serverless terkini untuk layanan atau tugas Anda dengan konsol Google Cloud atau alat command line gcloud :

Konsol

  1. Buka Cloud Run

  2. Klik layanan atau tugas yang Anda minati untuk membuka halaman detail.

    • Untuk layanan, klik tab Revisi.

    • Untuk tugas, klik tab Konfigurasi.

Setelan konektor Akses VPC Serverless tercantum pada tab Networking.

gcloud

  1. Gunakan perintah berikut untuk membuka setelan layanan Anda:

    gcloud run services describe SERVICE
  2. Gunakan perintah berikut untuk membuka setelan tugas Anda:

    gcloud run jobs describe JOB
  3. Cari setelan konektor Akses VPC Serverless di konfigurasi yang ditampilkan.

Memutuskan koneksi dari jaringan VPC

Memutuskan koneksi layanan

Anda dapat memutuskan koneksi layanan dari jaringan VPC Anda dengan konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.

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

  4. Klik tab Networking.

    gambar

    • Di kolom Jaringan, pilih Tidak Ada untuk memutuskan koneksi layanan Anda dari jaringan VPC.
  5. Klik Buat atau Deploy.

gcloud

Untuk memutuskan koneksi layanan, gunakan perintah gcloud run services update dengan flag berikut:

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

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.

Memutuskan koneksi tugas

Anda dapat memutuskan koneksi tugas dari jaringan VPC Anda dengan konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Pada konsol Google Cloud, buka halaman tugas Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Job untuk mengisi halaman setelan tugas awal. Jika Anda mengonfigurasi tugas yang sudah ada, pilih tugas, lalu klik Edit.

  3. Klik Container, variabel dan secret, koneksi, keamanan untuk memperluas halaman properti tugas.

  4. Klik tab Koneksi.

    gambar

    • Di kolom Network, pilih None untuk memutuskan koneksi tugas Anda dari jaringan VPC.
  5. Klik Buat atau Perbarui.

gcloud

Untuk memutuskan koneksi tugas, gunakan perintah gcloud run jobs update dengan flag berikut:

--clear-vpc-connector

gcloud run jobs update JOB --clear-vpc-connector

Ganti JOB dengan nama tugas Anda.

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 penggunaan 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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 kode 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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 kode 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 kode 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 pemakaian CPU melonjak, Anda dapat mencoba meningkatkan jumlah maksimum instance untuk mendapatkan hasil yang lebih baik. Atau, jika throughput sudah maksimal, Anda dapat memutuskan untuk beralih ke jenis mesin yang lebih besar.

Untuk menampilkan diagram throughput konektor, jumlah instance, dan metrik penggunaan 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 Anda tampilkan 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 CPU Utilization, arahkan kursor ke diagram untuk melihat penggunaan CPU konektor terbaru. 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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

Mengelola batasan kustom untuk project

Bagian ini menjelaskan cara membuat batasan kustom untuk konektor Akses VPC Serverless dan menerapkannya di tingkat project. Untuk mengetahui informasi tentang kebijakan organisasi kustom, lihat Membuat dan mengelola kebijakan organisasi kustom.

Kebijakan Organisasi Google Cloud memberi Anda kontrol terpusat dan terprogram atas resource organisasi. Sebagai administrator kebijakan organisasi, Anda dapat menentukan kebijakan organisasi, yang merupakan serangkaian batasan yang disebut batasan yang berlaku untuk resource Google Cloud dan turunan dari resource tersebut di Hierarki resource Google Cloud. Anda dapat menerapkan kebijakan organisasi di level organisasi, folder, atau project.

Kebijakan Organisasi memberikan batasan yang telah ditetapkan untuk berbagai layanan Google Cloud. Namun, jika menginginkan kontrol yang lebih terperinci dan dapat disesuaikan atas kolom tertentu yang dibatasi dalam kebijakan organisasi, Anda juga dapat membuat kebijakan organisasi kustom.

Manfaat

Akses VPC Serverless memungkinkan Anda menulis sejumlah batasan kustom menggunakan sebagian besar kolom yang dikonfigurasi pengguna di Serverless VPC Access API. Misalnya, Anda dapat membuat batasan kustom yang menentukan subnet mana yang dapat digunakan konektor Akses VPC Serverless.

Setelah diterapkan, permintaan yang melanggar kebijakan yang menerapkan batasan kustom akan menampilkan pesan error di gcloud CLI dan di log Akses VPC Serverless. Pesan error berisi ID batasan dan deskripsi batasan kustom yang dilanggar.

Pewarisan kebijakan

Secara default, kebijakan organisasi diwarisi oleh turunan resource tempat Anda menerapkan kebijakan tersebut. Misalnya, jika Anda menerapkan kebijakan pada folder, Google Cloud akan menerapkan kebijakan tersebut pada semua project di folder tersebut. Untuk mempelajari lebih lanjut perilaku ini dan cara mengubahnya, lihat Aturan evaluasi hierarki.

Batasan

Menentukan jenis mesin, instance minimum, atau instance maksimum tidak didukung.

Sebelum memulai

Pastikan Anda mengetahui ID organisasi Anda.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola kebijakan organisasi, minta administrator untuk memberi Anda peran IAM Administrator kebijakan organisasi (roles/orgpolicy.policyAdmin) di resource organisasi. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

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

Membuat batasan khusus

Batasan kustom ditentukan dalam file YAML oleh resource, metode, kondisi, dan tindakan yang didukung oleh layanan tempat Anda menerapkan kebijakan organisasi. Kondisi untuk batasan kustom Anda ditentukan menggunakan Common Expression Language (CEL). Untuk mengetahui informasi selengkapnya tentang cara membangun kondisi dalam batasan khusus menggunakan CEL, lihat bagian CEL tentang Membuat dan mengelola batasan kustom.

Untuk membuat file YAML untuk batasan kustom Akses VPC Serverless, lihat contoh berikut:

name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- vpcaccess.googleapis.com/Connector
methodTypes:
- CREATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION

Ganti kode berikut:

  • ORGANIZATION_ID: ID organisasi Anda, seperti 123456789.

  • CONSTRAINT_NAME: nama yang Anda inginkan untuk batasan kustom baru. Batasan kustom harus dimulai dengan custom., dan hanya dapat menyertakan huruf besar, huruf kecil, atau angka, misalnya, custom.defaultNetworkConstraint. Panjang maksimum kolom ini adalah 70 karakter, tidak menghitung awalan.

  • CONDITION: kondisi CEL yang ditulis berdasarkan representasi resource layanan yang didukung. Kolom ini memiliki panjang maksimal 1.000 karakter. Contohnya, "resource.network == default".

  • ACTION: tindakan yang akan diambil jika condition terpenuhi. Ini dapat berupa ALLOW atau DENY.

  • DISPLAY_NAME: nama yang mudah dibaca manusia untuk batasan. Kolom ini memiliki panjang maksimal 200 karakter.

  • DESCRIPTION: deskripsi batasan yang mudah dipahami untuk ditampilkan sebagai pesan error saat kebijakan dilanggar, misalnya, "Require network to not be set to default." Kolom ini memiliki panjang maksimal 2.000 karakter.

Untuk mengetahui informasi selengkapnya tentang cara membuat batasan kustom, lihat Menentukan batasan kustom.

Menyiapkan batasan kustom

Setelah membuat file YAML untuk batasan khusus baru, Anda harus menyiapkannya agar tersedia untuk kebijakan organisasi di organisasi Anda. Untuk menyiapkan batasan kustom, gunakan perintah gcloud org-policies set-custom-constraint:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Ganti CONSTRAINT_PATH dengan jalur lengkap ke file batasan kustom Anda. Contohnya, /home/user/customconstraint.yaml Setelah selesai, batasan khusus Anda akan tersedia sebagai kebijakan organisasi dalam daftar kebijakan organisasi Google Cloud Anda. Untuk memverifikasi bahwa ada batasan kustom, gunakan perintah gcloud org-policies list-custom-constraints:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Ganti ORGANIZATION_ID dengan ID fasilitas organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat Melihat kebijakan organisasi.

Menerapkan batasan khusus

Anda dapat menerapkan batasan boolean dengan membuat kebijakan organisasi yang mereferensikannya, lalu menerapkan kebijakan organisasi tersebut ke resource Google Cloud.

Konsol

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka Organization policies

  2. Dari pemilih project, pilih project yang ingin Anda tetapkan kebijakan organisasinya.
  3. Dari daftar di halaman Organization policies, pilih batasan untuk melihat halaman Policy details untuk batasan tersebut.
  4. Untuk mengonfigurasi kebijakan organisasi untuk resource ini, klik Manage policy.
  5. Di halaman Edit policy, pilih Override parent's policy.
  6. Klik Add a rule.
  7. Di bagian Enforcement, pilih apakah penerapan kebijakan organisasi ini diaktifkan atau dinonaktifkan.
  8. Opsional: Untuk membuat kebijakan organisasi bersyarat pada tag, klik Add condition. Perhatikan bahwa jika menambahkan aturan kondisional ke kebijakan organisasi, Anda harus menambahkan setidaknya satu aturan tanpa syarat atau kebijakan tidak dapat disimpan. Untuk mengetahui informasi selengkapnya, lihat Menetapkan kebijakan organisasi dengan tag.
  9. Jika ini adalah batasan kustom, Anda dapat mengklik Uji perubahan untuk menyimulasikan efek kebijakan organisasi ini. Untuk mengetahui informasi selengkapnya, lihat Menguji perubahan kebijakan organisasi dengan Policy Simulator.
  10. Untuk menyelesaikan dan menerapkan kebijakan organisasi, klik Set policy. Kebijakan ini memerlukan waktu hingga 15 menit untuk diterapkan.

gcloud

Untuk membuat kebijakan organisasi yang menerapkan batasan boolean, buat file YAML kebijakan yang merujuk batasan tersebut:

      name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
    

Ganti kode berikut:

  • PROJECT_ID: project tempat Anda ingin menerapkan batasan.
  • CONSTRAINT_NAME: nama yang Anda tentukan untuk batasan kustom. Contoh, custom.defaultNetworkConstraint

Untuk menerapkan kebijakan organisasi yang berisi batasan, jalankan perintah berikut:

    gcloud org-policies set-policy POLICY_PATH
    

Ganti POLICY_PATH dengan jalur lengkap ke file YAML kebijakan organisasi Anda. Kebijakan ini memerlukan waktu hingga 15 menit untuk diterapkan.

Menguji batasan kustom

Untuk menguji contoh yang membatasi setelan traffic masuk, deploy konektor di project dengan jaringan yang disetel ke default:

gcloud compute networks vpc-access connectors create org-policy-test \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --network=default

Outputnya adalah sebagai berikut:

Operation denied by custom org policies: ["customConstraints/custom.defaultNetworkConstraint": "Require network to not be set to default."]

Contoh kebijakan organisasi kustom untuk kasus penggunaan umum

Tabel berikut memberikan contoh batasan kustom yang mungkin berguna bagi Anda dengan konektor Akses VPC Serverless:

Deskripsi Sintaksis batasan
Mewajibkan konektor Akses VPC Serverless hanya dapat menggunakan jaringan tertentu.
    name: organizations/ORGANIZATION_ID/customConstraints/custom.allowlistNetworks
    resourceTypes:
    - vpcaccess.googleapis.com/Connector
    methodTypes:
    - CREATE
    condition: "resource.network == 'allowlisted-network'"
    actionType: ALLOW
    displayName: allowlistNetworks
    description: Require connectors to use a specific network.
Deskripsi Sintaksis batasan
Memerlukan konektor Akses VPC Serverless untuk hanya memiliki akses ke subnet tertentu.
    name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictSubnetForProject
    resourceTypes:
    - vpcaccess.googleapis.com/Connector
    methodTypes:
    - CREATE
    condition: "resource.subnet.name == 'allocated-subnet'"
    actionType: ALLOW
    displayName: restrictSubnetForProject
    description: This project is only allowed to use the subnet "allocated-subnet".

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.

Performa jaringan yang buruk atau penggunaan CPU yang tidak ada aktivitasnya tinggi

Menggunakan satu konektor untuk ribuan instance dapat menyebabkan penurunan performa dan peningkatan penggunaan CPU saat tidak ada aktivitas. Untuk memperbaikinya, bagi layanan Anda di antara beberapa konektor.

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 atau connection timeout 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