Konektivitas jaringan pribadi

Halaman ini menjelaskan cara mengonfigurasi Konektor Integrasi untuk terhubung secara pribadi ke aplikasi backend Anda, dan mengasumsikan bahwa Anda sudah memahami konsep berikut:

Integration Connectors mendukung konektivitas ke backend Anda yang dihosting di jaringan pribadi. Untuk mengaktifkan konektivitas pribadi, Anda harus menggunakan Private Service Connect (PSC). PSC memungkinkan koneksi ke layanan di berbagai jaringan secara pribadi.

Dalam kasus Integration Connectors, dari sudut pandang jaringan, Anda adalah produsen layanan dan Integration Connectors adalah konsumen layanan. Sebagai produsen layanan, Anda harus mengonfigurasi lampiran layanan PSC yang dapat digunakan Konektor Integrasi untuk menggunakan layanan. Setelah lampiran layanan siap, Anda dapat mengonfigurasi koneksi untuk menggunakan lampiran layanan menggunakan lampiran endpoint.

Lampiran endpoint

Lampiran endpoint adalah resource Konektor Integrasi yang memungkinkan koneksi untuk membuat konektivitas dengan aplikasi backend Anda melalui lampiran layanan PSC.

Gambar berikut menunjukkan lampiran endpoint yang memungkinkan koneksi untuk membuat konektivitas dengan aplikasi backend melalui lampiran layanan PSC:

Anda dapat membuat lampiran endpoint sebagai alamat IP atau sebagai nama host.

Membuat lampiran endpoint sebagai alamat IP

Untuk membuat lampiran endpoint sebagai alamat IP, Anda dapat menggunakan konsol Cloud atau command line (gcloud).

Konsol

Untuk membuat lampiran endpoint dari konsol Cloud, lakukan hal berikut:

  1. Buka halaman Lampiran endpoint untuk Integration Connectors.

    Buka Lampiran endpoint

  2. Klik + Buat. Halaman Create Endpoint Attachment akan terbuka.
  3. Masukkan nilai untuk kolom berikut:
    • Nama: Nama untuk lampiran endpoint. Nama harus unik. Tidak boleh ada lampiran endpoint lain dengan nama yang sama, dan Anda tidak dapat mengubah nama tersebut nanti. Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 63 huruf kecil, angka, atau tanda hubung, tetapi tidak boleh diakhiri dengan tanda hubung. Panjang minimumnya adalah 2.
    • Service Attachment ID: Nama lampiran layanan PSC yang telah Anda buat.
    • (Opsional) Deskripsi: Masukkan deskripsi untuk lampiran endpoint.
    • (Opsional) Labels: Masukkan label resource sebagai key-value pair. Untuk informasi selengkapnya tentang label, lihat Apa yang dimaksud dengan label?
    • (Opsional) Enable endpoint global access: Pilih opsi ini, jika Anda ingin mengirim traffic ke backend dari koneksi yang ada di region mana pun.

      Secara default, lampiran endpoint mewajibkan koneksi dan backend harus berada di region yang sama. Oleh karena itu, jika Anda mengaktifkan akses global untuk endpoint, koneksi yang ada di region mana pun dapat mengirim traffic ke backend Anda.

  4. Klik Create.

Kolom Alamat IP menentukan alamat IP lampiran endpoint. Anda harus menggunakan alamat IP ini saat mengonfigurasi konektor untuk konektivitas pribadi.

gcloud

