Mengonfigurasi kebijakan koneksi layanan

Halaman ini menjelaskan cara administrator jaringan dapat mengonfigurasi kebijakan koneksi layanan untuk mengotomatiskan konektivitas pribadi ke layanan terkelola.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi jaringan dan membuat kebijakan koneksi layanan, minta administrator untuk memberi Anda peran IAM Compute Network Admin (roles/compute.networkAdmin) di project Anda.

Untuk menggunakan kebijakan koneksi layanan dengan VPC Bersama, Akun Layanan Konektivitas Jaringan harus diberi peran di project layanan dan host. Akun layanan ini dikonfigurasi secara otomatis saat kebijakan koneksi layanan dibuat, tetapi perannya dapat dihapus secara manual. Jika Anda melihat error tentang izin yang tidak ada, Admin Akun Layanan mungkin perlu memberikan peran lagi. Untuk informasi selengkapnya, lihat Mengonfigurasi akun layanan untuk VPC Bersama.

Membuat kebijakan koneksi layanan

Dengan kebijakan koneksi layanan, Anda dapat mengizinkan class layanan yang ditentukan untuk membuat koneksi Private Service Connect antara jaringan VPC produsen dan konsumen.

Anda dapat membuat maksimal satu kebijakan untuk setiap kombinasi class, region, dan jaringan VPC layanan. Kebijakan menentukan otomatisasi konektivitas layanan untuk kombinasi spesifik tersebut. Saat mengonfigurasi kebijakan, pilih subnet. Subnet digunakan untuk mengalokasikan alamat IP untuk endpoint yang dibuat melalui kebijakan. Anda dapat menggunakan kembali subnet yang sama dalam beberapa kebijakan koneksi jika kebijakan tersebut memiliki region yang sama.

Misalnya, jika Anda ingin menggunakan otomatisasi konektivitas layanan dengan dua layanan di tiga region berbeda, buatlah enam kebijakan. Anda dapat menggunakan minimal tiga subnet—satu untuk setiap region.

Setelah membuat kebijakan koneksi layanan, Anda hanya dapat mengupdate subnet dan batas koneksi kebijakan. Jika Anda perlu mengupdate kolom lain, hapus kebijakan dan buat yang baru.

Konsol

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

    Buka Private Service Connect

  2. Klik tab Kebijakan Koneksi.

  3. Klik Create connection policy.

  4. Masukkan Name untuk kebijakan koneksi.

  5. Tentukan class layanan.

    • Untuk layanan Google, lakukan hal berikut:
      1. Untuk Source service class, pilih Google services.
      2. Pilih class layanan dari menu Service class.
    • Untuk layanan pihak ketiga, lakukan hal berikut:
      1. Untuk Source service class, pilih 3rd party services.
      2. Untuk Service class, masukkan nama class layanan.
  6. Di bagian Target endpoint scope, pilih Network dan Region tempat kebijakan ini diterapkan.

  7. Di bagian Policy, pilih satu atau beberapa subnet dari menu Subnetworks. Subnet digunakan untuk mengalokasikan alamat IP untuk endpoint.

  8. Opsional: Tentukan Connection limit untuk kebijakan. Batas ini menentukan jumlah endpoint yang dapat dibuat dengan menggunakan kebijakan koneksi ini. Jika dihilangkan, batasnya menjadi tidak ada.

  9. Klik Create policy.

gcloud

Gunakan perintah service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description=DESCRIPTION

Ganti yang berikut ini:

  • POLICY_NAME: nama kebijakan koneksi layanan Anda.
  • NETWORK: jaringan tempat kebijakan ini diterapkan.
  • PROJECT_ID: project ID atau nomor project jaringan VPC. Untuk jaringan VPC Bersama, kebijakan koneksi layanan harus di-deploy di project host dan tidak didukung di project layanan.
  • REGION: region tempat kebijakan ini diterapkan. Kebijakan yang sama harus ada untuk setiap region tempat Anda ingin mengotomatiskan konektivitas layanan.
  • SERVICE_CLASS: ID resource yang disediakan produsen dari class layanan.
  • SUBNETS: satu atau beberapa subnet konsumen reguler yang digunakan untuk mengaloksir alamat IP untuk endpoint Private Service Connect. Alamat IP ini secara otomatis dialokasikan dan dikembalikan ke kumpulan subnet saat instance layanan terkelola dibuat dan dihapus. Subnet harus berada di region yang sama dengan kebijakan koneksi layanan. Anda dapat menggunakan kembali subnetwork yang sama dalam beberapa kebijakan koneksi jika kebijakan tersebut memiliki region yang sama. Anda dapat memasukkan beberapa subnet dalam daftar yang dipisahkan koma.
  • LIMIT: jumlah maksimum endpoint yang dapat dibuat menggunakan kebijakan ini. Jika tidak ditentukan, batasnya menjadi tidak ada.
  • DESCRIPTION: deskripsi opsional untuk kebijakan koneksi layanan.

