Memublikasikan layanan menggunakan Private Service Connect

Sebagai produsen layanan, Anda dapat menggunakan Private Service Connect untuk memublikasikan layanan menggunakan alamat IP internal di jaringan VPC Anda. Layanan yang Anda publikasikan dapat diakses oleh konsumen layanan dengan menggunakan alamat IP internal di jaringan VPC konsumen.

Panduan ini menjelaskan cara menggunakan Private Service Connect untuk memublikasikan layanan. Untuk memublikasikan layanan, lakukan hal berikut:

Private Service Connect menyediakan dua metode untuk terhubung ke layanan yang dipublikasikan:

Jenis endpoint ini memerlukan konfigurasi produsen yang sedikit berbeda. Untuk mengetahui informasi selengkapnya, lihat Fitur dan kompatibilitas.

Peran

Peran IAM berikut memberikan izin yang diperlukan untuk melakukan langkah-langkah dalam panduan ini.

Sebelum memulai

  • Baca Tentang layanan yang dipublikasikan untuk mengetahui informasi tentang layanan publikasi, termasuk batasan.

  • Tentukan apakah layanan harus dapat diakses dari semua project, atau apakah Anda ingin mengontrol project mana yang dapat mengakses layanan Anda.

  • Tentukan apakah Anda ingin layanan ini mendukung endpoint, backend, atau keduanya. Untuk mengetahui informasi selengkapnya tentang endpoint dan backend, lihat Private Service Connect types.

    Untuk informasi selengkapnya tentang persyaratan konfigurasi layanan, lihat Fitur dan kompatibilitas.

  • Tentukan apakah Anda ingin mengonfigurasi nama domain untuk layanan, yang mengotomatiskan konfigurasi DNS untuk endpoint konsumen layanan. Jika Anda mengonfigurasi nama domain, akun utama IAM yang sama yang memublikasikan layanan harus memverifikasi bahwa akun tersebut memiliki izin Pemilik untuk domain di Google Search Console. Jika Anda mengonfigurasi nama domain, tetapi bukan pemilik domain tersebut, publikasi layanan akan gagal. Untuk memverifikasi kepemilikan, buka Google Search Console.

    Nama domain yang Anda tentukan dalam lampiran layanan dapat menjadi subdomain dari domain yang Anda verifikasi. Misalnya, Anda dapat memverifikasi example.com, lalu membuat lampiran layanan dengan nama domain us-west1.p.example.com.

Membuat load balancer yang didukung

Untuk menghosting layanan, buat salah satu load balancer berikut di jaringan VPC produsen layanan:

Untuk mengetahui informasi tentang konfigurasi yang didukung untuk setiap jenis load balancer, lihat Fitur dan kompatibilitas.

Anda dapat mengaitkan setiap lampiran layanan dengan aturan penerusan dari satu load balancer. Anda tidak dapat mengaitkan beberapa lampiran layanan dengan aturan penerusan yang sama.

Versi IP aturan penerusan load balancer Anda (IPv4 atau IPv6) memengaruhi konsumen mana yang dapat terhubung ke layanan yang dipublikasikan. Untuk mengetahui informasi selengkapnya, lihat Terjemahan versi IP.

Untuk Load Balancer Jaringan proxy internal regional, backend dapat ditempatkan di Google Cloud, di cloud lain, di lingkungan lokal, atau kombinasi dari lokasi-lokasi ini.

Anda juga dapat memublikasikan layanan yang dihosting di Load Balancer Jaringan passthrough internal di Google Kubernetes Engine. Konfigurasi ini, termasuk konfigurasi load balancer dan lampiran layanan, dijelaskan dalam Membuat Load Balancer Jaringan passthrough internal dengan Private Service Connect dalam dokumentasi GKE.

Membuat subnet untuk Private Service Connect

Buat satu atau beberapa subnet khusus untuk digunakan dengan Private Service Connect. Anda harus membuat subnet di region yang sama dengan load balancer layanan.

Jika menggunakan konsol Google Cloud untuk memublikasikan layanan, Anda dapat membuat subnet selama prosedur tersebut.

Anda dapat membuat subnet Private Service Connect di project host VPC Bersama.

Anda tidak dapat mengonversi subnet reguler menjadi subnet Private Service Connect.

Jika ingin memublikasikan layanan yang menyalurkan traffic IPv6, Anda harus menggunakan subnet stack ganda yang memiliki rentang alamat IPv6 internal.

Jika Anda perlu menyediakan lebih banyak alamat IP untuk layanan yang ada, lihat Menambahkan atau menghapus subnet dari layanan yang dipublikasikan.

Konsol

  1. Di Konsol Google Cloud, buka halaman jaringan VPC.

    Buka jaringan VPC

  2. Klik nama jaringan VPC untuk menampilkan halaman VPC network details-nya.

  3. Klik Subnets.

  4. Klik Tambahkan subnet. Di panel yang muncul, lakukan hal berikut:

    1. Berikan Nama.
    2. Pilih Region.
    3. Di bagian Purpose, pilih Private Service Connect.
    4. Pilih IP stack type.
    5. Masukkan rentang IPv4. Contoh, 10.10.10.0/24.
    6. Jika Anda membuat subnet stack ganda, tetapkan IPv6 access type ke Internal.
    7. Klik Tambahkan.