Untuk membuat lampiran endpoint dari command line, lakukan hal berikut:

  1. Dapatkan resource lampiran layanan PSC:
    gcloud compute service-attachments list

    Perintah ini menampilkan daftar lampiran layanan. Contoh:

      NAME       REGION   TARGET_SERVICE                                       CONNECTION_PREFERENCE
      demo-sa us-west1 k8s2-tcp-tgysilgj-apps-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC

    Anda akan memerlukan informasi lampiran layanan ini di langkah-langkah berikutnya.

  2. Dapatkan token autentikasi sebelum Anda menjalankan CreateEndpointAttachment API:
    TOKEN="$(gcloud auth print-access-token)"
  3. Buat lampiran endpoint menggunakan CreateEndpointAttachment API. Contoh:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
           -H "Content-Type: application/json" \
           -d '{
          "name": "projects/PROJECT_ID/locations/LOCATION/endpointAttachments/ENDPOINT_ATTACHMENT_NAME",
          "serviceAttachment": "projects/demo/serviceAttachments/?SERVICE_ATTACHMENT_NAME"
        }' \
           https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpointAttachments?endpointAttachmentId=ENDPOINT_ATTACHMENT_NAME
      

    Dengan keterangan:

    • LOCATION adalah region lampiran layanan. Contoh, us-west1.
    • PROJECT_ID adalah project Google Cloud tempat Anda membuat lampiran layanan PSC.
    • ENDPOINT_ATTACHMENT_NAME adalah nama lampiran endpoint. Nama harus unik. Tidak boleh ada lampiran endpoint lain dengan nama yang sama, dan Anda tidak dapat mengubah nama nanti. Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 31 huruf kecil, angka, atau tanda hubung, tetapi tidak boleh diakhiri dengan tanda hubung. Panjang minimumnya adalah 2.
    • SERVICE_ATTACHMENT_NAME adalah nama lampiran layanan. Gunakan nama akun layanan PSC yang ditampilkan oleh perintah gcloud compute service-attachments list yang dijalankan sebelumnya.

    Setelah Anda memanggil API, Konektor Integrasi akan memulai operasi yang berjalan lama, dan mungkin perlu waktu beberapa saat untuk menyelesaikan operasi tersebut. Lampiran endpoint akan dibuat setelah operasi berhasil diselesaikan.

  4. Dapatkan project ID direktori layanan yang terkait dengan project Google Cloud Anda, lalu izinkan project ID tersebut di lampiran layanan Anda.
  5. Verifikasi apakah lampiran endpoint dibuat menggunakan GetEndpointAttachment API. Contoh:
    curl -X GET -H "Authorization: Bearer $TOKEN" \
        https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpointAttachments/ENDPOINT_ATTACHMENT_NAME
      

    API menampilkan respons yang mirip dengan berikut ini:

    {
        "name": "projects/demo-project/locations/us-central1/endpointAttachments/demo-ea",
        "createTime": "2023-04-17T04:34:59.569527046Z",
        "updateTime": "2023-04-17T04:37:25.189074195Z",
        "description": "demo endpoint attachment",
        "serviceAttachment": "projects/demo-project/regions/us-central1/serviceAttachments/demo-sa",
        "endpointIp": "10.0.0.0",
        "labels": {"team":"sre"},
      }

    Alamat IP lampiran endpoint tersedia di kolom endpointIp. Dalam contoh respons ini, alamat IP-nya adalah 10.0.0.0. Gunakan alamat IP ini saat mengonfigurasi konektor untuk konektivitas pribadi.

Jika pembuatan lampiran endpoint berhasil, lampiran yang baru dibuat akan tercantum di halaman Lampiran Endpoint, mirip dengan gambar berikut:

endpoint-attachment endpoint-attachment

Langkah-langkah yang dijelaskan hingga saat ini menunjukkan cara membuat lampiran endpoint sebagai alamat IP. Namun, Anda juga dapat membuat lampiran endpoint sebagai nama host dan menggunakan nama host untuk mengonfigurasi konektor untuk konektivitas pribadi. Untuk memahami cara membuat lampiran endpoint dengan nama host, lihat Membuat lampiran endpoint sebagai nama host.

Membuat lampiran endpoint sebagai nama host

