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:
Hosting layanan pada load balancer yang didukung dengan konfigurasi yang didukung.
Buat lampiran layanan yang mengarah ke aturan penerusan yang terkait dengan load balancer.
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.
- Compute Network Admin
(
roles/compute.networkAdmin
)
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 domainus-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.
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 Anda perlu menyediakan lebih banyak alamat IP untuk layanan yang ada, lihat Menambahkan atau menghapus subnet dari layanan yang dipublikasikan.
Konsol
Di Konsol Google Cloud, buka halaman jaringan VPC.
Klik nama jaringan VPC untuk menampilkan halaman VPC network details-nya.
Klik Subnets.
Klik Tambahkan subnet. Di panel yang muncul, lakukan hal berikut:
- Berikan Nama.
- Pilih Region.
- Di bagian Purpose, pilih Private Service Connect.
- Masukkan rentang IPv4. Contoh,
10.10.10.0/24
. - 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) |
|
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:
- Anda dapat memublikasikan layanan dengan persetujuan otomatis.
- Anda dapat memublikasikan layanan dengan persetujuan eksplisit.
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.
Konsol
Di Konsol Google Cloud, buka halaman Private Service Connect.
Klik tab Published services.
Klik Publish service.
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
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.
Jika diminta, pilih Aturan penerusan yang terkait dengan layanan yang ingin Anda publikasikan.
Untuk Nama layanan, masukkan nama lampiran layanan.
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:
- Klik Reserve new subnet
- Masukkan Nama dan Deskripsi opsional untuk subnet.
- Pilih Region untuk subnet.
- Masukkan rentang IPv4 yang akan digunakan untuk subnet, lalu klik Add.
Jika Anda ingin melihat informasi koneksi konsumen, pilih Use Proxy Protocol.
Pilih Automatically accept all connections.
Jika Anda ingin menonaktifkan rekonsiliasi koneksi, hapus centang pada kotak Enable connection reconciliation.
Opsional: Klik Advanced configuration, lalu lakukan tindakan berikut:
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.
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.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
.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" ], "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
danPSC_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.
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 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
Di Konsol Google Cloud, buka halaman Private Service Connect.
Klik tab Published services.
Klik Publish service.
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
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.
Jika diminta, pilih Aturan penerusan yang terkait dengan layanan yang ingin Anda publikasikan.
Untuk Nama layanan, masukkan nama lampiran layanan.
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:
- Klik Reserve new subnet
- Masukkan Nama dan Deskripsi opsional untuk subnet.
- Pilih Region untuk subnet.
- Masukkan rentang IPv4 yang akan digunakan untuk subnet, lalu klik Add.
Jika Anda ingin melihat informasi koneksi konsumen, pilih Use Proxy Protocol.
Jika Anda ingin menerima koneksi untuk project yang dipilih, pilih Accept connections for selected projects.
- Untuk setiap project yang ingin Anda terima koneksinya, lakukan
hal berikut:
- 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.
- Klik Add accepted project, lalu masukkan informasi berikut:
- Opsional: Untuk setiap project yang koneksinya ingin Anda tolak secara eksplisit, klik Add rejected project, lalu masukkan project ID atau nomor project.
- Untuk setiap project yang ingin Anda terima koneksinya, lakukan
hal berikut:
Jika Anda ingin menerima koneksi untuk jaringan yang dipilih, pilih Accept connections for selected networks.
- Untuk setiap jaringan yang koneksinya ingin Anda terima, lakukan hal berikut:
- 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.
- Klik Add accepted network, lalu masukkan informasi berikut:
- 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.
- Untuk setiap jaringan yang koneksinya ingin Anda terima, lakukan hal berikut:
Jika Anda ingin menonaktifkan rekonsiliasi koneksi, hapus centang pada kotak Enable connection reconciliation.
Opsional: Klik Advanced configuration, lalu lakukan tindakan berikut:
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.
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.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
danACCEPTED_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
danLIMIT_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
danREJECTED_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
.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" } ], "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
danPSC_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
danREJECTED_PROJECT_2
: project ID atau jumlah project yang akan ditolak.consumerRejectLists
bersifat opsional dan dapat berisi satu atau beberapa project.ACCEPTED_PROJECT_1
danACCEPTED_PROJECT_2
: project ID atau nomor project yang akan disetujui.consumerAcceptLists
bersifat opsional dan dapat berisi satu atau beberapa project.LIMIT_1
danLIMIT_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" } ], "domainNames": [ "DOMAIN_NAME" ] }
Ganti kode berikut:
REJECTED_PROJECT_ID_1
danREJECTED_PROJECT_ID_2
: ID project induk jaringan yang ingin Anda tolak.consumerRejectLists
bersifat opsional dan dapat berisi satu atau beberapa jaringan.REJECTED_NETWORK_1
danREJECTED_NETWORK_2
: nama jaringan yang ingin Anda tolak.ACCEPTED_PROJECT_ID_1
danACCEPTED_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
danACCEPTED_NETWORK_2
: nama jaringan yang ingin Anda terima.LIMIT_1
danLIMIT_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
Di Konsol Google Cloud, buka halaman Private Service Connect.
Klik tab Published services.
Lampiran layanan Private Service Connect akan ditampilkan.
gcloud
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
atauus-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.
Di konsol Google Cloud, buka halaman Private Service Connect.
Klik tab Published services.
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:
Traffic dari endpoint (berdasarkan aturan penerusan) tidak lagi dikirim ke load balancer.
Traffic dari backend (berdasarkan Load Balancer Aplikasi eksternal global) dikirim ke load balancer hingga load balancer dihapus.
Konsol
Di Konsol Google Cloud, buka halaman Private Service Connect.
Klik tab Published services.
Klik layanan yang ingin Anda hapus.
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
ketrue
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.
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
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.
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
Edit output perintah untuk menghapus project yang telah dihapus dari daftar penerimaan dan daftar penolakan.
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 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.