gcloud

  • Untuk membuat subnet Private Service Connect khusus IPv4, lakukan hal berikut:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • Untuk membuat subnet Private Service Connect stack ganda, lakukan hal berikut:

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    

Ganti kode berikut:

  • SUBNET_NAME: nama yang akan ditetapkan ke subnet.

  • NETWORK_NAME: nama VPC untuk subnet baru.

  • REGION: region untuk subnet baru. Region ini harus merupakan region yang sama dengan layanan yang Anda publikasikan.

  • SUBNET_RANGE: rentang alamat IPv4 yang akan digunakan untuk subnet—misalnya, 10.10.10.0/24.

API

  • Untuk membuat subnet Private Service Connect khusus IPv4, lakukan hal berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    
    {
      "ipCidrRange": "SUBNET_RANGE",
      "name": "SUBNET_NAME",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "purpose": "PRIVATE_SERVICE_CONNECT",
    }
    
  • Untuk membuat subnet Private Service Connect stack ganda, lakukan hal berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
    
    {
      "ipCidrRange": "SUBNET_RANGE",
      "name": "SUBNET_NAME",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "purpose": "PRIVATE_SERVICE_CONNECT",
      "stackType": "IPV4_IPV6",
      "ipv6AccessType": "INTERNAL"
    }
    

Ganti kode berikut:

  • PROJECT_ID: project untuk subnet.

  • REGION: region untuk subnet baru. Region ini harus merupakan region yang sama dengan layanan yang Anda publikasikan.

  • SUBNET_RANGE: rentang alamat IPv4 yang akan digunakan untuk subnet. Contoh, 10.10.10.0/24.

  • SUBNET_NAME: nama yang akan ditetapkan ke subnet.

  • NETWORK_NAME: nama jaringan VPC untuk subnet baru.

Mengonfigurasi aturan firewall

Konfigurasikan aturan firewall untuk mengizinkan traffic antara endpoint atau backend dan lampiran layanan. Permintaan klien berasal dari lokasi yang berbeda, bergantung pada jenis Private Service Connect.

Jenis Private Service Connect Rentang alamat IP untuk traffic klien Detail
Endpoint (berdasarkan aturan penerusan) Rentang alamat IP subnet Private Service Connect yang dikaitkan dengan layanan ini. Jika Anda menggunakan jaringan default, aturan default-allow-internal yang telah terisi otomatis akan mengizinkan traffic ini, kecuali ada aturan prioritas yang lebih tinggi yang memblokirnya.
Backend (berdasarkan Load Balancer Aplikasi eksternal global)
  • 130.211.0.0/22
  • 35.191.0.0/16
Load Balancer Aplikasi eksternal global diterapkan di Google Front End (GFE), yang menggunakan rentang alamat IP ini.

Jika konfigurasi firewall Anda belum mengizinkan traffic dari jenis endpoint yang sesuai, konfigurasikan aturan firewall untuk mengizinkannya.

Contoh konfigurasi berikut memungkinkan Anda membuat aturan firewall VPC untuk mengizinkan traffic dari rentang alamat IP klien ke VM backend di load balancer layanan produsen. Konfigurasi ini mengasumsikan bahwa VM backend telah dikonfigurasi dengan tag jaringan.

Contoh aturan traffic masuk:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=ingress \
    --action=allow \
    --target-tags=TAG \
    --source-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Ganti kode berikut:

  • NAME: nama aturan firewall.

  • NETWORK_NAME: jaringan yang berisi layanan dan subnet Private Service Connect.

  • TAG: tag target yang diterapkan ke VM backend di load balancer layanan produsen.

  • CLIENT_IP_RANGES_LIST: rentang alamat IP tempat traffic klien berasal. Untuk informasi selengkapnya, lihat tabel sebelumnya.

  • RULES_LIST: daftar protokol dan port tujuan yang dipisahkan koma yang akan menerapkan aturan tersebut. Contoh, tcp,udp.

Contoh aturan traffic keluar:

gcloud compute firewall-rules create NAME \
    --network=NETWORK_NAME \
    --direction=egress \
    --action=allow \
    --target-tags=TAG \
    --destination-ranges=CLIENT_IP_RANGES_LIST \
    --rules=RULES_LIST

Ganti kode berikut:

  • NAME: nama aturan firewall.

  • NETWORK_NAME: jaringan yang berisi layanan dan subnet Private Service Connect.

  • TAG: tag target yang diterapkan ke VM backend di load balancer layanan produsen.

  • CLIENT_IP_RANGES_LIST: rentang alamat IP tempat traffic klien berasal. Untuk informasi selengkapnya, lihat tabel sebelumnya.

  • RULES_LIST: daftar protokol dan port tujuan yang dipisahkan koma yang akan menerapkan aturan tersebut. Contoh, tcp,udp.

Untuk informasi lebih lanjut tentang cara mengonfigurasi aturan firewall VPC, lihat Aturan firewall VPC. Untuk mengonfigurasi aturan firewall hierarkis agar traffic ini diizinkan, lihat Kebijakan firewall hierarkis.

Memublikasikan layanan

Untuk memublikasikan layanan, Anda harus membuat lampiran layanan. Anda dapat menyediakan layanan ini dengan salah satu dari dua cara berikut:

Buat lampiran layanan di region yang sama dengan load balancer layanan.