Untuk membuat lampiran endpoint sebagai nama host, lakukan tugas berikut:

  1. Buat lampiran endpoint sebagai alamat IP. Untuk mengetahui informasi selengkapnya, lihat Membuat lampiran endpoint sebagai alamat IP.
  2. Buat zona terkelola pribadi Cloud DNS di project Google Cloud mana pun.

    Di zona DNS ini, Anda harus menambahkan nama host yang ingin digunakan untuk konfigurasi konektor dan memetakan nama host ke alamat IP lampiran endpoint yang Anda dapatkan dari langkah 1. Untuk mengetahui informasi tentang cara membuat zona terkelola pribadi Cloud DNS, lihat Membuat zona pribadi dan Menambahkan data.

  3. Buat zona terkelola Konektor Integrasi di project Google Cloud yang Anda gunakan untuk Konektor Integrasi. Zona terkelola Integration Connectors (zona peering) berkomunikasi dengan zona terkelola pribadi Cloud DNS (dibuat pada langkah 2) untuk resolusi nama.

    Sebelum membuat zona terkelola, Anda harus memberikan peran dan izin berikut:

    • Berikan izin connectors.managedZones.create kepada pengguna yang membuat zona terkelola Integration Connectors.

      Izin connectors.managedZones.create tersedia di peran IAM roles/connectors.admin atau peran IAM roles/connectors.managedZonesAdmin. Untuk mengetahui informasi tentang berbagai peran IAM dan izin terkait yang tersedia untuk Konektor Integrasi, lihat Peran dan izin IAM untuk Konektor Integrasi.

    • Berikan peran role/dns.peer ke akun layanan service-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com Integration Connectors.

      Jika project Google Cloud Cloud DNS berbeda dengan project Google Cloud Integration Connectors, berikan peran roles/dns.peer ke akun layanan Integration Connectors di project Google Cloud Cloud DNS. Misalnya, Anda ingin membuat zona yang dikelola Konektor Integrasi di project Google Cloud 12345 dan Cloud DNS berada di project Google Cloud 67890. Dalam hal ini, Anda harus memberikan peran roles/dns.peer ke akun layanan service-12345@gcp-sa-connectors.iam.gserviceaccount.com di project Google Cloud 67890.

    Untuk membuat zona terkelola Konektor Integrasi, Anda dapat menggunakan Konsol Cloud atau command line (gcloud).

    Konsol

    Untuk membuat zona yang dikelola Konektor Integrasi dari konsol Cloud, lakukan hal berikut:

    1. Buka halaman Zona terkelola untuk Integration Connectors.

      Buka Zona terkelola

    2. Masukkan nilai untuk kolom berikut:
      1. Nama: Nama untuk zona terkelola.
      2. Nama DNS target: Nama Cloud DNS lengkap yang zona terkelolanya (peering) Anda buat. Contoh, server8.stage.user.private.
      3. Project target: Nama project Google Cloud yang memiliki zona Cloud DNS pribadi.
      4. Jaringan target: Nama jaringan VPC tempat zona Cloud DNS pribadi dikelola.
      5. (Opsional) Deskripsi: Masukkan deskripsi untuk lampiran endpoint.
      6. (Opsional) Labels: Masukkan label resource sebagai key-value pair. Untuk informasi selengkapnya tentang label, lihat Apa yang dimaksud dengan label?
    3. Klik Create.

    gcloud

    Untuk membuat zona yang dikelola Konektor Integrasi dari command line, lakukan hal berikut:

    1. Dapatkan token autentikasi sebelum Anda menjalankan CreateManagedZone API:
      TOKEN="$(gcloud auth print-access-token)"
    2. Buat zona terkelola menggunakan CreateManagedZone API. Contoh:
      curl -X POST -H "Authorization: Bearer $TOKEN" \
        -H "Content-Type: application/json" \
        -d '{
          "description": "DESCRIPTION",
          "dns": "DNS_NAME",
          "target_project": "TARGET_PROJECT",
          "target_vpc": "TARGET_VPC"
        }' \
        https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones?managedZoneId=MANAGED_ZONE_NAME
        

      Dengan keterangan:

      • DESCRIPTION adalah deskripsi opsional untuk zona terkelola.
      • DNS_NAME: Nama Cloud DNS lengkap yang zona terkelola (peering)-nya Anda buat. Contoh, server8.stage.user.private.
      • TARGET_PROJECT adalah nama project Google Cloud yang memiliki zona Cloud DNS pribadi.
      • TARGET_NETWORK adalah nama jaringan VPC tempat zona Cloud DNS pribadi dikelola.
      • PROJECT_ID adalah project Google Cloud yang Anda gunakan untuk Konektor Integrasi.
      • MANAGED_ZONE_NAME adalah nama zona terkelola. Nama harus unik. Tidak boleh ada zona terkelola lain dengan nama yang sama, dan Anda tidak dapat mengubah nama tersebut nanti. Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 63 huruf kecil, angka, atau tanda hubung, tetapi tidak boleh diakhiri dengan tanda hubung. Panjang minimumnya adalah 2.

      Setelah Anda memanggil API, Konektor Integrasi akan memulai operasi yang berjalan lama dan mungkin perlu waktu beberapa saat untuk menyelesaikan operasi tersebut. Zona dikelola akan dibuat setelah operasi berhasil diselesaikan.

    3. Verifikasi apakah zona terkelola dibuat menggunakan GetManagedZone API. Contoh:
      curl -X GET -H "Authorization: Bearer $TOKEN" \
          https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones/MANAGED_ZONE_NAME
        

      API menampilkan respons yang mirip dengan berikut ini:

      {
          "name": "projects/demo-project/locations/global/managedZones/demo-mz",
          "createTime": "2023-04-17T04:34:59.569527046Z",
          "updateTime": "2023-04-17T04:37:25.189074195Z",
          "description": "demo managed zone",
          "dns": "api.private.service.com.",
          "targetVpc": "target-project-vpc",
          "targetProject": "target-project"
        }

