Mengakses Google API regional melalui endpoint
Dokumen ini menjelaskan cara menggunakan endpoint Private Service Connect untuk terhubung ke endpoint regional Google API yang didukung.
Untuk mengetahui informasi tentang konfigurasi Private Service Connect lainnya, lihat Private Service Connect.
Peran
Untuk mendapatkan izin yang diperlukan untuk membuat endpoint Private Service Connect regional, minta administrator untuk memberi Anda peran IAM berikut di jaringan VPC Anda:
-
Peran Compute Network Admin (
roles/compute.networkAdmin
) -
Peran DNS Administrator (
roles/dns.admin
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.
Sebelum memulai
Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
$ gcloud init
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Enable the Compute Engine, Network Connectivity Center, and Cloud DNS APIs.
Selain itu, aktifkan API untuk layanan target yang ingin Anda akses melalui endpoint Private Service Connect. Misalnya, jika Anda ingin mengakses
spanner.me-central2.rep.googleapis.com
, aktifkan Cloud Spanner API. Private Service Connect tidak mengaktifkan API apa pun secara otomatis.Pastikan aturan firewall keluar mengizinkan traffic ke endpoint. Konfigurasi firewall default untuk jaringan VPC mengizinkan traffic ini karena berisi aturan tersirat untuk mengizinkan egress. Pastikan Anda belum membuat aturan keluar dengan prioritas lebih tinggi yang memblokir traffic.
Membuat endpoint Private Service Connect regional
Anda dapat membuat endpoint Private Service Connect regional untuk mengirim permintaan ke endpoint regional untuk Google API target.
Untuk daftar endpoint regional yang didukung, lihat Endpoint layanan regional.
Konsol
Di konsol Google Cloud , buka halaman Private Service Connect.
Klik Connected endpoint.
Di Target, pilih Google API.
Di daftar Cakupan, pilih Regional.
Di daftar Region, pilih region yang ingin Anda gunakan.
Dalam daftar Target service, pilih layanan yang ingin Anda akses.
Di Endpoint name, masukkan nama endpoint.
Di Network, pilih jaringan.
Di Subnetwork, pilih subnetwork.
Di IP address, lakukan salah satu hal berikut untuk mengonfigurasi alamat IP:
- Pilih Auto-allocate untuk mengalokasikan dan mencadangkan alamat IP baru secara otomatis.
- Pilih alamat IP yang dicadangkan dari daftar.
- Klik Create IP address untuk mencadangkan alamat IP baru.
Opsional: Agar endpoint tersedia dari semua region di jaringan VPC, pilih Aktifkan akses global.
Klik Add endpoint.
gcloud
Gunakan
perintah gcloud network-connectivity regional-endpoints create
.
gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \ --region=REGION \ --address=ADDRESS \ --network=projects/PROJECT_ID/global/networks/NETWORK_NAME \ --subnetwork=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --target-google-api=REP_DNS_NAME
Jika Anda ingin menyediakan endpoint untuk resource di region lain, tambahkan flag --enable-global-access
.
Ganti kode berikut:
ENDPOINT_NAME
: nama untuk endpoint.REGION
: region tempat Anda ingin membuat endpoint.ADDRESS
: alamat IPv4 atau IPv6 yang ingin Anda gunakan untuk endpoint. Jika dihilangkan, alamat IPv4 dari subnetwork akan dialokasikan. Gunakan salah satu format berikut:- Alamat IPv4—misalnya,
10.0.0.2
. - URI resource alamat IPv4 atau IPv6—misalnya,
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
.
- Alamat IPv4—misalnya,
PROJECT_ID
: project tempat Anda membuat endpoint.NETWORK_NAME
: nama jaringan VPC untuk endpoint.SUBNET_NAME
: subnet yang Anda gunakan untuk menghubungkan endpoint.REP_DNS_NAME
: nama host endpoint layanan regional yang Anda hubungkan. Contoh,spanner.me-central2.rep.googleapis.com
.
API
Gunakan
metode projects.locations.regionalEndpoints.create
.
Metode HTTP dan URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints?regionalEndpointId=ENDPOINT_NAME
{
"accessType": "REGIONAL",
"address": "ADDRESS",
"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
"targetGoogleApi": "REP_DNS_NAME"
}
Ganti kode berikut:
PROJECT_ID
: project ID endpoint.REGION
: region tempat Anda ingin membuat endpoint.ENDPOINT_NAME
: nama untuk endpoint.ADDRESS
: alamat IPv4 atau IPv6 yang ingin Anda gunakan untuk endpoint. Jika dihilangkan, alamat IPv4 dari subnetwork akan dialokasikan. Gunakan salah satu format berikut:- Alamat IPv4—misalnya,
10.0.0.2
. - URI resource alamat IPv4 atau IPv6—misalnya,
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME
.
- Alamat IPv4—misalnya,
NETWORK_NAME
: nama jaringan VPC untuk endpoint.SUBNET_NAME
: nama subnet yang ingin Anda hubungkan ke endpoint.REP_DNS_NAME
: nama host endpoint layanan regional yang ingin Anda hubungkan. Contoh,spanner.me-central2.rep.googleapis.com
.
Mencantumkan endpoint
Anda dapat menampilkan daftar semua endpoint yang dikonfigurasi.
Konsol
Di konsol Google Cloud , buka halaman Private Service Connect.
Klik tab Connected endpoints.
Semua endpoint ditampilkan, termasuk endpoint dengan target endpoint regional.
gcloud
Gunakan
perintah gcloud network-connectivity regional-endpoints list
.
gcloud network-connectivity regional-endpoints list \ --region=REGION
Ganti REGION
dengan region endpoint yang ingin Anda cantumkan.
API
Gunakan
metode projects.locations.regionalEndpoints.list
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints
Ganti kode berikut:
PROJECT_ID
: project ID endpoint.REGION
: region endpoint yang ingin Anda cantumkan.
Memverifikasi bahwa endpoint berfungsi
Buat instance virtual machine (VM) di jaringan dan region VPC tempat endpoint dikonfigurasi. Jalankan perintah berikut di VM untuk memverifikasi bahwa endpoint Private Service Connect berfungsi. Endpoint tidak merespons permintaan ping (ICMP).
Untuk memverifikasi endpoint IPv4, lakukan hal berikut:
curl --connect-to REP_DNS_NAME:443:ADDRESS:443 \ 'https://REP_DNS_NAME/PATH'
Untuk memverifikasi endpoint IPv6, lakukan hal berikut:
curl -6 --connect-to REP_DNS_NAME:443:[ADDRESS]:443 \ 'https://REP_DNS_NAME/PATH'
Ganti kode berikut:
REP_DNS_NAME
: nama DNS publik endpoint regional target—misalnya,spanner.me-central2.rep.googleapis.com
.ADDRESS
: alamat IP endpoint.PATH
: jalur ke resource yang ditayangkan oleh layanan ini. Misalnya, banyak layanan menawarkan dokumen penemuan dengan jalur$discovery/rest?version=v1
.
Contoh permintaan berikut menguji bahwa endpoint dengan alamat IP
192.168.1.100
dapat meminta dokumen penemuan Cloud Spanner API
dari endpoint regional di me-central2
.
curl --connect-to spanner.me-central2.rep.googleapis.com:443:192.168.1.100:443 \ 'https://spanner.me-central2.rep.googleapis.com/$discovery/rest?version=v1'
Membuat entri DNS pribadi untuk endpoint
Anda harus membuat entri DNS pribadi agar klien dapat mengarahkan permintaan ke endpoint Private Service Connect Anda.
Sebaiknya buat zona pribadi yang menggunakan nama host yang sama dengan
endpoint regional target:
SERVICE.REGION.rep.DOMAIN
dan buat data apex di zona tersebut.
Misalnya, jika endpoint Private Service Connect Anda memiliki
target spanner.me-central2.rep.googleapis.com
, buat zona pribadi untuk
spanner.me-central2.rep.googleapis.com
yang berisi data apex untuk
spanner.me-central2.rep.googleapis.com
. Membuat data di puncak domain
berarti Anda dapat mengakses nama host publik dari endpoint regional lainnya—
misalnya, logging.me-central2.rep.googleapis.com
.
Bagian berikut menjelaskan cara menggunakan Cloud DNS untuk membuat zona pribadi dan data DNS apex.
Membuat zona pribadi
Konsol
Di konsol Google Cloud , buka halaman Create a DNS zone.
Untuk Zone type, pilih Private.
Untuk Zone name, masukkan nama. Misalnya, jika endpoint Private Service Connect Anda mengarah ke
spanner.me-central2.rep.googleapis.com
, masukkanspanner-me-central2-rep-googleapis-com
.Untuk DNS name, tentukan nama host endpoint regional target yang diikuti dengan titik di bagian akhir. Contoh,
spanner.me-central2.rep.googleapis.com.
.Opsional: Tambahkan deskripsi.
Di bagian Options, pilih Default (pribadi).
Pilih jaringan VPC tempat Anda ingin zona pribadi terlihat. Hanya jaringan VPC yang Anda pilih yang diizinkan untuk membuat kueri data di zona.
Klik Buat.
gcloud
Jalankan perintah dns managed-zones
create
:
gcloud dns managed-zones create ZONE_NAME \ --dns-name=REP_DNS_NAME. \ --networks=VPC_NETWORK_LIST \ --visibility=private \ --description="Private zone for REP_DNS_NAME"
Ganti kode berikut:
ZONE_NAME
: nama untuk zona Anda—misalnya,spanner-me-central2-rep-googleapis.com
.DESCRIPTION
: deskripsi untuk zona AndaREP_DNS_NAME
: suffix DNS untuk zona Anda; gunakan nama host endpoint regional target—misalnya,spanner.me-central2.rep.googleapis.com
VPC_NETWORK_LIST
: daftar jaringan VPC yang dipisahkan koma yang diizinkan untuk mengkueri zona
API
Kirim permintaan POST
menggunakan metode
managedZones.create
:
Metode HTTP dan URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
Meminta isi JSON:
{
"name": "ZONE_NAME",
"dnsName": "REP_DNS_NAME.",
"description": "DESCRIPTION",
"visibility": "private",
"privateVisibilityConfig": {
"kind": "dns#managedZonePrivateVisibilityConfig",
"networks": [
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_1_URL"
},
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_2_URL"
}
]
}
}
Ganti kode berikut:
PROJECT_ID
: project ID zona DNS.ZONE_NAME
: nama zona pribadi yang Anda buat untuk endpoint regional ini.REP_DNS_NAME
: FQDN rekaman yang Anda buat; gunakan nama host endpoint regional target—misalnya,spanner.me-central2.rep.googleapis.com
.DESCRIPTION
: deskripsi untuk zona DNS.NETWORK_1_URL
danNETWORK_2_URL
: URL lengkap jaringan VPC yang diizinkan untuk membuat kueri zona—misalnya,https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME
.
Menambahkan data DNS ke zona
Konsol
Di konsol Google Cloud , buka halaman Cloud DNS zones.
Klik nama zona terkelola yang ingin Anda tambahi data.
Di halaman Zone details, klik Add standard.
Di halaman Create record set, kosongkan kolom DNS name. Jika kolom ini dibiarkan kosong, data resource akan dibuat di apex domain.
Untuk Jenis data resource, pilih
A
.Di kolom Alamat IPv4, masukkan atau pilih alamat IP endpoint Private Service Connect.
Klik Buat.
gcloud
Untuk menambahkan set rekaman resource, gunakan perintah gcloud dns record-sets create
:
gcloud dns record-sets create REP_DNS_NAME \ --rrdatas=ADDRESS \ --type=RECORD_TYPE \ --ttl=TTL \ --zone=ZONE_NAME
Ganti kode berikut:
REP_DNS_NAME
: FQDN rekaman yang Anda buat; gunakan nama host endpoint regional target—misalnya,spanner.me-central2.rep.googleapis.com
.ADDRESS
: alamat IP endpoint Private Service Connect.RECORD_TYPE
: jenis catatan DNS, sepertiA
untuk catatan IPv4 atauAAAA
untuk catatan IPv6.TTL
: TTL dalam detik yang di-cache oleh resolver untuk set data resource ini—misalnya,300
.ZONE_NAME
: nama zona pribadi yang Anda buat untuk endpoint regional ini.
API
Untuk menambahkan set data resource, gunakan
metode resourceRecordSets.create
:
Metode HTTP dan URL:
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME/rrsets
Meminta isi JSON:
{
"name": "REP_DNS_NAME.",
"type": "RECORD_TYPE",
"ttl": TTL,
"rrdatas": [ "ADDRESS" ]
}
Ganti kode berikut:
PROJECT_ID
: project ID zona DNS.ZONE_NAME
: nama zona pribadi yang Anda buat untuk endpoint regional ini.REP_DNS_NAME
: FQDN rekaman yang Anda buat; gunakan nama host endpoint regional target—misalnya,spanner.me-central2.rep.googleapis.com
.RECORD_TYPE
: jenis catatan DNS, sepertiA
untuk catatan IPv4 atauAAAA
untuk catatan IPv6.TTL
: TTL dalam detik yang di-cache oleh resolver untuk set data resource ini—misalnya,300
.ADDRESS
: alamat IP endpoint Private Service Connect.
Mengonfigurasi klien untuk menggunakan nama endpoint pribadi
Anda harus mengonfigurasi klien untuk menggunakan nama DNS pribadi, bukan nama DNS publik. Lihat dokumentasi klien atau library klien Anda guna mengetahui informasi tentang cara mengonfigurasinya untuk menggunakan endpoint kustom. Halaman berikut mencakup langkah-langkah konfigurasi untuk beberapa klien umum:
Python: Anda dapat mengonfigurasi
api_endpoint
di Opsi klien.Go: Anda dapat mengonfigurasi
WithEndpoint
di ClientOptions..NET: Anda dapat mengonfigurasi
Endpoint
di class builder klien.gcloud: Anda dapat mengonfigurasi
api_endpoint_overrides
di gcloud CLI.
Mendapatkan informasi mendetail tentang endpoint
Anda dapat melihat detail konfigurasi endpoint.
gcloud
Gunakan
perintah gcloud network-connectivity regional-endpoints describe
.
gcloud network-connectivity regional-endpoints describe \ ENDPOINT_NAME --region=REGION
Ganti kode berikut:
ENDPOINT_NAME
: nama endpoint.REGION
: region endpoint.
API
Gunakan perintah projects.locations.regionalEndpoints.get
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
Ganti kode berikut:
PROJECT_ID
: project ID endpoint.REGION
: region endpoint yang ingin Anda cantumkan.ENDPOINT_NAME
: nama endpoint.
Memperbarui konfigurasi akses global
Anda tidak dapat mengupdate endpoint Private Service Connect yang memiliki target endpoint regional. Jika Anda perlu mengubah setelan akses global untuk endpoint, hapus endpoint dan buat endpoint baru yang memiliki setelan akses global yang diperlukan.
Menghapus endpoint
Anda dapat menghapus endpoint.
gcloud
Gunakan
perintah gcloud network-connectivity regional-endpoints delete
.
gcloud network-connectivity regional-endpoints delete \ ENDPOINT_NAME --region=REGION
Ganti kode berikut:
ENDPOINT_NAME
: nama endpoint.REGION
: region endpoint.
API
Gunakan perintah projects.location.regionalEndpoints.delete
.
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
Ganti kode berikut:
PROJECT_ID
: project ID endpoint.REGION
: region endpoint.ENDPOINT_NAME
: nama endpoint.
Mengakses endpoint dari jaringan hybrid
Klien dalam jaringan yang terhubung ke Google Cloud dengan lampiran VLAN untuk tunnel Cloud VPN atau Cloud Interconnect dapat mencapai endpoint Private Service Connect.Lampiran VLAN atau tunnel Cloud VPN harus berhenti di jaringan VPC (atau jaringan VPC Bersama) yang sama dengan endpoint. Klien dalam jaringan VPC yang di-peering tidak dapat menjangkau endpoint.
Traffic klien dari lampiran VLAN atau tunnel Cloud VPN dapat mencapai endpoint di region lain jika akses global dikonfigurasi.
Dataplane v1 dan Dataplane v2 didukung untuk lampiran VLAN. Untuk informasi selengkapnya tentang versi Dataplane, lihat Dataplane v2.
Anda harus mengonfigurasi sistem di jaringan lain agar sistem tersebut dapat membuat kueri ke zona DNS pribadi Anda.
Jika Anda menerapkan zona DNS pribadi menggunakan Cloud DNS, selesaikan langkah-langkah berikut:
Buat kebijakan server masuk di jaringan VPC yang terhubung dengan jaringan lain Anda.
Identifikasi titik entri forwarder masuk di region tempat lampiran VLAN atau tunnel Cloud VPN Anda berada, di jaringan VPC yang terhubung dengan jaringan lain Anda.
Konfigurasi sistem dan server nama DNS di jaringan lain untuk meneruskan nama DNS untuk endpoint ke titik entri forwarder masuk di region yang sama dengan lampiran VLAN atau tunnel Cloud VPN yang terhubung ke jaringan VPC.