Setiap lampiran layanan dapat mengarah ke satu atau beberapa subnet Private Service Connect, tetapi subnet Private Service Connect tidak dapat digunakan di lebih dari satu lampiran layanan.

Memublikasikan layanan dengan persetujuan otomatis

Gunakan petunjuk ini untuk memublikasikan layanan dan otomatis mengizinkan konsumen terhubung ke layanan ini. Jika Anda ingin menyetujui koneksi konsumen secara eksplisit, lihat memublikasikan layanan dengan persetujuan eksplisit.

Saat memublikasikan layanan, Anda harus membuat lampiran layanan. Konsumen layanan menggunakan detail lampiran layanan untuk terhubung ke layanan Anda.

Jika ingin melihat informasi koneksi konsumen, Anda dapat mengaktifkan protokol PROXY pada layanan yang didukung. Untuk informasi tentang layanan yang didukung, lihat Fitur dan kompatibilitas. Untuk mengetahui informasi selengkapnya tentang protokol PROXY, lihat Informasi koneksi konsumen.

Anda dapat mengaitkan subnet single-stack dan dual-stack dengan lampiran layanan yang sama. Jika load balancer dikonfigurasi untuk traffic IPv6, Anda harus menggunakan subnet stack ganda.

Saat Anda memublikasikan layanan dengan persetujuan otomatis, batas koneksi yang di-propagate berlaku untuk setiap project konsumen yang terhubung ke lampiran layanan Anda.

Konsol

  1. Di Konsol Google Cloud, buka halaman Private Service Connect.

    Buka Private Service Connect

  2. Klik tab Published services.

  3. Klik Publish service.

  4. Pilih Jenis load balancer untuk layanan yang ingin dipublikasikan:

    • Load Balancer Jaringan passthrough internal
    • Load Balancer Jaringan proxy internal regional
    • Load Balancer Aplikasi internal regional
  5. Pilih Internal load balancer yang menghosting layanan yang ingin Anda publikasikan. Kolom jaringan dan region diisi dengan detail untuk load balancer internal yang dipilih.

    Service Project Admin dapat memilih load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk mengetahui informasi selengkapnya, lihat VPC Bersama.

  6. Jika diminta, pilih Aturan penerusan yang terkait dengan layanan yang ingin Anda publikasikan.

  7. Untuk Nama layanan, masukkan nama lampiran layanan.

  8. Pilih satu atau beberapa Subnet Private Service Connect untuk layanan tersebut. Daftar diisi dengan subnet dari jaringan VPC load balancer internal yang dipilih, termasuk subnet yang dibagikan dengan project layanan melalui VPC Bersama.

    Jika lampiran layanan Anda menggunakan load balancer internal dengan alamat IP dari jaringan VPC Bersama, Anda harus memilih subnet bersama dari jaringan VPC Bersama yang sama.

    Jika ingin menambahkan subnet baru, Anda dapat membuatnya:

    1. Klik Reserve new subnet
    2. Masukkan Nama dan Deskripsi opsional untuk subnet.
    3. Pilih Region untuk subnet.
    4. Pilih IP stack type.
    5. Masukkan rentang IPv4 yang akan digunakan untuk subnet, lalu klik Add.
  9. Jika Anda ingin melihat informasi koneksi konsumen, pilih Use Proxy Protocol.

  10. Pilih Automatically accept all connections.

  11. Jika Anda ingin menonaktifkan rekonsiliasi koneksi, hapus centang pada kotak Enable connection reconciliation.

  12. Opsional: Klik Advanced configuration, lalu lakukan tindakan berikut:

    1. Jika Anda ingin mengonfigurasi nama domain, masukkan Nama domain, termasuk titik di bagian akhir.

      Format yang direkomendasikan untuk nama domain adalah REGION.p.DOMAIN.

      Anda harus memiliki nama domain tersebut. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS.

    2. Masukkan batas koneksi yang disebarkan NCC. Jika tidak ditentukan, nilai defaultnya adalah 250.

  13. Klik Add service.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ]

Ganti kode berikut:

  • ATTACHMENT_NAME: nama yang akan ditetapkan ke lampiran layanan.

  • REGION: region untuk lampiran layanan baru. Region ini harus sama dengan layanan yang Anda publikasikan.

  • RULE_NAME: nama aturan penerusan yang terkait dengan layanan yang Anda publikasikan.

    Service Project Admin dapat menentukan aturan penerusan load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk mengetahui informasi selengkapnya, lihat VPC Bersama.

  • PSC_SUBNET_LIST: daftar yang dipisahkan koma dari satu atau beberapa nama subnet yang digunakan dengan lampiran layanan ini.

    Jika Anda membuat lampiran layanan dengan aturan penerusan yang memiliki alamat IP dari jaringan VPC Bersama, gunakan subnet bersama dari jaringan VPC Bersama yang sama. Untuk setiap subnet bersama, tentukan URI resource lengkap—misalnya, --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT: Batas koneksi yang di-propagate per project. Nilai defaultnya adalah 250.

  • DOMAIN_NAME: nama domain DNS untuk layanan, termasuk titik di bagian akhir. Format yang disarankan: REGION.p.DOMAIN.

    Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS.

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
{
  "name": "ATTACHMENT_NAME",
  "connectionPreference": "ACCEPT_AUTOMATIC",
  "targetService": "RULE_URI",
  "enableProxyProtocol": false,
  "natSubnets": [
    "PSC_SUBNET_1_URI",
    "PSC_SUBNET_2_URI"
  ],
  "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
  "domainNames": [
    "DOMAIN_NAME"
  ]
}