Misalnya, perintah berikut akan membuat kebijakan koneksi layanan untuk class layanan gcp-database-service yang mengalokasikan alamat IP dari subnet managed-services. Maksimal 10 endpoint Private Service Connect dapat dibuat menggunakan kebijakan ini. Endpoint harus dibuat dalam project yang berada di organisasi yang sama dengan instance layanan terkelola.

gcloud network-connectivity service-connection-policies create gcp-database-cxn-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=gcp-database-service \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10

Terraform

Anda dapat menggunakan resource Terraform untuk membuat kebijakan koneksi layanan.

# Create a VPC network
resource "google_compute_network" "default" {
  name                    = "consumer-network"
  auto_create_subnetworks = false
}

# Create a subnetwork
resource "google_compute_subnetwork" "default" {
  name          = "consumer-subnet"
  ip_cidr_range = "10.0.0.0/16"
  region        = "us-central1"
  network       = google_compute_network.default.id
}

# Create a service connection policy
resource "google_network_connectivity_service_connection_policy" "default" {
  name          = "service-connection-policy"
  location      = "us-central1"
  service_class = "gcp-memorystore-redis"
  network       = google_compute_network.default.id
  psc_config {
    subnetworks = [google_compute_subnetwork.default.id]
    limit       = 2
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

API

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • PROJECT_ID: ID project Anda.
  • REGION: region kebijakan koneksi layanan Anda.
  • POLICY_NAME: nama kebijakan koneksi layanan Anda.
  • DESCRIPTION: deskripsi opsional dari kebijakan koneksi layanan Anda.
  • NETWORK: jaringan kebijakan koneksi layanan Anda.
  • LIMIT: jumlah maksimum endpoint yang dapat dibuat menggunakan kebijakan ini. Jika tidak ditentukan, batasnya menjadi tidak ada.
  • SUBNET: satu atau beberapa subnet konsumen reguler yang digunakan untuk mengalokasikan alamat IP untuk endpoint Private Service Connect. Alamat IP ini dialokasikan secara otomatis dan dikembalikan ke kumpulan subnet saat instance layanan terkelola dibuat dan dihapus. Subnet harus berada di region yang sama dengan kebijakan koneksi layanan. Anda dapat menggunakan kembali subnetwork yang sama dalam beberapa kebijakan koneksi jika kebijakan tersebut memiliki region yang sama. Anda dapat memasukkan beberapa URL subnet dalam daftar yang dipisahkan koma.
  • SERVICE_CLASS: ID resource yang disediakan produsen dari class layanan.

Metode HTTP dan URL:

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME

Meminta isi JSON:

{
  "description": "DESCRIPTION",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "serviceClass": "SERVICE_CLASS"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Mencantumkan kebijakan koneksi layanan

Konsol

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

    Buka Private Service Connect

  2. Klik tab Kebijakan Koneksi.

  3. Kebijakan koneksi akan ditampilkan.

gcloud

Gunakan perintah service-connection-policies list.

gcloud network-connectivity service-connection-policies list \
    --region=REGION

Ganti REGION dengan region tempat Anda ingin mencantumkan kebijakan koneksi layanan.

API

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • PROJECT_ID: ID project Anda.
  • REGION: region untuk mencantumkan kebijakan koneksi layanan.

Metode HTTP dan URL:

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip seperti berikut:

{
  "serviceConnectionPolicies": [
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-1",
      "createTime": "2023-08-15T15:33:54.712819865Z",
      "updateTime": "2023-08-15T15:33:54.945630882Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/network-two",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-west1/subnetworks/us-west1-subnet"
        ],
        "limit": "12"
      },
      "etag": "zCqDFBG1dS7B4gNdJKPR98YMUXpSrBIz0tZB_hwOIZI"
    },
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-2",
      "createTime": "2023-08-15T16:59:29.230257109Z",
      "updateTime": "2023-08-15T16:59:29.508994923Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/custom-test",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-central1/subnetworks/subnet-one"
        ],
        "limit": "25"
      },
      "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
    }
  ]
}

Menjelaskan kebijakan koneksi layanan

Konsol

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

    Buka Private Service Connect

  2. Klik tab Kebijakan Koneksi.

  3. Klik kebijakan koneksi layanan yang ingin Anda lihat.

