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 guna membuat endpoint Private Service Connect regional, minta administrator untuk memberi Anda peran IAM berikut di jaringan VPC Anda:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

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

Sebelum memulai

  1. Install the Google Cloud CLI, then initialize it by running the following command:

    $ gcloud init

  2. Enable the Compute Engine, Network Connectivity Center, Cloud DNS, and Service Directory APIs.

    Enable the APIs

  3. Aktifkan Google API yang ingin Anda akses melalui endpoint Private Service Connect, dengan menggunakan halaman API & layanan di konsol Google Cloud. Private Service Connect tidak otomatis mengaktifkan API apa pun.

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

  5. Baca Batasan.

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.

Nama host endpoint regional memiliki dua bentuk:

  • Nama host publik: SERVICE.REGION.rep.DOMAIN
  • Nama host pribadi: SERVICE.REGION.p.rep.DOMAIN

    Nama host pribadi menambahkan subdomain p di antara REGION dan rep.

Saat mengonfigurasi Google API target, Anda menentukan bentuk pribadi dari nama host, misalnya, spanner.me-central2.p.rep.googleapis.com. Setelah membuat endpoint, Anda membuat data DNS pribadi untuk endpoint, menggunakan nama host endpoint regional pribadi yang sama.

Meskipun Anda dapat mengonfigurasi endpoint Private Service Connect dengan nama apa pun, untuk memudahkan pemeliharaan, sebaiknya gunakan nama layanan Google API target, sehingga nama DNS cocok dengan nama endpoint. Misalnya, jika endpoint memiliki target spanner.me-central2.p.rep.googleapis.com, gunakan spanner sebagai nama endpoint.

gcloud

Gunakan perintah gcloud network-connectivity regional-endpoints create.

gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \
    --region=REGION \
    --address=ADDRESS \
    --network=NETWORK_URI \
    --subnetwork=SUBNET_URI \
    --target-google-api=REP_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.
  • NETWORK_URI: URI jaringan VPC untuk endpoint: projects/PROJECT_ID/global/networks/NETWORK_NAME.

  • SUBNET_URI: URI subnet yang ingin Anda hubungkan ke endpoint: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.

  • REP_NAME: nama endpoint layanan regional yang ingin Anda hubungkan. Contoh, spanner.me-central2.p.rep.googleapis.com.

API

Gunakan metode projects.locations.regionalEndpoints.create.

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_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.
  • NETWORK_NAME: nama jaringan VPC untuk endpoint.
  • SUBNET_NAME: nama subnet yang ingin Anda gunakan untuk menghubungkan endpoint.
  • REP_NAME: nama endpoint layanan regional yang ingin Anda hubungkan. Contoh, spanner.me-central2.p.rep.googleapis.com.

Mencantumkan endpoint

Anda dapat menampilkan daftar semua endpoint yang dikonfigurasi.

Konsol

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

    Buka Private Service Connect

  2. Klik tab Connected endpoints.

    Semua endpoint akan 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 VPC dan region tempat endpoint dikonfigurasi. Jalankan perintah berikut pada 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 \
    SERVICE.REGION.p.rep.DOMAIN:443:ENDPOINT_IPV4_ADDRESS:443 \
    'https://SERVICE.REGION.p.rep.DOMAIN/PATH'
    
  • Untuk memverifikasi endpoint IPv6, lakukan hal berikut:

    curl -6 --connect-to \
    SERVICE.REGION.p.rep.DOMAIN:443:[ENDPOINT_IPV6_ADDRESS]:443 \
    'https://SERVICE.REGION.p.rep.DOMAIN/PATH'
    

Ganti kode berikut:

  • SERVICE: layanan yang dituju endpoint Anda. Misalnya spanner atau logging.
  • REGION: region endpoint.
  • DOMAIN: domain layanan. Contoh, googleapis.com.
  • ENDPOINT_IP: 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.p.rep.googleapis.com:443:192.168.1.100:443 \
'https://spanner.me-central2.p.rep.googleapis.com/$discovery/rest?version=v1'

Membuat entri DNS pribadi untuk endpoint

Anda harus membuat entri DNS untuk endpoint dalam format ini: SERVICE.REGION.p.rep.DOMAIN. Anda dapat menggunakan Cloud DNS untuk membuat entri DNS.

  1. Buat zona DNS pribadi yang memiliki format ini: REGION.p.rep.DOMAIN.

    Misalnya, jika Anda ingin menggunakan endpoint regional di domain googleapis.com, di region me-central2, buat zona DNS pribadi dengan nama ini: me-central2.p.rep.googleapis.com.

  2. Buat data DNS yang mengarah ke alamat IP yang ditetapkan ke endpoint. Nama host harus cocok dengan nama layanan, SERVICE. Misalnya, spanner atau logging adalah nama layanan.

Misalnya, jika endpoint Anda dikonfigurasi dengan target spanner.me-central2.p.rep.googleapis.com, Anda membuat zona DNS pribadi yang disebut me-central2.p.rep.googleapis.com, dan data A yang disebut spanner yang mengarah ke alamat IP endpoint. Nama domain yang sepenuhnya memenuhi syarat dari endpoint adalah spanner.me-central2.p.rep.googleapis.com.

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 untuk mengetahui informasi tentang cara mengonfigurasinya untuk menggunakan endpoint kustom. Contoh:

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

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