Ganti kode berikut:

  • PROJECT_ID: project untuk lampiran layanan.

  • REGION: region untuk lampiran layanan baru. Region ini harus sama dengan layanan yang Anda publikasikan.

  • ATTACHMENT_NAME: nama yang akan ditetapkan ke lampiran layanan.

  • RULE_URI: URI aturan penerusan yang terkait dengan layanan yang Anda publikasikan.

    Service Project Admin dapat menentukan aturan penerusan load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk mengetahui informasi selengkapnya, lihat VPC Bersama.

  • PSC_SUBNET_1_URI dan PSC_SUBNET_2_URI: URI subnet yang akan digunakan untuk lampiran layanan ini. Anda dapat menentukan satu atau beberapa subnet menurut URI.

    Jika Anda membuat lampiran layanan dengan aturan penerusan yang memiliki alamat IP dari jaringan VPC Bersama, gunakan subnet bersama dari jaringan VPC Bersama yang sama.

  • DOMAIN_NAME: nama domain DNS untuk layanan, termasuk titik di bagian akhir. Format yang disarankan: REGION.p.DOMAIN.

    Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS.

  • PROPAGATED_CONNECTION_LIMIT: Batas koneksi yang di-propagate per project. Nilai defaultnya adalah 250.

Memublikasikan layanan dengan persetujuan eksplisit

Gunakan petunjuk ini untuk memublikasikan layanan jika Anda ingin menyetujui konsumen secara eksplisit sebelum mereka dapat terhubung ke layanan ini. Jika ingin menyetujui koneksi konsumen secara otomatis, lihat memublikasikan layanan dengan persetujuan otomatis.

Saat memublikasikan layanan, Anda harus membuat lampiran layanan. Konsumen layanan menggunakan detail lampiran layanan untuk terhubung ke layanan Anda.

Setiap lampiran layanan memiliki daftar penerimaan konsumen dan daftar penolakan konsumen, yang digunakan untuk menentukan endpoint yang dapat terhubung ke layanan. Lampiran layanan yang diberikan dapat menggunakan project atau jaringan dalam daftar ini, tetapi tidak bisa keduanya. Menentukan konsumen menurut folder tidak didukung.

Jika Anda beralih dari menerima konsumen berdasarkan project menjadi menerima konsumen berdasarkan jaringan, atau sebaliknya, lakukan hal berikut:

  • Ganti semua project atau jaringan yang disetujui dalam satu operasi.
  • Jika Anda perlu memberikan akses yang sama seperti sebelumnya, pastikan daftar penerimaan dan penolakan yang baru setara dengan daftar sebelumnya.

Jika Anda menambahkan project atau jaringan ke daftar penerimaan dan daftar penolakan, permintaan koneksi dari project atau jaringan tersebut akan ditolak.

Jika daftar penerimaan dan penolakan konsumen Anda merujuk ke project, batas koneksi yang di-propagate akan berlaku untuk project konsumen. Jika daftar terima dan menolak konsumen Anda merujuk ke jaringan VPC, batas koneksi yang di-propagate akan berlaku untuk jaringan VPC konsumen.

Konsol

  1. Di Konsol Google Cloud, buka halaman Private Service Connect.

    Buka Private Service Connect

  2. Klik tab Published services.

  3. Klik Publish service.

  4. Pilih Jenis load balancer untuk layanan yang ingin dipublikasikan:

    • Load Balancer Jaringan passthrough internal
    • Load Balancer Jaringan proxy internal regional
    • Load Balancer Aplikasi internal regional
  5. Pilih Internal load balancer yang menghosting layanan yang ingin Anda publikasikan. Kolom jaringan dan region diisi dengan detail untuk load balancer internal yang dipilih.

    Service Project Admin dapat memilih load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk mengetahui informasi selengkapnya, lihat VPC Bersama.

  6. Jika diminta, pilih Aturan penerusan yang terkait dengan layanan yang ingin Anda publikasikan.

  7. Untuk Nama layanan, masukkan nama lampiran layanan.

  8. Pilih satu atau beberapa Subnet Private Service Connect untuk layanan tersebut. Daftar diisi dengan subnet dari jaringan VPC load balancer internal yang dipilih, termasuk subnet yang dibagikan dengan project layanan melalui VPC Bersama.

    Jika lampiran layanan Anda menggunakan load balancer internal dengan alamat IP dari jaringan VPC Bersama, Anda harus memilih subnet bersama dari jaringan VPC Bersama yang sama.

    Jika ingin menambahkan subnet baru, Anda dapat membuatnya:

    1. Klik Reserve new subnet
    2. Masukkan Nama dan Deskripsi opsional untuk subnet.
    3. Pilih Region untuk subnet.
    4. Pilih IP stack type.
    5. Masukkan rentang IPv4 yang akan digunakan untuk subnet, lalu klik Add.
  9. Jika Anda ingin melihat informasi koneksi konsumen, pilih Use Proxy Protocol.

  10. Jika Anda ingin menerima koneksi untuk project yang dipilih, pilih Accept connections for selected projects.

    1. Untuk setiap project yang ingin Anda terima koneksinya, lakukan hal berikut:
      1. Klik Add accepted project, lalu masukkan informasi berikut:
        • Project ID atau nomor project dari project yang ingin Anda terima koneksinya.
        • Batas koneksi untuk menentukan jumlah maksimum endpoint dari project tertentu yang dapat terhubung.
    2. Opsional: Untuk setiap project yang koneksinya ingin Anda tolak secara eksplisit, klik Add rejected project, lalu masukkan project ID atau nomor project.
  11. Jika Anda ingin menerima koneksi untuk jaringan yang dipilih, pilih Accept connections for selected networks.

    1. Untuk setiap jaringan yang koneksinya ingin Anda terima, lakukan hal berikut:
      1. Klik Add accepted network, lalu masukkan informasi berikut:
        • Project ID atau nomor project dari project induk jaringan yang koneksinya ingin Anda terima.
        • Nama jaringan yang koneksinya ingin Anda terima.
        • Batas koneksi untuk menentukan jumlah maksimum endpoint dari jaringan yang ditentukan yang dapat terhubung.
    2. Opsional: Untuk setiap jaringan yang koneksinya ingin Anda tolak secara eksplisit, klik Add rejected network, lalu masukkan ID atau nomor project dari project induk jaringan dan nama jaringan.
  12. Jika Anda ingin menonaktifkan rekonsiliasi koneksi, hapus centang pada kotak Enable connection reconciliation.

  13. Opsional: Klik Advanced configuration, lalu lakukan tindakan berikut:

    1. Jika Anda ingin mengonfigurasi nama domain, masukkan Nama domain, termasuk titik di bagian akhir.

      Format yang direkomendasikan untuk nama domain adalah REGION.p.DOMAIN.

      Anda harus memiliki nama domain tersebut. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS.

    2. Masukkan batas koneksi yang disebarkan NCC. Jika tidak ditentukan, nilai defaultnya adalah 250.

  14. Klik Add service.