Jika pembuatan zona terkelola berhasil, zona terkelola yang baru dibuat akan tercantum di halaman Zona terkelola yang mirip dengan gambar berikut:

managed-zone managed-zone

Mencantumkan project Konektor Integrasi dalam daftar yang diizinkan di lampiran layanan

Anda dapat membuat lampiran layanan PSC sehingga hanya menerima permintaan dari project Google Cloud yang ditentukan. Namun, untuk melakukannya, Anda memerlukan project ID direktori layanan yang terkait dengan project Google Cloud Anda. Untuk mendapatkan project ID direktori layanan, Anda dapat menggunakan List Connections API seperti yang ditunjukkan dalam contoh berikut.

Sintaks

curl -X GET \
    -H "authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"

Ganti kode berikut:

  • CONNECTORS_PROJECT_ID: ID project Google Cloud tempat Anda membuat koneksi.

Contoh

Contoh ini mendapatkan project ID direktori layanan untuk project Google Cloud connectors-test.

curl -X GET \
    -H "authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"

Menjalankan perintah ini di terminal akan menampilkan output yang mirip dengan berikut:

.....
{
  "connections": [
    {
      "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa",
      "createTime": "2022-10-07T09:02:31.905048520Z",
      "updateTime": "2022-10-07T09:22:39.993778690Z",
      "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1",
      "status": {
        "state": "ACTIVE"
      },
      "configVariables": [
        {
          "key": "project_id",
          "stringValue": "connectors-test"
        },
        {
          "key": "dataset_id",
          "stringValue": "testDataset"
        }
      ],
      "authConfig": {},
      "serviceAccount": "564332356444-compute@",
      "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime",
      "nodeConfig": {
        "minNodeCount": 2,
        "maxNodeCount": 50
      }
    },
....

Pada contoh output, untuk project Google Cloud connectors-test, project ID direktori layanan adalah abcdefghijk-tp.

Memverifikasi koneksi lampiran endpoint

Untuk memverifikasi koneksi lampiran endpoint, lakukan hal berikut:

  1. Di halaman Lampiran Endpoint, klik nama lampiran endpoint yang Anda buat.
  2. Di halaman Endpoint Attachment Details yang muncul, lihat kolom Connection state. Jika statusnya Accepted, lampiran endpoint disiapkan dengan benar dan koneksi Private Service Connect akan dibuat.

    Untuk informasi tentang status lainnya, lihat Status koneksi.

Mengonfigurasi koneksi untuk menggunakan lampiran endpoint

Di Konektor Integrasi, saat Anda membuat koneksi baru atau memperbarui koneksi yang ada, di bagian Tujuan, pilih Lampiran endpoint sebagai Jenis Tujuan dan pilih lampiran endpoint yang Anda buat dari daftar Lampiran Endpoint.

Jika Anda membuat zona terkelola, pilih Host Address sebagai Destination Type dan gunakan A-record yang Anda buat saat membuat zona terkelola.

Konektivitas ke berbagai jenis jaringan pribadi

Meskipun konektivitas pribadi di Konektor Integrasi akan selalu melalui lampiran layanan PSC, langkah-langkah untuk membuat konektivitas pribadi sedikit berbeda berdasarkan lingkungan. Bagian berikut menjelaskan cara membangun konektivitas pribadi di berbagai lingkungan: