Menyediakan VPC Bersama

Dengan VPC Bersama, Anda dapat mengekspor subnet dari Jaringan Virtual Private Cloud (VPC) dalam project host ke project layanan lainnya dalam organisasi yang sama. Instance dalam project layanan dapat memiliki koneksi jaringan di subnet bersama project host. Halaman ini menjelaskan cara menyiapkan dan menggunakan VPC Bersama, termasuk beberapa persiapan administratif yang diperlukan untuk organisasi Anda.

VPC Bersama mendukung ekspor subnet khusus IPv4 (single stack) serta IPv4 dan IPv6 (dual-stack).

Untuk mengetahui informasi tentang cara melepaskan project layanan atau menghapus konfigurasi VPC Bersama sepenuhnya, lihat Mencabut akses VPC Bersama.

VPC Bersama juga disebut sebagai "XPN" di API dan antarmuka command line.

Kuota, batas, dan resource yang memenuhi syarat

Sebelum memulai, pastikan Anda telah memahami VPC Bersama dan khususnya IAM:

Mempersiapkan organisasi

Perhatikan informasi berikut saat Anda menyiapkan organisasi.

Administrator dan IAM

Menyiapkan organisasi, menyiapkan project host VPC Bersama, dan menggunakan jaringan VPC Bersama melibatkan minimal tiga peran Identity and Access Management (IAM) administratif yang berbeda. Untuk mengetahui detail selengkapnya tentang setiap peran dan informasi tentang peran opsional, lihat bagian administrator dan IAM dalam ringkasan VPC Bersama.

Batasan kebijakan organisasi

Batasan kebijakan organisasi dapat melindungi resource VPC Bersama di level project, folder, atau organisasi. Bagian berikut menjelaskan setiap kebijakan.

Mencegah penghapusan project host secara tidak sengaja

Penghapusan project host yang tidak disengaja akan menyebabkan penghentian semua project layanan yang terpasang padanya. Saat project dikonfigurasi sebagai project host VPC Bersama, kunci khusus—yang disebut lien—akan ditempatkan pada project tersebut. Selama lien ada, ia akan mencegah project dihapus secara tidak sengaja. Lien akan otomatis dihapus dari project host saat tidak lagi dikonfigurasi untuk VPC Bersama.

Pengguna dengan peran orgpolicy.policyAdmin dapat menentukan batasan kebijakan tingkat organisasi (batasan/compute.restrictXpnProjectLienRemoval) yang membatasi penghapusan lien hanya untuk peran berikut:

  • Pengguna dengan roles/owner atau roles/resourcemanager.lienModifier di tingkat organisasi
  • Pengguna dengan peran khusus yang menyertakan izin resourcemanager.projects.get dan resourcemanager.projects.updateLiens di tingkat organisasi

Tindakan ini akan mencegah pemilik project yang tidak memiliki peran roles/owner atau peran resourcemanager.lienModifier di tingkat organisasi, menghapus host proyek VPC Bersama Anda secara tidak sengaja. Untuk informasi selengkapnya tentang izin yang terkait dengan peran resourcemanager.lienModifier, lihat Menempatkan lien di project dalam dokumentasi Resource Manager.

Karena kebijakan organisasi berlaku untuk semua project di organisasi, Anda hanya perlu mengikuti langkah-langkah ini satu kali untuk membatasi penghapusan lien.

  1. Lakukan autentikasi ke gcloud sebagai Admin Organisasi atau akun utama IAM dengan peran orgpolicy.policyAdmin. Ganti ORG_ADMIN dengan nama Admin Organisasi:

    gcloud auth login ORG_ADMIN
    
  2. Tentukan nomor ID organisasi Anda dengan melihat output perintah ini.

    gcloud organizations list
    
  3. Terapkan kebijakan compute.restrictXpnProjectLienRemoval untuk organisasi Anda dengan menjalankan perintah ini. Ganti ORG_ID dengan angka yang Anda tentukan dari langkah sebelumnya.

    gcloud resource-manager org-policies enable-enforce \
        --organization ORG_ID compute.restrictXpnProjectLienRemoval
    
  4. Logout dari gcloud jika Anda sudah selesai melakukan tugas sebagai Admin Organisasi untuk melindungi akun Anda.

    gcloud auth revoke ORG_ADMIN
    

Membatasi lampiran project host

Secara default, Admin VPC Bersama dapat melampirkan non-host ke project host mana pun di organisasi yang sama. Administrator kebijakan organisasi dapat membatasi kumpulan project host tempat satu project non-host atau beberapa prject non-host dapat dilampirkan dalam folder atau organisasi. Untuk informasi selengkapnya, lihat batasan constraints/compute.restrictSharedVpcHostProjects.

Membatasi subnet dalam project host yang dapat digunakan oleh project layanan

Secara default, setelah Anda mengonfigurasi VPC Bersama, akun utama IAM dalam project layanan dapat menggunakan subnet apa pun di project host jika memiliki izin IAM yang sesuai. Selain mengelola izin pengguna individual, administrator kebijakan organisasi dapat menetapkan kebijakan untuk menentukan kumpulan subnet yang dapat diakses oleh project tertentu atau oleh project dalam folder atau organisasi. Untuk informasi selengkapnya, lihat batasan constraints/compute.restrictSharedVpcSubnetworks.

Mencegah penonaktifan project host secara tidak disengaja

Memutuskan sambungan penagihan di jaringan VPC Bersama dapat menyebabkan penonaktifan total semua resource dependen, termasuk project layanan. Untuk mencegah kemungkinan terjadinya penonaktifan VPC Bersama yang tidak disengaja akibat penagihan yang tidak aktif atau dinonaktifkan, amankan link antara project host dan akun penagihannya.

Mengajukan Admin VPC Bersama

Admin Organisasi dapat memberikan peran Admin VPC Bersama dan Admin IAM Project kepada satu atau beberapa akun utama IAM.

Peran Admin IAM Project memberikan izin kepada Admin VPC Bersama untuk membagikan semua subnet yang ada dan yang akan datang, bukan hanya subnet individual. Pemberian peran ini membuat binding di tingkat organisasi atau folder, bukan tingkat project. Jadi, akun utama IAM harus ditentukan di organisasi, bukan hanya project di dalamnya.

Konsol

Untuk memberikan peran Admin VPC Bersama di tingkat organisasi

  1. Login ke konsol Google Cloud sebagai Admin Organisasi, lalu buka halaman IAM.

    Buka halaman IAM

  2. Dari menu project, pilih organisasi Anda.

    Jika Anda memilih project, menu Roles akan menampilkan entri yang salah.

  3. Klik Tambahkan.

  4. Masukkan alamat email untuk New principals.

  5. Di menu Roles, pilih Compute Engine > Compute Shared VPC Admin.

  6. Klik Add another role.

  7. Di menu drop-down Roles, pilih Resource Manager > Project IAM Admin.

  8. Klik Save.

Untuk memberikan peran Admin VPC Bersama di tingkat folder

  1. Login ke konsol Google Cloud sebagai Admin Organisasi, lalu buka halaman IAM.

    Buka halaman IAM

  2. Dari menu project, pilih folder Anda.

    Jika Anda memilih project atau organisasi, opsi yang Anda lihat tidak benar.

  3. Klik Tambahkan.

  4. Masukkan alamat email untuk New principals.

  5. Di bagian Pilih peran, pilih Compute Engine > Compute Shared VPC Admin.

  6. Klik Add another role.

  7. Di menu Roles, pilih Resource Manager > Project IAM Admin.

  8. Klik Add another role.

  9. Di menu Roles, pilih Resource Manager > Compute Network Viewer.

  10. Klik Simpan.