gcloud

Gunakan perintah service-connection-policies describe.

gcloud network-connectivity service-connection-policies describe POLICY_NAME \
    --region=REGION

Ganti yang berikut ini:

  • POLICY_NAME: nama kebijakan koneksi layanan yang ingin Anda deskripsikan.
  • REGION: region kebijakan koneksi layanan yang ingin Anda deskripsikan.

API

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • PROJECT_ID: ID project Anda.
  • REGION: region kebijakan koneksi layanan Anda.
  • POLICY_NAME: nama kebijakan koneksi layanan yang akan dijelaskan.

Metode HTTP dan URL:

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip seperti berikut:

{
  "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
  "createTime": "2023-08-15T16:59:29.230257109Z",
  "updateTime": "2023-08-15T16:59:29.508994923Z",
  "description": "description",
  "network": "projects/project-id/global/networks/custom-test",
  "serviceClass": "gcp-memorystore-redis",
  "infrastructure": "PSC",
  "pscConfig": {
    "subnetworks": [
      "projects/project-id/regions/us-central1/subnetworks/subnet-one"
    ],
    "limit": "25"
  },
  "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
}

Mengupdate kebijakan koneksi layanan

Anda dapat memperbarui subnet dan batas koneksi untuk kebijakan koneksi layanan.

Jika Anda menghapus subnet dari kebijakan koneksi layanan, hal berikut akan berlaku:

  • Endpoint Private Service Connect yang ada tidak akan terpengaruh.
  • Endpoint baru tidak menggunakan subnet yang dihapus.

Jika Anda mengupdate batas koneksi kebijakan koneksi layanan, hal berikut akan berlaku:

  • Endpoint yang ada tidak akan terpengaruh.
  • Jika batas koneksi baru lebih rendah dari jumlah endpoint yang ada yang terkait dengan kebijakan, otomatisasi konektivitas layanan akan memblokir pembuatan endpoint baru yang menggunakan kebijakan ini.
  • Jika batas koneksi baru lebih tinggi dari jumlah endpoint yang ada yang terkait dengan kebijakan, endpoint yang sebelumnya diblokir oleh batas koneksi dapat dibuat.

Jika Anda mengupdate kebijakan koneksi layanan dan tidak menentukan batas koneksi, kebijakan yang diupdate tidak akan memiliki batas koneksi.

Konsol

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

    Buka Private Service Connect

  2. Klik tab Kebijakan Koneksi.

  3. Klik kebijakan koneksi layanan yang ingin Anda edit.

  4. Klik Edit.

  5. Untuk mengupdate subnetwork kebijakan, lakukan hal berikut:

    1. Klik Subnetworks, lalu pilih subnetwork yang ingin Anda kaitkan dengan kebijakan ini.
    2. Klik Oke.
  6. Untuk memperbarui batas koneksi kebijakan, masukkan nilai baru di kolom Connection limit.

  7. Klik Update policy.

gcloud

Gunakan perintah service-connection-policies update.

gcloud network-connectivity service-connection-policies update POLICY_NAME \
    --region=REGION
    --project=PROJECT_ID
    --subnets=SUBNETS
    --psc-connection-limit=LIMIT
  • POLICY_NAME: nama kebijakan koneksi layanan Anda.
  • REGION: region kebijakan koneksi layanan. Anda tidak dapat mengupdate region kebijakan.
  • PROJECT_ID: project ID atau nomor project kebijakan.
  • SUBNETS: satu atau beberapa subnet konsumen reguler yang digunakan untuk mengaloksir alamat IP untuk endpoint Private Service Connect. Alamat IP ini secara otomatis dialokasikan dan dikembalikan ke kumpulan subnet saat instance layanan terkelola dibuat dan dihapus. Subnet harus berada di region yang sama dengan kebijakan koneksi layanan. Anda dapat menggunakan kembali subnetwork yang sama dalam beberapa kebijakan koneksi jika kebijakan tersebut memiliki region yang sama. Anda dapat memasukkan beberapa subnet dalam daftar yang dipisahkan koma.
  • LIMIT: jumlah maksimum endpoint yang dapat dibuat menggunakan kebijakan ini. Jika tidak ditentukan, batasnya menjadi tidak ada.