gcloud

gcloud compute service-attachments create ATTACHMENT_NAME \
    --region=REGION \
    --producer-forwarding-rule=RULE_NAME \
    --connection-preference=ACCEPT_MANUAL \
    --consumer-accept-list=ACCEPTED_PROJECT_OR_NETWORK_1=LIMIT_1,ACCEPTED_PROJECT_OR_NETWORK_2=LIMIT_2 \
    --consumer-reject-list=REJECTED_PROJECT_OR_NETWORK_1,REJECTED_PROJECT_OR_NETWORK_2 \
    --nat-subnets=PSC_SUBNET_LIST \
    [ --propagated-connection-limit=PROPAGATED_CONNECTION_LIMIT ] \
    [ --enable-proxy-protocol ] \
    [ --domain-names=DOMAIN_NAME ] \
    [ --reconcile-connections ]

Ganti kode berikut:

  • ATTACHMENT_NAME: nama yang akan ditetapkan ke lampiran layanan.

  • REGION: region untuk lampiran layanan baru. Region ini harus sama dengan layanan yang Anda publikasikan.

  • RULE_NAME: nama aturan penerusan yang terkait dengan layanan yang Anda publikasikan.

    Service Project Admin dapat menentukan aturan penerusan load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk mengetahui informasi selengkapnya, lihat VPC Bersama.

  • ACCEPTED_PROJECT_OR_NETWORK_1 dan ACCEPTED_PROJECT_OR_NETWORK_2: project ID, nama project, atau URI jaringan yang akan diterima. --consumer-accept-list bersifat opsional dan dapat berisi satu atau beberapa project atau jaringan, tetapi bukan campuran dari kedua jenis tersebut.

  • LIMIT_1 dan LIMIT_2: batas koneksi untuk project atau jaringan. Batas koneksi adalah jumlah endpoint atau backend konsumen yang dapat terhubung ke layanan ini. Setiap project atau jaringan yang diterima harus memiliki batas koneksi yang dikonfigurasi.

  • REJECTED_PROJECT_OR_NETWORK_1 dan REJECTED_PROJECT_OR_NETWORK_2: project ID, nama project, atau URI jaringan yang akan ditolak. --consumer-reject-list bersifat opsional dan dapat berisi satu atau beberapa project atau jaringan, tetapi tidak dapat berupa campuran dari kedua jenis tersebut.

  • PSC_SUBNET_LIST: daftar yang dipisahkan koma dari satu atau beberapa nama subnet yang digunakan dengan lampiran layanan ini.

    Jika Anda membuat lampiran layanan dengan aturan penerusan yang memiliki alamat IP dari jaringan VPC Bersama, gunakan subnet bersama dari jaringan VPC Bersama yang sama. Untuk setiap subnet bersama, tentukan URI resource lengkap—misalnya, --nat-subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET.

  • PROPAGATED_CONNECTION_LIMIT: Batas koneksi yang di-propagate. Nilai defaultnya adalah 250.

  • DOMAIN_NAME: nama domain DNS untuk layanan, termasuk titik di bagian akhir. Format yang disarankan: REGION.p.DOMAIN.

    Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS.

API

  • Untuk memublikasikan layanan dan menyetujui konsumen secara eksplisit berdasarkan project, kirim permintaan berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "REJECTED_PROJECT_1",
        "REJECTED_PROJECT_2"
      ],
      "consumerAcceptLists": [
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "projectIdOrNum": "ACCEPTED_PROJECT_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": "PROPAGATED_CONNECTION_LIMIT",
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project untuk lampiran layanan.

    • REGION: region untuk lampiran layanan.

    • ATTACHMENT_NAME: nama yang akan ditetapkan ke lampiran layanan.

    • RULE_URI: URI aturan penerusan yang terkait dengan layanan yang Anda publikasikan.

      Service Project Admin dapat menentukan aturan penerusan load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk mengetahui informasi selengkapnya, lihat VPC Bersama.

    • PSC_SUBNET_1_URI dan PSC_SUBNET_2_URI: URI subnet yang akan digunakan untuk lampiran layanan ini. Anda dapat menentukan satu atau beberapa subnet menurut URI.

      Jika Anda membuat lampiran layanan dengan aturan penerusan yang memiliki alamat IP dari jaringan VPC Bersama, gunakan subnet bersama dari jaringan VPC Bersama yang sama.

    • REJECTED_PROJECT_1 dan REJECTED_PROJECT_2: project ID atau jumlah project yang akan ditolak. consumerRejectLists bersifat opsional dan dapat berisi satu atau beberapa project.

    • ACCEPTED_PROJECT_1 dan ACCEPTED_PROJECT_2: project ID atau nomor project yang akan disetujui. consumerAcceptLists bersifat opsional dan dapat berisi satu atau beberapa project.

    • LIMIT_1 dan LIMIT_2: batas koneksi untuk project. Batas koneksi adalah jumlah endpoint atau backend konsumen yang dapat terhubung ke layanan ini. Setiap project yang diterima harus memiliki batas koneksi yang telah dikonfigurasi.

    • DOMAIN_NAME: nama domain DNS untuk layanan, termasuk titik di bagian akhir. Format yang direkomendasikan: REGION.p.DOMAIN. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS.
  • Untuk memublikasikan layanan dan menyetujui konsumen secara eksplisit berdasarkan jaringan VPC, kirim permintaan berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    {
      "name": "ATTACHMENT_NAME",
      "region": "REGION",
      "connectionPreference": "ACCEPT_MANUAL",
      "targetService": "RULE_URI",
      "enableProxyProtocol": false,
      "natSubnets": [
        "PSC_SUBNET_1_URI",
        "PSC_SUBNET_2_URI"
      ],
      "consumerRejectLists": [
        "projects/REJECTED_PROJECT_ID_1/global/networks/REJECTED_NETWORK_1",
        "projects/REJECTED_PROJECT_ID_2/global/networks/REJECTED_NETWORK_2"
      ],
      "consumerAcceptLists": [
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_1/global/networks/ACCEPTED_NETWORK_1",
          "connectionLimit": "LIMIT_1"
        },
        {
          "networkUrl": "projects/ACCEPTED_PROJECT_ID_2/global/networks/ACCEPTED_NETWORK_2",
          "connectionLimit": "LIMIT_2"
        }
      ],
      "propagatedConnectionLimit": PROPAGATED_CONNECTION_LIMIT,
      "domainNames": [
        "DOMAIN_NAME"
      ]
    }
    

    Ganti kode berikut:

    • REJECTED_PROJECT_ID_1 dan REJECTED_PROJECT_ID_2: ID project induk jaringan yang ingin Anda tolak. consumerRejectLists bersifat opsional dan dapat berisi satu atau beberapa jaringan.
    • REJECTED_NETWORK_1 dan REJECTED_NETWORK_2: nama jaringan yang ingin Anda tolak.
    • ACCEPTED_PROJECT_ID_1 dan ACCEPTED_PROJECT_ID_2: ID project induk dari jaringan yang ingin Anda terima. consumerAcceptLists bersifat opsional dan dapat berisi satu atau beberapa jaringan.
    • ACCEPTED_NETWORK_1 dan ACCEPTED_NETWORK_2: nama jaringan yang ingin Anda terima.
    • LIMIT_1 dan LIMIT_2: batas koneksi untuk jaringan. Batas koneksi adalah jumlah endpoint atau backend konsumen yang dapat terhubung ke layanan ini. Setiap project yang diterima harus memiliki batas koneksi yang telah dikonfigurasi.
    • DOMAIN_NAME: nama domain DNS untuk layanan, termasuk titik di bagian akhir. Format yang direkomendasikan: REGION.p.DOMAIN. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS.
  • Untuk memublikasikan layanan dengan rekonsiliasi koneksi yang diaktifkan, kirim permintaan yang mirip dengan permintaan sebelumnya, tetapi sertakan kolom berikut:

    {
      ...
      "reconcileConnections": true
      ...
    }
    

Melihat informasi koneksi konsumen

Untuk mengetahui informasi tentang cara melihat informasi koneksi konsumen menggunakan protokol PROXY, lihat Melihat informasi koneksi konsumen.

Mengelola permintaan akses ke layanan yang dipublikasikan

Jika memiliki layanan yang dipublikasikan dengan persetujuan eksplisit, Anda dapat menerima atau menolak permintaan koneksi dari project atau jaringan konsumen. Untuk informasi lebih lanjut, lihat Mengelola permintaan akses ke layanan yang dipublikasikan.

Anda juga dapat beralih antara penerimaan project otomatis dan eksplisit untuk layanan yang dipublikasikan. Untuk informasi selengkapnya, lihat Mengubah preferensi koneksi untuk layanan yang dipublikasikan

Menambahkan atau menghapus subnet dari layanan yang dipublikasikan

Anda dapat menambahkan atau menghapus subnet dari layanan yang dipublikasikan. Untuk mengetahui informasi selengkapnya, lihat Menambahkan atau menghapus subnet dari layanan yang dipublikasikan.

Melihat daftar layanan yang dipublikasikan

Anda dapat melihat daftar semua layanan.

Konsol

  1. Di Konsol Google Cloud, buka halaman Private Service Connect.

    Buka Private Service Connect

  2. Klik tab Published services.

    Lampiran layanan Private Service Connect akan ditampilkan.

gcloud

  1. Melihat daftar lampiran layanan.

    gcloud compute service-attachments list [--regions=REGION_LIST]
    

    Ganti kode berikut:

    • REGION_LIST: daftar yang dipisahkan koma dari satu atau beberapa region yang ingin Anda lihat lampiran layanannya. Misalnya, us-central1 atau us-west1,us-central1.

API

Anda dapat melihat semua lampiran layanan di region tertentu atau di semua region.

  • Melihat semua lampiran layanan dalam satu region:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments
    
  • Melihat semua lampiran layanan di semua region:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/serviceAttachments
    

    Ganti kode berikut:

    • PROJECT_ID: project untuk lampiran layanan.

    • REGION: region untuk lampiran layanan.

    • ATTACHMENT_NAME: nama lampiran layanan.

Melihat detail untuk layanan yang dipublikasikan

Anda dapat melihat detail konfigurasi dari layanan yang dipublikasikan. Anda dapat melihat beberapa detail konfigurasi di konsol Google Cloud, misalnya, URI lampiran layanan yang perlu dihubungkan oleh konsumen layanan ke layanan Anda. Untuk melihat semua detail, termasuk nilai pscConnectionId untuk konsumen lampiran layanan, gunakan Google Cloud CLI atau API.

Konsol

Anda dapat melihat detail untuk layanan yang dipublikasikan. Kolom Service attachment berisi URI lampiran layanan.

  1. Di konsol Google Cloud, buka halaman Private Service Connect.

    Buka Private Service Connect

  2. Klik tab Published services.

  3. Klik layanan yang ingin Anda lihat.

gcloud

Anda dapat melihat detail untuk layanan yang dipublikasikan. Kolom selfLink berisi URI lampiran layanan.

gcloud compute service-attachments describe \
    ATTACHMENT_NAME --region=REGION

API

Anda dapat melihat detail untuk layanan yang dipublikasikan. Kolom selfLink berisi URI lampiran layanan.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Ganti kode berikut:

  • PROJECT_ID: project untuk lampiran layanan.

  • REGION: region untuk lampiran layanan.

  • ATTACHMENT_NAME: nama lampiran layanan.

Menghapus layanan yang dipublikasikan

Anda dapat menghapus layanan yang dipublikasikan, meskipun terdapat koneksi konsumen ke lampiran layanan. Menghapus layanan yang dipublikasikan hanya akan menghapus lampiran layanan. Load balancer yang terkait tidak akan dihapus. Saat Anda menghapus layanan yang dipublikasikan, hal berikut akan diterapkan:

Konsol

  1. Di Konsol Google Cloud, buka halaman Private Service Connect.

    Buka Private Service Connect

  2. Klik tab Published services.

  3. Klik layanan yang ingin Anda hapus.

  4. Klik Delete.

gcloud

gcloud compute service-attachments delete \
    ATTACHMENT_NAME --region=REGION

API

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/serviceAttachments/ATTACHMENT_NAME

Ganti kode berikut:

  • PROJECT_ID: project untuk lampiran layanan.

  • REGION: region untuk lampiran layanan.

  • ATTACHMENT_NAME: nama lampiran layanan.

Masalah umum

Pemutusan koneksi setelah mengupgrade penyedia Google untuk Terraform

Jika Anda telah menggunakan penyedia Google untuk Terraform dengan versi sebelum 4.76.0 untuk membuat lampiran layanan, jangan upgrade ke versi 4.76.0 hingga 4.81.x. Saat Anda menjalankan terraform apply setelah mengupgrade ke versi 4.76.0 hingga 4.81.x, Terraform mungkin secara tidak sengaja menghapus dan membuat ulang lampiran layanan dan menutup koneksi Private Service Connect yang ada. Lampiran layanan yang dibuat ulang tidak otomatis membuat kembali koneksi Private Service Connect.

Jika Anda mengupgrade ke versi 4.82.0, lalu menjalankan terraform apply, lampiran layanan tidak akan dihapus, tetapi setelan reconcile connections ditetapkan ke true. Jika setelan sebelumnya ditetapkan ke false, beberapa koneksi Private Service Connect mungkin tertutup.

  • Mengupgrade ke penyedia Google versi 4.76.0 hingga 4.81.x. Dalam skenario ini, output terraform plan mencakup hal berikut:

    -/+ resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
            ~ reconcile_connections = false -> true # forces replacement
      ...
    

    Gunakan solusi untuk mencegah masalah ini.

  • Mengupgrade ke penyedia Google versi 4.82.0. Dalam skenario ini, output terraform plan mencakup hal berikut:

    ~ reconcile_connections = false -> true
    

    Jika Anda mengabaikan peringatan ini dan menerapkan perubahan, Terraform akan memperbarui lampiran layanan untuk mengaktifkan rekonsiliasi koneksi. Bergantung pada status koneksinya, mengubah dari false ke true dapat menutup beberapa koneksi yang ada. Untuk mengetahui informasi selengkapnya, lihat Rekonsiliasi koneksi.

    Gunakan solusi untuk mencegah masalah ini.