gcloud

  1. Autentikasi ke gcloud sebagai Admin Organisasi. Ganti ORG_ADMIN dengan nama Admin Organisasi:

    gcloud auth login ORG_ADMIN
    
  2. Tentukan nomor ID organisasi Anda dengan melihat output perintah ini.

    gcloud organizations list
    
  3. Untuk menetapkan peran Admin VPC Bersama pada tingkat organisasi, lakukan hal berikut:

    1. Terapkan peran Admin VPC Bersama ke akun utama IAM yang ada. Ganti ORG_ID dengan nomor ID organisasi dari langkah sebelumnya, dan EMAIL_ADDRESS dengan alamat email pengguna yang Anda beri peran Admin VPC Bersama.

      gcloud organizations add-iam-policy-binding ORG_ID \
        --member='user:EMAIL_ADDRESS' \
        --role="roles/compute.xpnAdmin"
      
      gcloud organizations add-iam-policy-binding ORG_ID \
        --member='user:EMAIL_ADDRESS' \
        --role="roles/resourcemanager.projectIamAdmin"
      
  4. Untuk menetapkan peran Admin VPC Bersama pada tingkat folder, lakukan hal berikut:

    1. Tentukan ID folder Anda dengan melihat output perintah ini.

      gcloud resource-manager folders list --organization=ORG_ID
      
    2. Terapkan peran Admin VPC Bersama ke akun utama IAM yang ada. Ganti ORG_ID dengan nomor ID organisasi dari langkah sebelumnya, dan EMAIL_ADDRESS dengan alamat email pengguna yang Anda beri peran Admin VPC Bersama.

      gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
         --member='user:EMAIL_ADDRESS' \
         --role="roles/compute.xpnAdmin"
      
      gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
         --member='user:EMAIL_ADDRESS' \
         --role="roles/resourcemanager.projectIamAdmin"
      
      gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
         --member='user:EMAIL_ADDRESS' \
         --role="roles/compute.networkViewer"
      
  5. Cabut token akun Admin Organisasi Anda di alat command line gcloud setelah selesai melakukan tugas untuk melindungi akun Anda.

    gcloud auth revoke ORG_ADMIN
    

API

  • Untuk menetapkan peran Admin VPC Bersama pada tingkat organisasi, gunakan prosedur berikut:

    1. Tentukan nomor ID organisasi Anda.

      POST https://cloudresourcemanager.googleapis.com/v1/organizations
      
    2. Jelaskan, lalu catat detail kebijakan organisasi Anda yang ada.

      POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:getIamPolicy
      

      Ganti ORG_ID dengan ID organisasi Anda.

    3. Tetapkan peran Admin VPC Bersama.

      POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:setIamPolicy
      {
        "bindings": [
          ...copy existing bindings
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/compute.xpnAdmin"
          },
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/resourcemanager.projectIamAdmin"
          }
        ],
        "etag": "ETAG",
        "version": 1,
        ...other existing policy details
      }
      

      Ganti kode berikut:

      • ORG_ID: ID organisasi yang berisi pengguna yang Anda beri peran Admin VPC Bersama.
      • EMAIL_ADDRESS: alamat email pengguna.
      • ETAG: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.

      Untuk informasi selengkapnya, lihat metode organizations.setIamPolicy.

  • Untuk menetapkan peran Admin VPC Bersama pada tingkat folder, gunakan permintaan berikut:

    1. Tentukan nomor ID organisasi Anda.

      POST https://cloudresourcemanager.googleapis.com/v1/organizations
      
    2. Temukan ID folder Anda.

      GET https://cloudresourcemanager.googleapis.com/v2/folders?parent=organizations/ORG_ID
      

      Ganti ORG_ID dengan ID organisasi Anda.

    3. Jelaskan, lalu catat detail kebijakan folder yang ada.

      POST https://cloudresourcemanager.googleapis.com/v2/folders/FOLDER_ID:getIamPolicy
      

      Ganti FOLDER_ID dengan ID folder Anda.

    4. Tetapkan peran Admin VPC Bersama.

      POST https://cloudresourcemanager.googleapis.com/v1/organizations/FOLDER_ID:setIamPolicy
      {
        "bindings": [
          ...copy existing bindings
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/compute.xpnAdmin"
          },
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/resourcemanager.projectIamAdmin"
          },
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/compute.networkViewer"
          }
        ],
        "etag": "ETAG",
        "version": 1,
        ...other existing policy details
      }
      

      Ganti kode berikut:

      • FOLDER_ID: ID organisasi yang berisi pengguna yang Anda beri peran Admin VPC Bersama.
      • EMAIL_ADDRESS: alamat email pengguna.
      • ETAG: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.

      Untuk informasi selengkapnya, lihat metode folders.setIamPolicy.

Menyiapkan VPC yang Dibagikan

Semua tugas di bagian ini harus dilakukan oleh Admin VPC Bersama.

Mengaktifkan project host

Dalam organisasi, Admin VPC Bersama dapat menetapkan project sebagai project host VPC Bersama, yang tunduk pada kuota dan batas, dengan mengikuti prosedur ini. Admin VPC Bersama juga dapat membuat dan menghapus project jika mereka memiliki peran Project Creator dan Project Deleter (roles/resourcemanager.projectCreator dan roles/resourcemanager.projectDeleter) untuk organisasi Anda.

Jika Anda mengaktifkan project host, resource jaringan project tidak akan otomatis dibagikan dengan project layanan. Anda perlu melampirkan project layanan ke project host untuk membagikan jaringan dan subnet yang dipilih dengan project layanan.

Konsol

Jika belum memiliki peran Compute Shared VPC Admin (roles/compute.xpnAdmin), Anda tidak dapat melihat halaman ini di konsol Google Cloud.

  1. Di konsol Google Cloud, buka halaman Shared VPC.

    Buka Shared VPC

  2. Login sebagai Admin VPC Bersama.

  3. Pilih project yang ingin Anda aktifkan sebagai project host VPC Bersama dari pemilih project.

  4. Klik Set up Shared VPC.

  5. Di halaman berikutnya, klik Save & continue di bagian Enable host project.

  6. Di bagian Select subnets, lakukan salah satu tindakan berikut:

    1. Klik Enable host project jika Anda perlu membagikan semua subnet saat ini dan yang akan datang di jaringan VPC project host dengan project layanan dan Admin Project Layanan yang ditentukan pada langkah berikutnya.
    2. Klik Individual subnets (subnet-level permissions) jika Anda perlu membagikan subnet secara selektif dari jaringan VPC project host ke project layanan dan Admin Project Layanan. Kemudian, pilih Subnet yang akan dibagikan.
  7. Klik Continue.
    Layar berikutnya akan ditampilkan.

  8. Di bagian Project names, tentukan project layanan yang akan dilampirkan ke project host. Perhatikan bahwa melampirkan project layanan tidak menentukan Admin Project Layanan apa pun; hal itu dilakukan pada langkah berikutnya.

  9. Di bagian Select users by role, tambahkan Service Project Admins. Pengguna ini akan diberi peran IAM compute.networkUser untuk subnet bersama. Hanya Admin Project Layanan yang dapat membuat resource di subnet project host VPC Bersama.

  10. Klik Save.

gcloud

  1. Lakukan autentikasi ke gcloud sebagai Admin VPC Bersama. Ganti SHARED_VPC_ADMIN dengan nama Admin VPC Bersama:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Aktifkan VPC Bersama untuk project yang ingin Anda jadikan project host. Ganti HOST_PROJECT_ID dengan ID project.

    gcloud compute shared-vpc enable HOST_PROJECT_ID
    
  3. Konfirmasi bahwa project tersebut tercantum sebagai project host untuk organisasi Anda. Ganti ORG_ID dengan ID organisasi Anda (ditentukan berdasarkan gcloud organizations list).

    gcloud compute shared-vpc organizations list-host-projects ORG_ID
    
  4. Jika hanya perlu mengaktifkan project host, Anda dapat logout dari gcloud untuk melindungi kredensial akun Admin VPC Bersama. Jika tidak, lewati langkah ini dan lanjutkan dengan langkah-langkah untuk melampirkan project layanan.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Aktifkan VPC Bersama untuk project menggunakan kredensial dengan izin Admin VPC Bersama.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
    

    Ganti HOST_PROJECT_ID dengan ID project yang akan menjadi project host VPC Bersama.

    Untuk informasi selengkapnya, lihat metode projects.enableXpnHost.

  2. Konfirmasi bahwa project tersebut tercantum sebagai project host.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
    

    Ganti HOST_PROJECT_ID dengan ID project host VPC Bersama.

    Untuk informasi selengkapnya, lihat metode projects.listXpnHosts.

Terraform

Anda dapat menggunakan resource Terraform untuk mengaktifkan project host.

resource "google_compute_shared_vpc_host_project" "host" {
  project = var.project # Replace this with your host project ID in quotes
}

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

Memasang project layanan

Project layanan harus terhubung ke project host sebelum Admin Project Layanannya dapat menggunakan VPC Bersama. Admin VPC Bersama harus melakukan langkah-langkah berikut untuk menyelesaikan lampiran.