API

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • PROJECT_ID: ID project Anda.
  • REGION: region kebijakan koneksi layanan Anda. Anda tidak dapat mengupdate region kebijakan.
  • POLICY_NAME: nama kebijakan koneksi layanan Anda.
  • LIMIT: jumlah maksimum endpoint yang dapat dibuat menggunakan kebijakan ini. Jika tidak ditentukan, batasnya menjadi tidak ada.
  • SUBNET: satu atau beberapa subnet konsumen reguler yang digunakan untuk mengalokasikan alamat IP untuk endpoint Private Service Connect. Alamat IP ini dialokasikan secara otomatis dan dikembalikan ke kumpulan subnet saat instance layanan terkelola dibuat dan dihapus. Subnet harus berada di region yang sama dengan kebijakan koneksi layanan. Anda dapat menggunakan kembali subnetwork yang sama dalam beberapa kebijakan koneksi jika kebijakan tersebut memiliki region yang sama. Anda dapat memasukkan beberapa URL subnet dalam daftar yang dipisahkan koma.
  • NETWORK: jaringan kebijakan koneksi layanan Anda.

Metode HTTP dan URL:

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Meminta isi JSON:

{
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "network": "projects/PROJECT_ID/global/networks/NETWORK"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip seperti berikut:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Menghapus kebijakan koneksi layanan

Anda dapat menghapus kebijakan koneksi layanan jika sudah selesai menggunakan layanan atau ingin berhenti mengotomatiskan konektivitas. Penghapusan kebijakan akan diblokir jika koneksi Private Service Connect yang aktif dikaitkan dengan kebijakan. Sebelum menghapus kebijakan koneksi layanan, hapus semua koneksi aktif dengan menonaktifkan semua instance layanan terkait.

Konsol

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

    Buka Private Service Connect

  2. Klik tab Kebijakan Koneksi.

  3. Pilih kebijakan koneksi layanan yang ingin Anda hapus, lalu klik Delete.

gcloud

Gunakan perintah service-connection-policies delete.

gcloud network-connectivity service-connection-policies delete POLICY_NAME \
    --region=REGION

Ganti yang berikut ini:

  • POLICY_NAME: nama kebijakan koneksi layanan yang ingin Anda hapus.
  • REGION: region kebijakan koneksi layanan yang ingin Anda hapus.

API

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • PROJECT_ID: ID project Anda.
  • REGION: region kebijakan koneksi layanan Anda.
  • POLICY_NAME: nama kebijakan koneksi layanan yang akan dihapus.

Metode HTTP dan URL:

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692128792549-602fb6f98194a-e0275435-36edc095",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T19:46:32.605032867Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Mengonfigurasi akun layanan untuk VPC Bersama

Akun layanan dikonfigurasi secara otomatis saat Anda menggunakan kebijakan koneksi layanan dengan VPC Bersama, tetapi peran dapat dihapus secara manual. Jika Anda melihat error tentang izin yang tidak ada, coba berikan peran lagi.

Untuk memberikan peran yang diperlukan, Admin Akun Layanan dapat melakukan hal berikut.

Memberikan peran ke akun layanan di project layanan

gcloud

  1. Berikan peran Network Connectivity Service Agent (roles/networkconnectivity.serviceAgent) ke Akun Layanan Network Connectivity project layanan. Berikan peran tersebut ke project layanan.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_NUMBER \
        --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity. \
        --role=roles/networkconnectivity.serviceAgent
    

    Ganti SERVICE_PROJECT_NUMBER dengan nomor project untuk project layanan.

  2. Berikan peran Compute Network User (roles/compute.networkUser) ke Akun Layanan Network Connectivity project layanan. Lakukan salah satu tindakan berikut.

    • Berikan peran tersebut ke project host.

      gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity. \
          --role=roles/compute.networkUser
      

      Ganti HOST_PROJECT_NUMBER dengan nomor project untuk project host.

    • Berikan peran di setiap subnet dalam project host yang dikaitkan dengan kebijakan koneksi layanan. Gunakan perintah berikut untuk setiap subnet.

      gcloud compute networks subnets add-iam-policy-binding SUBNET \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity. \
          --role=roles/compute.networkUser \
          --region=REGION \
          --project=HOST_PROJECT_NUMBER
      

      Ganti kode berikut:

      • SUBNET: nama subnet yang terkait dengan kebijakan koneksi layanan Anda.
      • REGION: region subnet.

Memberikan peran ke akun layanan di project host

gcloud

  1. Berikan peran Network Connectivity Service Agent (roles/networkconnectivity.serviceAgent) ke Akun Layanan Network Connectivity project host. Berikan peran tersebut ke project host.

    gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
        --member=serviceAccount:service-HOST_PROJECT_NUMBER@gcp-sa-networkconnectivity. \
        --role=roles/networkconnectivity.serviceAgent
    

    Ganti HOST_PROJECT_NUMBER dengan nomor project untuk project host.

Langkah selanjutnya