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

Jenis load balancer yang didukung

Anda dapat melakukan hosting layanan menggunakan load balancer berikut:

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

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. Jika menggunakan konsol Google Cloud untuk memublikasikan layanan, Anda dapat membuat subnet selama prosedur tersebut.

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

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

Buat subnet di region yang sama dengan load balancer layanan.

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

Konsol

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

    Buka VPC networks

  2. Klik nama jaringan VPC untuk menampilkan halaman Detail jaringan VPC-nya.

  3. Klik Add subnet. Pada panel yang muncul:

    1. Berikan Nama.
    2. Pilih Region.
    3. Di bagian Purpose, pilih Private Service Connect.
    4. Masukkan rentang alamat IP. Contoh, 10.10.10.0/24.
    5. Klik Tambahkan.

gcloud

gcloud compute networks subnets create SUBNET_NAME \
    --network=NETWORK_NAME --region=REGION \
    --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 sama dengan layanan yang Anda publikasikan.

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

API

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

Ganti kode berikut:

  • PROJECT_ID: project untuk subnet.

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

  • SUBNET_RANGE: rentang alamat IP 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 produser.

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

  • 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 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, baca Melihat informasi koneksi 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 Load balancer internal yang menghosting layanan yang ingin Anda publikasikan.

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

    Kolom jaringan dan region diisi dengan detail untuk load balancer internal yang dipilih.

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

  7. Untuk Service name, masukkan nama lampiran layanan.

  8. Pilih satu atau beberapa Subnet Private Service Connect untuk layanan tersebut. Daftar ini diisi dengan subnet dari jaringan VPC load balancer internal yang dipilih, termasuk subnet yang dibagikan ke 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.

  9. Jika Anda ingin melihat informasi koneksi konsumen, pilih Use Proxy Protocol.

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

  11. Pilih Automatically accept connections.

  12. 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 \
    [ --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.

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

  • PSC_SUBNET_LIST: daftar yang dipisahkan koma dari satu atau beberapa nama subnet yang akan 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.

  • DOMAIN_NAME: nama domain DNS untuk layanan, termasuk titik di 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",
  ],
  "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.

    Admin Project Layanan dapat menentukan aturan penerusan load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk 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 berdasarkan 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 akhir. Format yang disarankan: REGION.p.DOMAIN.

    Untuk mengetahui informasi selengkapnya, lihat konfigurasi DNS.

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

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: Load Balancer TCP/UDP Internal atau Load Balancer HTTP(S) Internal.

  5. Pilih Load balancer internal yang menghosting layanan yang ingin Anda publikasikan.

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

    Kolom jaringan dan region diisi dengan detail untuk load balancer internal yang dipilih.

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

  7. Untuk Service name, masukkan nama lampiran layanan.

  8. Pilih satu atau beberapa Subnet Private Service Connect untuk layanan tersebut. Daftar ini diisi dengan subnet dari jaringan VPC load balancer internal yang dipilih, termasuk subnet yang dibagikan ke 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.

  9. Jika ingin melihat informasi koneksi konsumen, pilih kotak centang Protocols.

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

  11. 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.
  12. 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.
  13. Jika Anda ingin menonaktifkan rekonsiliasi koneksi, hapus centang pada kotak Enable connection reconciliation.

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

    Admin Project Layanan dapat menentukan aturan penerusan load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk 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 akan 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.

  • DOMAIN_NAME: nama domain DNS untuk layanan, termasuk titik di 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"
        }
      ],
      "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.

      Admin Project Layanan dapat menentukan aturan penerusan load balancer internal yang memiliki alamat IP dari jaringan VPC Bersama. Untuk 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 berdasarkan 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 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"
        }
      ],
      "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.
  • 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

Secara default, Private Service Connect menerjemahkan alamat IP sumber konsumen ke alamat di salah satu subnet Private Service Connect di jaringan VPC produsen layanan. Jika ingin melihat alamat IP sumber asli konsumen, Anda dapat mengaktifkan protokol PROXY.

Tidak semua layanan mendukung protokol PROXY. Untuk mengetahui informasi selengkapnya, lihat Fitur dan kompatibilitas.

Jika protokol PROXY diaktifkan, Anda bisa mendapatkan alamat IP sumber konsumen dan ID koneksi PSC (pscConnectionId) dari header protokol PROXY.

Jika Anda mengaktifkan protokol PROXY untuk lampiran layanan, perubahan hanya berlaku untuk koneksi baru. Koneksi yang ada tidak menyertakan header protokol PROXY.

Jika Anda mengaktifkan protokol PROXY, periksa dokumentasi software server web backend Anda untuk mendapatkan informasi tentang penguraian dan pemrosesan header protokol PROXY yang masuk di payload TCP koneksi klien. Jika protokol PROXY diaktifkan pada lampiran layanan, tetapi server web backend tidak dikonfigurasi untuk memproses header protokol PROXY, format permintaan web mungkin salah. Jika format permintaan salah, server tidak dapat menafsirkan permintaan tersebut.

pscConnectionId dienkode dalam header protokol PROXY dalam format Type-Length-Value (TLV).

Kolom Ukuran Kolom Nilai Kolom
Jenis 1 byte 0xE0 (PP2_TYPE_GCP)
Length 2 byte 0x8 (8 byte)
Nilai 8 byte pscConnectionId 8 byte di urutan jaringan

Anda dapat melihat pscConnectionId 8 byte dari aturan penerusan konsumen atau lampiran layanan produsen.

pscConnectionId akan berbeda di seluruh dunia untuk semua koneksi aktif pada titik waktu tertentu. Namun, seiring waktu, pscConnectionId dapat digunakan kembali dalam skenario berikut:

  • Dalam jaringan VPC tertentu, jika Anda menghapus endpoint (aturan penerusan), dan membuat endpoint baru menggunakan alamat IP yang sama, pscConnectionId yang sama dapat digunakan.

  • Jika Anda menghapus jaringan VPC yang berisi endpoint (aturan penerusan), setelah masa tunggu selama tujuh hari, pscConnectionId yang digunakan untuk endpoint tersebut dapat digunakan untuk endpoint yang berbeda di jaringan VPC lain.

Anda dapat menggunakan pscConnectionId untuk melakukan proses debugdan melacak sumber paket.

Selain itu, ID lampiran PSC 16 byte tersedia dari lampiran layanan produsen. ID lampiran PSC adalah ID unik di seluruh dunia yang mengidentifikasi lampiran layanan Private Service Connect. Anda dapat menggunakan ID lampiran PSC untuk visibilitas dan proses debug. ID lampiran PSC tidak disertakan dalam header protokol PROXY.

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 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 layanan yang dipublikasikan. Kolom selfLink berisi URI lampiran layanan.

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

API

Anda dapat melihat detail 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. Ketika 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 terbentuk

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

Waktu koneksi konsumen habis

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