Project layanan hanya dapat dilampirkan ke satu project host, tetapi project host mendukung beberapa lampiran project layanan. Lihat batas khusus untuk VPC Bersama di halaman kuota VPC untuk mengetahui detailnya.

Konsol

  1. Login ke Konsol Google Cloud sebagai Admin VPC Bersama.
  2. Di konsol Google Cloud, buka halaman Shared VPC.
    Buka halaman VPC Bersama
  3. Klik tab Attached projects.
  4. Pada tab Attached projects, klik tombol Attach projects.
  5. Centang kotak untuk project layanan yang akan dilampirkan di bagian Project names. Perhatikan bahwa melampirkan project layanan tidak menentukan Admin Project Layanan apa pun; hal itu dilakukan pada langkah berikutnya.
  6. Di bagian VPC network permissions, pilih peran yang utamanya akan mendapatkan peran compute.networkUser. Akun utama IAM diberi peran Pengguna Jaringan untuk seluruh project host atau subnet tertentu dalam project host, berdasarkan mode berbagi jaringan VPC. Akun utama ini dikenal sebagai Service Project Admin dalam project layanannya masing-masing.
  7. Di bagian VPC network sharing mode, pilih salah satu opsi berikut:
    1. Klik Share all subnets (project-level permissions) untuk membagikan semua subnet saat ini dan mendatang di jaringan VPC project host kepada semua project layanan dan Admin Project Layanan.
    2. Klik Individual subnets (subnet-level permissions) jika Anda perlu berbagi subnet secara selektif dari jaringan VPC project host dengan project layanan dan Admin Project Layanan. Kemudian, pilih Subnet yang akan dibagikan.
  8. Klik Save.

gcloud

  1. Jika Anda belum melakukannya, lakukan autentikasi ke gcloud sebagai Admin VPC Bersama. Ganti SHARED_VPC_ADMIN dengan nama Admin VPC Bersama:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Lampirkan project layanan ke project host yang sebelumnya diaktifkan. Ganti SERVICE_PROJECT_ID dengan project ID untuk project layanan dan HOST_PROJECT_ID dengan project ID untuk project host.

    gcloud compute shared-vpc associated-projects add SERVICE_PROJECT_ID \
        --host-project HOST_PROJECT_ID
    
  3. Konfirmasi bahwa project layanan telah terpasang.

    gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
    
  4. Secara opsional, Anda dapat mencantumkan project layanan yang disertakan ke project host:

    gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
    
  5. Jika hanya perlu memasang project layanan, Anda dapat logout dari gcloud untuk melindungi kredensial akun Admin VPC Bersama. Jika tidak, lewati langkah ini dan tentukan Admin Project Layanan untuk semua subnet atau untuk beberapa subnet saja.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Lampirkan project layanan ke project host VPC Bersama.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnResource
    {
      "xpnResource": {
        "id": "SERVICE_PROJECT"
      }
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • SERVICE_PROJECT: ID project layanan yang akan dilampirkan.

    Untuk informasi selengkapnya, lihat metode projects.enableXpnResource.

  2. Konfirmasi bahwa project layanan terpasang ke project host.

    GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project host VPC Bersama.

    Untuk informasi selengkapnya, lihat metode projects.getXpnResources.

Terraform

Anda dapat menggunakan resource Terraform untuk memasang project layanan.

resource "google_compute_shared_vpc_service_project" "service1" {
  host_project    = google_compute_shared_vpc_host_project.host.project
  service_project = var.service_project # Replace this with your service project ID in quotes
}

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

Admin Project Layanan untuk semua subnet

Admin VPC Bersama dapat menetapkan akun utama IAM dari project layanan menjadi Admin Project Layanan dengan akses ke semua subnet dalam project host. Admin Project Layanan jenis ini diberi peran compute.networkUser untuk seluruh project host. Artinya, server tersebut memiliki akses ke semua subnet yang ditentukan saat ini dan subnet di project host.

Pengguna yang memiliki peran compute.networkUser dalam project host dapat melihat semua subnet dalam project layanan yang terpasang.

Konsol

Untuk menentukan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses ke semua subnet dalam project host menggunakan Google Cloud Console, lihat bagian melampirkan project layanan.

gcloud

Langkah-langkah ini mencakup penentuan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses ke semua subnet di project host. Sebelum dapat melakukan langkah-langkah ini, Anda harus telah mengaktifkan project host dan melampirkan project layanan ke project host.

  1. Jika Anda belum melakukannya, lakukan autentikasi ke gcloud sebagai Admin VPC Bersama. Ganti SHARED_VPC_ADMIN dengan nama Admin VPC Bersama:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Buat binding kebijakan untuk membuat entity utama IAM dari project layanan menjadi Admin Project Layanan. Ganti HOST_PROJECT_ID dengan project ID untuk project host dan SERVICE_PROJECT_ADMIN dengan alamat email pengguna Admin Project Layanan.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member "user:SERVICE_PROJECT_ADMIN" \
    --role "roles/compute.networkUser"
    

    Anda dapat menentukan berbagai jenis akun utama dengan mengubah format argumen --member:

    • Gunakan group: untuk menentukan grup Google (berdasarkan alamat email) sebagai akun utama.
    • Gunakan domain: untuk menentukan domain Google sebagai akun utama.
    • Gunakan serviceAccount: untuk menentukan akun layanan. Lihat Akun Layanan sebagai Admin Project Layanan untuk mengetahui informasi selengkapnya tentang kasus penggunaan ini.
  3. Ulangi langkah sebelumnya untuk setiap Admin Project Layanan tambahan yang perlu Anda tentukan.

  4. Jika sudah selesai menentukan Service Project Admin, Anda dapat logout dari gcloud untuk melindungi kredensial akun Admin VPC Bersama.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Jelaskan lalu catat detail kebijakan proyek yang ada. Anda memerlukan kebijakan dan nilai etag yang ada.

    POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
    

    Ganti HOST_PROJECT_ID dengan ID project host yang berisi jaringan VPC Bersama.

  2. Buat binding kebijakan untuk menetapkan entity utama IAM dalam project layanan sebagai Admin Project Layanan.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            PRINCIPAL,
            ...additional principals
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project host yang berisi jaringan VPC Bersama.
    • PRINCIPAL: identitas yang terkait dengan peran, seperti pengguna, grup, domain, atau akun layanan. Untuk informasi selengkapnya, lihat kolom members dalam dokumentasi Resource Manager.
    • ETAG: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.

    Untuk informasi selengkapnya, lihat metode projects.setIamPolicy.

Admin Project Layanan untuk beberapa subnet

Admin VPC Bersama dapat menetapkan akun utama IAM dari project layanan menjadi Admin Project Layanan dengan akses hanya ke beberapa subnet di project host. Opsi ini memberikan cara yang lebih terperinci untuk menentukan Admin Project Layanan dengan memberi mereka peran compute.networkUser hanya untuk beberapa subnet dalam project host.

Pengguna yang memiliki peran compute.networkUser dalam project host dapat melihat semua subnet dalam project layanan yang terpasang.

Konsol

Untuk menentukan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses hanya ke beberapa subnet dalam project host menggunakan Google Cloud Console, lihat memasang project layanan.

gcloud

Langkah-langkah ini mencakup penentuan entity utama IAM dari project layanan sebagai Admin Project Layanan dengan akses hanya ke beberapa subnet dalam project host. Sebelum menentukannya, Anda harus mengaktifkan project host dan melampirkan project layanan ke project host.

  1. Jika Anda belum melakukannya, lakukan autentikasi ke gcloud sebagai Admin VPC Bersama. Ganti SHARED_VPC_ADMIN dengan nama Admin VPC Bersama:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Pilih subnet di project host yang harus diakses oleh Admin Project Layanan. Mendapatkan kebijakan IAM saat ini dalam format JSON. Ganti SUBNET_NAME dengan nama subnet di project host dan HOST_PROJECT_ID dengan project ID untuk project host.

    gcloud compute networks subnets get-iam-policy SUBNET_NAME \
        --region SUBNET_REGION \
        --project HOST_PROJECT_ID \
        --format json
    
  3. Salin output JSON dari langkah sebelumnya dan simpan ke file. Agar lebih jelas, langkah-langkah ini akan menyimpannya ke file bernama subnet-policy.json.

  4. Ubah file subnet-policy.json, dengan menambahkan akun utama IAM yang akan menjadi Admin Project Layanan dengan akses ke subnet. Ganti setiap SERVICE_PROJECT_ADMIN dengan alamat email pengguna IAM dari project layanan.

    {
      "bindings": [
      {
         "members": [
               "user:[SERVICE_PROJECT_ADMIN]",
               "user:[SERVICE_PROJECT_ADMIN]"
            ],
            "role": "roles/compute.networkUser"
      }
      ],
      "etag": "[ETAG_STRING]"
    }
    

    Perlu diperhatikan bahwa Anda dapat menentukan berbagai jenis akun utama IAM (selain pengguna) dalam kebijakan:

    • Alihkan user: dengan group: untuk menentukan grup Google (berdasarkan alamat email) sebagai akun utama.
    • Alihkan user: dengan domain: untuk menentukan domain Google sebagai utama.
    • Gunakan serviceAccount: untuk menentukan akun layanan. Lihat Akun Layanan sebagai Admin Project Layanan untuk mengetahui informasi selengkapnya tentang kasus penggunaan ini.
  5. Perbarui binding kebijakan untuk subnet menggunakan konten file subnet-policy.json.

    gcloud compute networks subnets set-iam-policy SUBNET_NAME subnet-policy.json \
        --region SUBNET_REGION \
        --project HOST_PROJECT_ID
    
  6. Jika sudah selesai menentukan Service Project Admin, Anda dapat logout dari gcloud untuk melindungi kredensial akun Admin VPC Bersama.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. Jelaskan dan catat detail kebijakan subnet yang ada. Anda memerlukan kebijakan dan nilai etag yang ada.

    GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/getIamPolicy
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project host yang berisi jaringan VPC Bersama.
    • SUBNET_NAME: nama subnet yang akan dibagikan.
    • SUBNET_REGION: region tempat subnet berada.
  2. Beri Admin Service Project akses ke subnet di project host dengan mengupdate kebijakan subnet.

    POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            PRINCIPAL,
            ...additional principals
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

    Ganti kode berikut:

    • ETAG: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.
    • HOST_PROJECT_ID: ID project host yang berisi jaringan VPC Bersama.
    • PRINCIPAL: identitas yang terkait dengan peran, seperti pengguna, grup, domain, atau akun layanan. Untuk informasi selengkapnya, lihat kolom members dalam dokumentasi Resource Manager.
    • SUBNET_NAME: nama subnet yang akan dibagikan.
    • SUBNET_REGION: region tempat subnet berada.

    Untuk informasi selengkapnya, lihat metode subnetworks.setIamPolicy.

Akun Layanan sebagai Admin Project Layanan

Admin VPC Bersama juga dapat menentukan akun layanan dari project layanan sebagai Admin Project Layanan. Bagian ini menggambarkan cara menentukan dua jenis akun layanan yang berbeda sebagai Service Project Admin:

Peran Admin Project Layanan (compute.networkUser) dapat diberikan untuk semua subnet atau hanya beberapa subnet dari project host. Namun, untuk penyederhanaan petunjuk, bagian ini hanya menggambarkan cara menentukan dua jenis akun layanan sebagai Admin Project Layanan untuk semua subnet project host.

Akun layanan yang dikelola pengguna sebagai Admin Project Layanan

Petunjuk ini menjelaskan cara menentukan akun layanan yang dikelola pengguna sebagai Admin Project Layanan untuk semua subnet project host VPC Bersama.

Konsol

  1. Login ke Konsol Google Cloud sebagai Admin VPC Bersama.
  2. Di konsol Google Cloud, buka halaman Settings.
    Buka halaman Settings
  3. Ubah project menjadi project layanan yang berisi akun layanan yang perlu ditentukan sebagai Admin Project Layanan.
  4. Salin Project ID project layanan. Untuk kejelasan instruksi, prosedur ini merujuk pada project ID layanan sebagai SERVICE_PROJECT_ID.
  5. Ubah project menjadi project host VPC Bersama.
  6. Buka halaman IAM di Konsol Google Cloud.
    Buka halaman IAM
  7. Klik Tambahkan.
  8. Tambahkan SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.ke kolom Principals, dengan mengganti SERVICE_ACCOUNT_NAME dengan nama akun layanan.
  9. Pilih Compute Engine > Compute Network User dari menu Roles.
  10. Klik Add.

gcloud

  1. Jika Anda belum melakukannya, lakukan autentikasi ke gcloud sebagai Admin VPC Bersama. Ganti SHARED_VPC_ADMIN dengan nama Admin VPC Bersama:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Jika tidak mengetahui project ID untuk project layanan, Anda dapat mencantumkan semua project di organisasi. Daftar ini menampilkan project ID untuk setiap project.

    gcloud projects list
    
  3. Buat binding kebijakan untuk menjadikan akun layanan sebagai Admin Project Layanan. Ganti HOST_PROJECT_ID dengan project ID untuk project host,SERVICE_ACCOUNT_NAME dengan nama akun layanan, dan SERVICE_PROJECT_ID dengan project ID layanan.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID." \
        --role "roles/compute.networkUser"
    

API

  1. Jelaskan lalu catat detail kebijakan proyek yang ada. Anda memerlukan kebijakan dan nilai etag yang ada.

    POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
    

    Ganti HOST_PROJECT_ID dengan ID project host yang berisi jaringan VPC Bersama.

  2. Buat binding kebijakan untuk menetapkan akun layanan sebagai Admin Project Layanan.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.",
            ...include additional service accounts
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project host yang berisi jaringan VPC Bersama.
    • SERVICE_ACCOUNT_NAME: nama akun layanan.
    • SERVICE_PROJECT_ID: ID project layanan yang berisi akun layanan.
    • ETAG: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.

    Untuk informasi selengkapnya, lihat metode projects.setIamPolicy.

Akun layanan Google API sebagai Admin Project Layanan

Petunjuk ini menjelaskan cara menentukan akun layanan Google API sebagai Admin Project Layanan untuk semua subnet project host VPC Bersama. Menjadikan akun layanan Google API sebagai Admin Project Layanan adalah persyaratan untuk grup instance terkelola yang digunakan dengan VPC Bersama karena tugas seperti pembuatan instance dilakukan oleh jenis akun layanan ini. Untuk mengetahui informasi selengkapnya tentang hubungan ini, lihat Grup Instance yang Dikelola dan IAM.

Konsol

  1. Login ke Konsol Google Cloud sebagai Admin VPC Bersama.
  2. Di konsol Google Cloud, buka halaman Settings.
    Buka halaman Settings
  3. Ubah project menjadi project layanan yang berisi akun layanan yang perlu ditentukan sebagai Admin Project Layanan.
  4. Salin Nomor project project layanan. Untuk kejelasan instruksi, prosedur ini merujuk pada nomor project layanan sebagai SERVICE_PROJECT_NUMBER.
  5. Ubah project menjadi project host VPC Bersama.
  6. Buka halaman IAM di Konsol Google Cloud.
    Buka halaman IAM
  7. Klik Tambahkan.
  8. Tambahkan SERVICE_PROJECT_NUMBER@cloudservices.ke kolom Anggota.
  9. Pilih Compute Engine > Compute Network User dari menu Roles.
  10. Klik Add.

gcloud

  1. Jika Anda belum melakukannya, lakukan autentikasi ke gcloud sebagai Admin VPC Bersama. Ganti SHARED_VPC_ADMIN dengan nama Admin VPC Bersama:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. Tentukan nomor project untuk project layanan. Agar jelas, prosedur ini merujuk pada nomor project layanan sebagai SERVICE_PROJECT_NUMBER. Ganti SERVICE_PROJECT_ID dengan project ID untuk project layanan.

    gcloud projects describe SERVICE_PROJECT_ID --format='get(projectNumber)'
    
    • Jika tidak mengetahui project ID untuk project layanan, Anda dapat mencantumkan semua project dalam organisasi. Daftar ini menampilkan nomor project untuk setiap project.

      gcloud projects list
      
  3. Buat binding kebijakan untuk menjadikan akun layanan sebagai Admin Project Layanan. Ganti HOST_PROJECT_ID dengan project ID untuk project host dan SERVICE_PROJECT_NUMBER dengan nomor project layanan.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices." \
        --role "roles/compute.networkUser"
    

API

  1. Jelaskan lalu catat detail kebijakan proyek yang ada. Anda memerlukan kebijakan dan nilai etag yang ada.

    POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
    

    Ganti HOST_PROJECT_ID dengan ID project host yang berisi jaringan VPC Bersama.

  2. Cantumkan project Anda untuk menemukan nomor project-nya.

    GET https://cloudresourcemanager.googleapis.com/v1/projects?filter=projectId="SERVICE_PROJECT_ID"
    

    Ganti SERVICE_PROJECT_ID dengan ID project layanan tempat akun layanan berada.

  3. Buat binding kebijakan untuk menetapkan akun layanan sebagai Admin Project Layanan.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices."
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project host yang berisi jaringan VPC Bersama.
    • SERVICE_PROJECT_NUMBER: jumlah project layanan yang berisi akun layanan.
    • ETAG: ID unik yang Anda dapatkan saat menjelaskan kebijakan yang ada. Hal ini mencegah konflik jika beberapa permintaan update dikirim secara bersamaan.

    Untuk informasi selengkapnya, lihat metode projects.setIamPolicy.

Menggunakan VPC Bersama

Setelah Admin VPC Bersama menyelesaikan tugasmengaktifkan project host, melampirkan proyek layanan yang diperlukan ke, dan menentukan Admin Project Layanan untuk semua atau beberapa dari subnetwork project host, Admin Project Layanan dapat membuat instance, template, dan load balancer internal dalam project layanan menggunakan subnet project host.

Semua tugas di bagian ini harus dilakukan oleh Admin Project Layanan.

Penting untuk diperhatikan bahwa Admin VPC Bersama hanya memberikan peran Pengguna Jaringan Compute kepada Admin Project Layanan (roles/compute.networkUser) ke seluruh project host atau hanya beberapa subnetnya. Admin Project Layanan juga harus memiliki peran lain yang diperlukan untuk mengelola project layanannya masing-masing. Misalnya, Service Project Admin juga dapat berupa project owner atau setidaknya harus memiliki peran Admin Instance Compute (roles/compute.instanceAdmin) untuk project.

Mencantumkan subnet yang tersedia

Admin Project Layanan dapat mencantumkan subnet yang telah diberikan izin dengan mengikuti langkah-langkah berikut.

Konsol

Di konsol Google Cloud, buka halaman Shared VPC.

Buka Shared VPC

gcloud

  1. Jika belum melakukannya, lakukan autentikasi ke gcloud sebagai Admin Project Layanan. Ganti SERVICE_PROJECT_ADMIN dengan nama Admin Project Layanan:

    gcloud auth login SERVICE_PROJECT_ADMIN
    
  2. Jalankan perintah berikut, dan ganti HOST_PROJECT_ID dengan project ID dari project host VPC Bersama:

    gcloud compute networks subnets list-usable --project HOST_PROJECT_ID
    

    Contoh berikut mencantumkan subnet yang tersedia dalam project host project-1:

    $ gcloud compute networks subnets list-usable --project project-1
    
    PROJECT    REGION       NETWORK  SUBNET    RANGE          SECONDARY_RANGES
    project-1  us-west1     net-1    subnet-1  10.138.0.0/20
    project-1  us-central1  net-1    subnet-2  10.128.0.0/20  r-1 192.168.2.0/24
                                                              r-2 192.168.3.0/24
    project-1  us-east1     net-1    subnet-3  10.142.0.0/20
    

Untuk mengetahui informasi selengkapnya, lihat perintah list-usable dalam dokumentasi SDK.

API

Buat daftar subnet yang tersedia di project host. Buat permintaan sebagai Admin Project Layanan.

GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/aggregated/subnetworks/listUsable

Ganti HOST_PROJECT_ID dengan ID project host yang berisi jaringan VPC Bersama.

Untuk informasi selengkapnya, lihat metode subnetworks.listUsable.

Melakukan reservasi alamat IPv4 atau IPv6 internal statis

Admin Project Layanan dapat memesan alamat IPv4 atau IPv6 internal di subnet jaringan VPC Bersama. Objek konfigurasi alamat IP dibuat dalam project layanan, sedangkan nilainya berasal dari rentang alamat IPv4 yang tersedia dalam subnet bersama yang dipilih.

Untuk mencadangkan alamat IP internal mandiri dalam project layanan, selesaikan langkah-langkah berikut.

Konsol

  1. Siapkan VPC bersama.
  2. Di konsol Google Cloud, buka halaman Shared VPC.

    Buka Shared VPC

  3. Login sebagai Admin VPC Bersama.

  4. Pilih project layanan dari pemilih project.

  5. Buka halaman IP addresses dengan memilih VPC network > IP addresses.

  6. Klik Reserve internal static IP address.

  7. Di kolom Name, masukkan nama alamat IP.

  8. Dalam daftar IP version, pilih versi IP yang diperlukan:

    • Untuk mencadangkan alamat IPv4 internal statis, pilih IPv4.
    • Untuk mencadangkan alamat IPv6 internal statis, pilih IPv6.
  9. Klik tombol Networks shared with me.

  10. Dalam daftar Jaringan dan Subnetwork, pilih masing-masing jaringan VPC dan subnet.

  11. Tentukan cara mencadangkan alamat IP:

    • Untuk alamat IPv4, guna menentukan alamat IPv4 internal statis yang akan dicadangkan, di Static IP address, pilih Let me choose, lalu masukkan alamat IP kustom. Jika tidak, sistem akan otomatis menetapkan alamat IPv4 internal statis di subnet untuk Anda.
    • Untuk alamat IPv6, sistem akan otomatis menetapkan alamat IPv6 internal statis dari rentang alamat IPv6 internal subnet.
  12. Opsional: Jika Anda ingin berbagi alamat IPv4 internal statis di frontend yang berbeda, untuk Purpose, pilih Shared. Pilihan defaultnya adalah Non-shared.

  13. Klik Reserve.

gcloud

  1. Jika belum melakukannya, lakukan autentikasi ke Google Cloud CLI sebagai Admin Project Layanan. Ganti SERVICE_PROJECT_ADMIN dengan nama Admin Project Layanan:

    gcloud auth login SERVICE_PROJECT_ADMIN
    
  2. Gunakan perintah compute addresses create.

    • Memesan alamat IPv4:

      gcloud compute addresses create IP_ADDR_NAME \
          --project SERVICE_PROJECT_ID \
          --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
          --region=REGION
          --ip-version=IPV4
      
    • Mencadangkan alamat IPv6:

      gcloud compute addresses create IP_ADDR_NAME \
          --project SERVICE_PROJECT_ID \
          --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
          --region=REGION
          --ip-version=IPV6
      

    Ganti kode berikut:

    • IP_ADDR_NAME: nama untuk objek alamat IPv4.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SUBNET: nama subnet bersama.

Detail tambahan untuk membuat alamat IP dipublikasikan di dokumentasi SDK.

API

Gunakan metode addresses.insert.

  • Mencadangkan alamat IPv4 internal statis sebagai Admin Project Layanan:

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses
    {
    "name": "ADDRESS_NAME",
    "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
    "addressType": "INTERNAL"
    }
    

Ganti kode berikut:

  • ADDRESS_NAME: nama untuk alamat IP internal yang dicadangkan.
  • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
  • REGION: region tempat alamat IPv4 yang dicadangkan akan ditempatkan dan lokasi subnet bersama.
  • SERVICE_PROJECT_ID: ID project layanan tempat Anda memesan alamat IPv4.
  • SUBNET_NAME: nama subnet bersama.

Untuk informasi selengkapnya, lihat metode addresses.insert.

Terraform

Anda dapat menggunakan blok data Terraform untuk menentukan informasi subnet host. Kemudian, gunakan resource Terraform untuk memesan alamat IPv4 internal statis. Jika Anda menghilangkan argumen address opsional, alamat IPv4 yang tersedia akan dipilih dan dicadangkan.

Tentukan subnet host:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

Cadangkan alamat IPv4 dari subnet project host untuk digunakan dalam project layanan:

resource "google_compute_address" "internal" {
  project      = var.service_project
  region       = "us-central1"
  name         = "int-ip"
  address_type = "INTERNAL"
  address      = "10.0.0.8"
  subnetwork   = data.google_compute_subnetwork.subnet.self_link
}

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

Melakukan reservasi alamat IPv4 eksternal statis

Resource dalam project layanan dapat menggunakan alamat IPv4 eksternal statis regional yang ditentukan dalam project layanan atau project host. Oleh karena itu, resource dalam project layanan yang terpasang dapat menggunakan alamat IPv4 eksternal statis regional yang dicadangkan dalam project host.

Melakukan reservasi alamat IPv6 eksternal statis

Admin Project Layanan dapat mencadangkan alamat IPv6 eksternal statis dalam project layanan. Objek konfigurasi alamat IPv6 dibuat dalam project layanan, sedangkan nilainya berasal dari rentang alamat IPv6 yang tersedia dalam subnet bersama yang dipilih.

Konsol

Anda dapat memesan alamat IPv6 eksternal mandiri dalam project layanan menggunakan Google Cloud Console:

  1. Siapkan VPC bersama.
  2. Di konsol Google Cloud, buka halaman Shared VPC.
    Buka halaman VPC Bersama
  3. Login sebagai Admin VPC Bersama.
  4. Pilih project layanan dari pemilih project.
  5. Untuk membuka halaman IP addresses, pilih VPC network > IP addresses.
  6. Klik Reserve external static IP address.
  7. Pilih nama untuk alamat baru.
  8. Tentukan apakah tingkat layanan jaringan adalah Premium atau Standard. Pemesanan alamat statis IPv6 hanya didukung pada paket Premium.
  9. Di bagian IP version, pilih IPv6.
  10. Tentukan apakah alamat IP ini adalah Regional atau Global.
    • Jika Anda mencadangkan alamat IP statis untuk load balancer global, pilih Global.
    • Jika Anda mencadangkan alamat IP statis untuk instance atau untuk load balancer regional, pilih Regional, lalu pilih region untuk membuat alamat.
  11. Pilih opsi berikut:
    • Networks in this project: pilih opsi ini jika Anda ingin mencadangkan alamat IPv6 eksternal di subnet dari jaringan Virtual Private Cloud (VPC) yang sama tempat Anda mencadangkan alamat IPv6.
    • Networks shared with me: pilih opsi ini jika Anda ingin memesan alamat IPv6 eksternal dalam subnet jaringan VPC Bersama.
  12. Berdasarkan pilihan Anda, pilih yang berikut:

    • Network: jaringan VPC
    • Subnetwork: subnet tempat untuk menetapkan alamat IPv6 regional statis
    • Endpoint type: pilih VM instance atau Network Load Balancer
  13. Opsional: Jika Anda telah memilih VM instance sebagai jenis endpoint, pilih instance VM untuk melampirkan alamat IPv6.

  14. Klik Reserve.

gcloud

  1. Jika belum melakukannya, lakukan autentikasi ke gcloud sebagai Admin Project Layanan. Ganti SERVICE_PROJECT_ADMIN dengan nama Admin Project Layanan:

    gcloud auth login SERVICE_PROJECT_ADMIN
    
  2. Gunakan perintah gcloud compute addresses create:

    gcloud compute addresses create IP_ADDR_NAME \
        --project SERVICE_PROJECT_ID \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --region=REGION \
        --ip-version=IPV6 \
        --endpoint-type=[VM | NETLB]
    

    Ganti kode berikut:

    • IP_ADDR_NAME: nama untuk objek alamat IPv6.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • SUBNET: nama subnet bersama.
    • REGION: region yang berisi subnet bersama.

API

Untuk mencadangkan alamat IPv6 internal statis sebagai Admin Project Layanan, gunakan metode addresses.insert:

POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses
{
  "name": "ADDRESS_NAME",
  "ipVersion": "IPV6",
  "ipv6EndpointType": "VM|LB",
  "networkTier": "PREMIUM",
  "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
  "addressType": "EXTERNAL"
}

Ganti kode berikut:

  • SERVICE_PROJECT_ID: ID project layanan tempat Anda memesan alamat IPv6.
  • REGION: region tempat alamat IPv6 yang dicadangkan dan subnet bersama berada.
  • ADDRESS_NAME: nama untuk alamat IPv6 eksternal statis yang dicadangkan.
  • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
  • SUBNET_NAME: nama subnet bersama.

Membuat instance

Perhatikan hal-hal berikut saat Anda menggunakan VPC Bersama untuk membuat instance:

  • Proses standar untuk membuat instance melibatkan pemilihan zona, jaringan, dan subnet. Subnet yang dipilih dan zona yang dipilih harus berada di region yang sama. Saat Service Project Admin membuat instance dengan menggunakan subnet dari jaringan VPC Bersama, zona yang dipilih untuk instance tersebut harus berada di region yang sama dengan subnet yang dipilih.

    Saat Anda membuat instance dengan alamat IPv4 internal statis yang dicadangkan, subnet dan region sudah dipilih saat alamat IPv4 statis dibuat. Contoh gcloud untuk membuat instance dengan alamat IPv4 internal statis diberikan di bagian ini.

  • Admin Project Layanan hanya dapat membuat instance menggunakan subnet yang telah diberi izin. Untuk menentukan subnet yang tersedia, lihat Mencantumkan subnet yang tersedia.

  • Saat menerima permintaan untuk membuat instance di subnet jaringan VPC Bersama, Google Cloud akan memeriksa apakah akun utama IAM yang membuat permintaan memiliki izin untuk menggunakan subnet bersama tersebut. Jika pemeriksaan gagal, instance tidak dibuat, dan Google Cloud akan menampilkan error izin. Untuk mendapatkan bantuan, hubungi Admin VPC Bersama.

  • Anda dapat membuat instance dual-stack jika membuat instance dalam subnet dual-stack. Subnet stack ganda hanya didukung di jaringan VPC mode kustom. Jenis akses IPv6 subnet menentukan apakah alamat IPv6 yang ditetapkan ke VM adalah alamat IPv6 internal atau eksternal.

Konsol

  1. Siapkan VPC bersama.
  2. Di konsol Google Cloud, buka halaman Shared VPC.

    Buka Shared VPC

  3. Login sebagai Admin VPC Bersama.

  4. Pilih project layanan dari pemilih project.

  5. Untuk membuka halaman Create an instance, pilih Compute Engine > VM instances > Create instance.

  6. Tentukan Nama untuk instance.

  7. Untuk Region, pilih region yang berisi subnetwork bersama.

  8. Klik Networking di bagian Advanced options.

  9. Pada bagian Network interfaces, klik tombol pilihan Networks shared with me.

  10. Di daftar Shared subnetwork, pilih subnet yang diperlukan tempat Anda ingin membuat instance:

    • Untuk alamat IPv4, pilih subnet single-stack.
    • Untuk alamat IPv6, pilih subnet stack ganda dengan jenis akses IPv6 yang diperlukan.
  11. Pilih IP stack type:

    • Untuk alamat IPv4, pilih IPv4 (single-stack).
    • Untuk alamat IPv6, pilih IPv4 and IPv6 (dual-stack).
  12. Tentukan parameter lain yang diperlukan untuk instance.

  13. Klik Create.

gcloud

  • Buat instance dengan alamat IPv4 internal efemeral di subnet bersama dari jaringan VPC Bersama:

    gcloud compute instances create INSTANCE_NAME \
        --project SERVICE_PROJECT_ID \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --zone ZONE
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SUBNET: nama subnet bersama.
    • ZONE: zona di region yang ditentukan. .
  • Buat instance dengan alamat IPv4 internal statis yang dicadangkan di jaringan VPC Bersama:

    1. Cadangkan alamat IPv4 internal statis dalam project layanan dari rentang alamat project host yang tersedia.
    2. Membuat instance

      gcloud compute instances create INSTANCE_NAME \
          --project SERVICE_PROJECT_ID \
          --private-network-ip IP_ADDR_NAME \
          --zone ZONE \
          --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
      

      Ganti kode berikut:

      • INSTANCE_NAME: nama instance.
      • SERVICE_PROJECT_ID: ID project layanan.
      • IP_ADDR_NAME: nama alamat IP statis.
      • ZONE: zona di region yang sama dengan IP_ADDR_NAME.
      • HOST_PROJECT_ID: ID project host VPC Bersama.
      • REGION: region yang berisi subnet bersama.
      • SUBNET: nama subnet bersama yang terkait dengan alamat IPv4 internal statis.
  • Buat instance dengan alamat IPv4 internal efemeral dan alamat IPv6 efemeral:

    gcloud compute instances create INSTANCE_NAME \
        --project SERVICE_PROJECT_ID \
        --stack-type IPV4_IPV6 \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --zone ZONE
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SUBNET: nama subnet bersama.
    • ZONE: zona di region yang ditentukan.
  • Buat instance dengan alamat IPv6 eksternal statis yang dicadangkan:

    gcloud compute instances create INSTANCE_NAME \
        --project SERVICE_PROJECT_ID \
        --stack-type IPV4_IPV6 \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --ipv6-address IPV6_ADDRESS \
        --ipv6-prefix-length=96 \
        --ipv6-network-tier PREMIUM \
        --zone ZONE
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SUBNET: nama subnet bersama.
    • IPV6_ADDRESS: alamat IPv6 yang akan ditetapkan ke VM.
    • ZONE: zona di region yang ditentukan.

API

  • Untuk membuat instance dengan alamat IPv4 internal efemeral, tentukan subnetnya saja:

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
        }
      ],
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "SOURCE_IMAGE"
          }
        }
      ]
    }
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama untuk instance.
    • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
    • MACHINE_TYPE: jenis mesin untuk instance.
    • REGION: region yang berisi subnet bersama.
    • SERVICE_PROJECT_ID: ID project layanan.
    • SOURCE_IMAGE: image untuk instance.
    • SUBNET: nama subnet bersama.
    • ZONE: zona di region yang ditentukan.

    Untuk informasi selengkapnya, lihat metode instances.insert.

  • Untuk membuat instance dengan alamat IPv4 internal yang dicadangkan, tentukan subnet dan nama alamat IPv4 yang dicadangkan:

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "networkIP": "projects/SERVICE_PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME"
        }
      ],
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "SOURCE_IMAGE"
          }
        }
      ]
    }
    

    Ganti kode berikut:

    • ADDRESS_NAME: nama alamat IPv4 internal yang dicadangkan.
    • INSTANCE_NAME: nama untuk instance.
    • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
    • MACHINE_TYPE: jenis mesin untuk instance.
    • REGION: region yang berisi subnet bersama.
    • SERVICE_PROJECT_ID: ID project layanan.
    • SOURCE_IMAGE: image untuk instance.
    • SUBNET: nama subnet bersama.
    • ZONE: zona di region yang ditentukan.

    Untuk informasi selengkapnya, lihat metode instances.insert.

  • Untuk membuat instance dengan alamat IPv4 internal efemeral dan alamat IPv6 efemeral, tentukan subnet dan jenis tumpukan:

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "stackType": "IPv4_IPv6"
        }
      ],
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "SOURCE_IMAGE"
          }
        }
      ]
    }
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama untuk instance.
    • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
    • MACHINE_TYPE: jenis mesin untuk instance.
    • REGION: region yang berisi subnet bersama.
    • SERVICE_PROJECT_ID: ID project layanan.
    • SOURCE_IMAGE: image untuk instance.
    • SUBNET: nama subnet bersama.
    • ZONE: zona di region yang ditentukan.

    Untuk informasi selengkapnya, lihat metode instances.insert.

Terraform

Anda dapat menggunakan blok data Terraform untuk menentukan informasi subnet host. Kemudian, gunakan resource Terraform untuk membuat instance VM dalam project layanan.

Tentukan subnet host:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

Buat instance VM dalam project layanan dengan alamat IPv4 efemeral dari subnet bersama project host:

resource "google_compute_instance" "ephemeral_ip" {
  project      = var.service_project
  zone         = "us-central1-a"
  name         = "my-vm"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = data.google_compute_subnetwork.subnet.self_link
  }
}

Buat instance VM di project layanan dengan alamat IPv4 statis yang dicadangkan dari subnet bersama project host:

resource "google_compute_instance" "reserved_ip" {
  project      = var.service_project
  zone         = "us-central1-a"
  name         = "reserved-ip-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = data.google_compute_subnetwork.subnet.self_link
    network_ip = google_compute_address.internal.address
  }
}

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

Membuat template instance

Perhatikan hal-hal berikut saat Anda menggunakan VPC Bersama untuk membuat template instance:

  • Proses untuk membuat template instance melibatkan pemilihan jaringan dan subnet.

    • Template yang dibuat untuk digunakan dalam jaringan VPC Bersama mode kustom harus menentukan jaringan dan subnet.

    • Template yang dibuat untuk digunakan dalam mode otomatis Jaringan VPC bersama dapat secara opsional menunda pemilihan subnet. Dalam kasus ini, subnet secara otomatis dipilih di region yang sama dengan grup instance terkelola yang menggunakan template tersebut. (Jaringan mode otomatis memiliki subnet di setiap region menurut definisi.)

  • Saat akun utama IAM membuat template instance, Google Cloud tidak akan melakukan pemeriksaan izin untuk mengetahui apakah akun utama dapat menggunakan subnet yang ditentukan. Pemeriksaan izin ini selalu ditunda saat grup instance terkelola yang menggunakan template diminta.

  • Anda dapat membuat template instance dual-stack jika membuat template tersebut dalam subnet dual-stack. Subnet stack ganda hanya didukung di jaringan VPC mode kustom. Jenis akses IPv6 subnet menentukan apakah alamat IPv6 yang ditetapkan ke VM adalah alamat IPv6 internal atau eksternal.

Konsol

  1. Siapkan VPC bersama.
  2. Di konsol Google Cloud, buka halaman Shared VPC.
    Buka halaman VPC Bersama
  3. Login sebagai Admin VPC Bersama.
  4. Pilih project layanan dari pemilih project.
  5. Untuk membuka halaman Create an instance template, pilih Compute Engine > Instance templates > Create instance templates.
  6. Tentukan Name untuk template instance.
  7. Di bagian Advanced options, klik Networking.
  8. Di bagian Network interfaces, klik tombol pilihan Networks shared with me.
  9. Di daftar Shared subnetwork, pilih subnet yang diperlukan tempat Anda ingin membuat template instance:
    • Untuk alamat IPv4, pilih subnet single-stack.
    • Untuk alamat IPv6, pilih subnet stack ganda dengan jenis akses IPv6 yang diperlukan.
  10. Pilih IP stack type:
    • Untuk alamat IPv4, pilih IPv4 (single-stack).
    • Untuk alamat IPv6, pilih IPv4 and IPv6 (dual-stack).
  11. Tentukan parameter lain yang diperlukan untuk template instance.
  12. Klik Create.

gcloud

  • Buat template instance khusus IPv4 untuk digunakan di subnet apa pun yang dibuat secara otomatis dari jaringan VPC Bersama mode otomatis:

    gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --network projects/HOST_PROJECT_ID/global/networks/NETWORK
    

    Ganti kode berikut:

    • TEMPLATE_NAME: nama template.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • NETWORK: nama jaringan VPC bersama.
  • Untuk membuat template instance khusus IPv4 untuk subnet yang dibuat secara manual di jaringan VPC Bersama (baik mode otomatis maupun kustom):

    gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --region REGION \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
    

    Ganti kode berikut:

    • TEMPLATE_NAME: nama template.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SUBNET: nama subnet bersama.
  • Buat template instance dual-stack yang menggunakan subnet dalam jaringan VPC Bersama mode kustom:

    gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --stack-type IPV4_IPV6 \
        --region REGION \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
    

    Ganti kode berikut:

    • TEMPLATE_NAME: nama template.
    • SERVICE_PROJECT_ID: ID project layanan.
    • HOST_PROJECT_ID: ID project host VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SUBNET: nama subnet bersama.

API

  • Untuk membuat template instance khusus IPv4 yang menggunakan subnet yang dibuat secara otomatis dari jaringan VPC Bersama mode otomatis, tentukan jaringan VPC:

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
    {
    "properties": {
      "networkInterfaces": [
        {
          "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK"
        }
      ]
    ...
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
    • SERVICE_PROJECT_ID: ID project layanan.
    • NETWORK: nama jaringan VPC bersama.

    Untuk informasi selengkapnya, lihat metode instanceTemplates.insert.

  • Untuk membuat template instance khusus IPv4 yang menggunakan subnet yang dibuat secara manual di jaringan VPC Bersama (mode otomatis atau kustom), tentukan subnetnya:

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
    {
    "properties": {
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
        }
      ]
    ...
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SERVICE_PROJECT_ID: ID project layanan.
    • SUBNET_NAME: nama subnet bersama.

    Untuk informasi selengkapnya, lihat metode instanceTemplates.insert.

  • Untuk membuat template instance dual-stack yang menggunakan subnet dalam jaringan VPC Bersama mode kustom, tentukan subnet dan jenis tumpukan:

    POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
    {
    "properties": {
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "stackType": "IPV4_IPV6"
        }
      ]
    ...
    }
    

    Ganti kode berikut:

    • HOST_PROJECT_ID: ID project yang berisi jaringan VPC Bersama.
    • REGION: region yang berisi subnet bersama.
    • SERVICE_PROJECT_ID: ID project layanan.
    • SUBNET_NAME: nama subnet bersama.

    Untuk informasi selengkapnya, lihat metode instanceTemplates.insert.

Terraform

Anda dapat menggunakan blok data Terraform untuk menentukan informasi subnet host. Kemudian, gunakan resource Terraform untuk membuat template instance VM. Alamat IPv4 untuk VM berasal dari subnet bersama project host.

Subnet harus ada di region yang sama tempat instance VM akan dibuat.

Tentukan subnet host:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

Buat template instance VM dalam project layanan:

resource "google_compute_instance_template" "default" {
  project      = var.service_project
  name         = "appserver-template"
  description  = "This template is used to create app server instances."
  machine_type = "n1-standard-1"
  disk {
    source_image = "debian-cloud/debian-9"
  }
  network_interface {
    subnetwork = data.google_compute_subnetwork.subnet.self_link
  }
}

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

Membuat grup instance terkelola

Perhatikan hal-hal berikut saat membuat grup instance terkelola menggunakan VPC Bersama:

  • Grup instance terkelola yang digunakan dengan VPC Bersama memerlukan menjadikan akun layanan Google API sebagai Admin Project Layanan karena tugas seperti pembuatan instance otomatis menggunakan penskalaan otomatis dilakukan oleh akun layanan tersebut.

  • Proses standar untuk membuat grup instance terkelola meliputi pemilihan zona atau region, bergantung pada jenis grup, dan template instance. (Detail jaringan dan subnet dikaitkan dengan template instance.) Template instance yang memenuhi syarat dibatasi untuk template instance yang mereferensikan subnet di region yang sama dengan yang digunakan oleh grup instance terkelola.

  • Admin Project Layanan hanya dapat membuat grup instance terkelola yang instance anggotanya menggunakan subnet yang telah diberi izin. Karena detail jaringan dan subnet terikat dengan template instance, Admin Project Layanan hanya dapat menggunakan template yang mereferensikan subnet yang boleh mereka gunakan.

  • Saat menerima permintaan untuk membuat grup instance terkelola, Google Cloud akan memeriksa apakah akun utama IAM yang membuat permintaan tersebut memiliki izin untuk menggunakan subnet (di region yang sama dengan grup) yang ditentukan di template instance. Jika pemeriksaan gagal, grup instance terkelola tidak akan dibuat, dan Google Cloud akan menampilkan error: Required 'compute.subnetworks.use' permission for 'projects/SUBNET_NAME.

    Cantumkan subnet yang tersedia untuk menentukan subnet yang dapat digunakan, dan hubungi Admin VPC Bersama jika akun layanan memerlukan akses tambahan. Untuk informasi selengkapnya, lihat Akun Layanan sebagai Admin Project Layanan.

Untuk mengetahui informasi selengkapnya, lihat Membuat Grup Instance Terkelola dalam dokumentasi Compute Engine.

Membuat load balancer HTTP(S)

Ada banyak cara untuk mengonfigurasi Load Balancer Aplikasi eksternal dalam jaringan VPC Bersama. Terlepas dari jenis deployment, semua komponen load balancer harus berada di organisasi yang sama dan jaringan VPC Bersama yang sama.

Untuk mempelajari lebih lanjut arsitektur VPC Bersama yang didukung, baca artikel berikut:

Membuat Load Balancer Jaringan passthrough internal

Contoh berikut menggambarkan hal yang harus Anda pertimbangkan saat membuat Load Balancer Jaringan passthrough internal di jaringan VPC Bersama. Admin Project Layanan dapat membuat Load Balancer Jaringan internal yang menggunakan subnet (dalam project host) yang aksesnya mereka miliki. Aturan penerusan internal load balancer ditentukan dalam project layanan, tetapi referensi subnet-nya mengarah ke subnet dalam jaringan VPC Bersama dari project host.

Sebelum Anda membuat Load Balancer Jaringan passthrough internal di lingkungan VPC Bersama, lihat Arsitektur VPC Bersama.

Konsol

  1. Buka halaman Load balancing di Konsol Google Cloud.
    Buka halaman Load balancing

  2. Buat load balancer TCP/UDP internal dan lakukan penyesuaian berikut: Di bagian Configure frontend services, pilih subnet VPC Bersama yang Anda perlukan dari bagian Networks shared by other project dari menu Subnet.

  3. Selesaikan pembuatan load balancer.

gcloud

Saat Anda membuat aturan penerusan internal, tentukan subnet di project host dengan flag --subnet:

gcloud compute forwarding-rules create FR_NAME \
    --project SERVICE_PROJECT_ID \
    --load-balancing-scheme internal \
    --region REGION \
    --ip-protocol IP_PROTOCOL \
    --ports PORT,PORT,... \
    --backend-service BACKEND_SERVICE_NAME \
    --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
    --address INTERNAL_IP

Ganti kode berikut:

  • FR_NAME: nama aturan penerusan.
  • SERVICE_PROJECT_ID: ID project layanan.
  • REGION: region yang berisi subnet bersama.
  • IP_PROTOCOL: baik TCP atau UDP, cocok dengan protokol layanan backend load balancer.
  • PORT: port numerik atau daftar port untuk load balancer.
  • BACKEND_SERVICE_NAME: nama layanan backend (yang sudah dibuat sebagai bagian dari prosedur umum untuk membuat Load Balancer Jaringan internal passthrough).
  • HOST_PROJECT_ID: ID project host VPC Bersama.
  • SUBNET: nama subnet bersama.
  • INTERNAL_IP: alamat IP internal di subnet bersama (jika tidak ditentukan, alamat yang tersedia akan dipilih).

Untuk opsi lainnya, lihat perintah gcloud compute forwarding-rules create.

API

Buat aturan penerusan internal dan tentukan subnet di project host.

POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/forwardingRules
{
  "name": "FR_NAME",
  "IPAddress": "IP_ADDRESS",
  "IPProtocol": "PROTOCOL",
  "ports": [ "PORT", ... ],
  "loadBalancingScheme": "INTERNAL",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET",
  "network": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME",
  "backendService": "https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/us-west1/backendServices/BE_NAME",
  "networkTier": "PREMIUM"
}

Ganti kode berikut:

  • BE_NAME: nama layanan backend (yang sudah dibuat sebagai bagian dari prosedur umum untuk membuat Load Balancer Jaringan internal).
  • FR_NAME: nama untuk aturan penerusan.
  • HOST_PROJECT_ID: ID project host VPC Bersama.
  • IP_ADDRESS: alamat IP internal di subnet bersama.
  • IP_PROTOCOL: TCP atau UDP, cocok dengan protokol layanan backend load balancer.
  • PORT: port numerik atau daftar port untuk load balancer.
  • REGION: region yang berisi subnet bersama.
  • SERVICE_PROJECT_ID: ID project layanan.
  • SUBNET: nama subnet bersama.

Untuk informasi selengkapnya, lihat metode forwardingRules.insert.

Terraform

Anda dapat menggunakan blok data Terraform untuk menentukan subnet host dan jaringan host. Kemudian, gunakan resource Terraform untuk membuat aturan penerusan.

Tentukan jaringan host:

data "google_compute_network" "network" {
  name    = "my-network-123"
  project = var.project
}

Tentukan subnet host:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

Pada project layanan, buat aturan penerusan di jaringan dan subnet project host:

resource "google_compute_forwarding_rule" "default" {
  project               = var.service_project
  name                  = "l4-ilb-forwarding-rule"
  backend_service       = google_compute_region_backend_service.default.id
  region                = "europe-west1"
  ip_protocol           = "TCP"
  load_balancing_scheme = "INTERNAL"
  all_ports             = true
  allow_global_access   = true
  network               = data.google_compute_network.network.self_link
  subnetwork            = data.google_compute_subnetwork.subnet.self_link
}

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

Langkah selanjutnya