Solusi

Sebaiknya upgrade penyedia Google untuk Terraform ke versi 4.82.0 atau yang lebih baru. Versi ini mencegah penghapusan dan pembuatan ulang lampiran layanan secara tidak sengaja.

Jika Anda tidak dapat segera melakukan upgrade, atau jika Anda dapat melakukan upgrade tetapi Anda juga ingin mencegah Terraform agar tidak mengubah setelan rekonsiliasi koneksi, perbarui konfigurasi Terraform Anda untuk menetapkan setelan rekonsiliasi koneksi secara eksplisit.

  1. Lihat konfigurasi mendetail untuk lampiran layanan, dan catat setelan reconcileConnections.

    $ gcloud compute service-attachments describe SERVICE_NAME --region=REGION
    

    Outputnya mencakup kolom reconcileConnections, yang bisa berupa true atau false.

    reconcileConnections: false
    
  2. Update file konfigurasi Terraform Anda agar secara eksplisit menggunakan setelan yang sama dengan yang digunakan pada lampiran layanan.

    resource "google_compute_service_attachment" "SERVICE_NAME" {
      ...
      reconcile_connections    = false
    }
    

    Untuk contoh konfigurasi, lihat Reconcile Connections Lampiran Layanan di GitHub.

Update patch untuk lampiran layanan

Saat mengupdate lampiran layanan menggunakan PATCH API, Anda harus memberikan semua kolom untuk lampiran layanan dalam isi permintaan, bukan hanya kolom yang sedang Anda perbarui. Gunakan serviceAttachments.get untuk mengambil semua kolom.

Pemecahan masalah

Terjadi error saat mengupdate lampiran layanan

Jika Anda melihat pesan error berikut saat memperbarui lampiran layanan, daftar penerimaan atau daftar penolakan mungkin menyertakan project yang dihapus: The resource PROJECT was not found.

Hapus project yang dihapus dari konfigurasi lampiran layanan untuk menyelesaikan masalah.

  1. Gunakan perintah gcloud compute service-attachments describe untuk menampilkan konfigurasi lampiran layanan yang ingin Anda ubah.

    • Untuk menghasilkan output daftar penerimaan dalam format yang nantinya dapat Anda gunakan untuk memperbarui lampiran layanan, lakukan hal berikut:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION --flatten="consumerAcceptLists[]" \
        --format="csv[no-heading,separator='='](consumerAcceptLists.projectIdOrNum,consumerAcceptLists.connectionLimit)" \
        | xargs | sed -e 's/ /,/g'
      

      Output daftar penerimaan terlihat seperti berikut ini:

      PROJECT_1=LIMIT_1,PROJECT_2=LIMIT_2,PROJECT_3=LIMIT_3
      
    • Untuk menampilkan daftar penolakan dalam format yang nantinya dapat Anda gunakan untuk mengupdate lampiran layanan, lakukan hal berikut:

      gcloud compute service-attachments describe ATTACHMENT_NAME \
        --region=REGION \
        --format="value[delimiter=','](consumerRejectLists[])"
      

      Output daftar penolakan terlihat seperti berikut ini:

      PROJECT_1,PROJECT_2,PROJECT_3
      
  2. Edit output perintah untuk menghapus project yang telah dihapus dari daftar penerimaan dan daftar penolakan.

  3. Perbarui lampiran layanan untuk menghapus project yang dihapus.

    • Untuk memperbarui daftar penerimaan, lakukan hal berikut:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-accept-list=UPDATED_ACCEPT_LIST
      
    • Untuk memperbarui daftar penolakan, lakukan hal berikut:

      gcloud compute service-attachments update ATTACHMENT_NAME \
        --region=REGION \
        --consumer-reject-list=UPDATED_REJECT_LIST
      

Konektivitas tidak terjalin

Jika konsumen telah membuat endpoint atau backend yang merujuk ke lampiran layanan Anda, tetapi konektivitas tidak terjalin, periksa status koneksi lampiran layanan. Status koneksi mungkin menunjukkan langkah-langkah yang dapat Anda lakukan untuk menyelesaikan masalah.

Waktu tunggu koneksi konsumen habis

Jika waktu tunggu koneksi konsumen habis, periksa apakah layanan Anda memerlukan koneksi yang berjalan lama. Waktu Tunggu Tidak Ada Aktivitas Koneksi yang Dibuat TCP untuk Private Service Connect NAT adalah 20 menit. Jika layanan Anda memerlukan waktu tunggu yang lebih lama, Anda mungkin perlu melakukan beberapa perubahan konfigurasi untuk membantu memastikan koneksi tidak habis waktu tunggunya. Untuk mengetahui informasi selengkapnya, lihat spesifikasi NAT.

Koneksi yang di-propagasi tidak dibuat

Untuk mengetahui informasi tentang cara memecahkan masalah koneksi yang di-propagate, lihat Memecahkan masalah Network Connectivity Center.