Halaman ini menjelaskan cara menyiapkan kumpulan pribadi untuk mengakses resource eksternal melalui IP eksternal statis.
Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:
Sebelum memulai
-
Enable the Cloud Build, Compute Engine, and Service Networking APIs.
Untuk mendapatkan izin yang diperlukan guna menyiapkan koneksi pribadi, minta administrator untuk memberi Anda peran IAM Compute Engine Network Admin (
roles/compute.networkAdmin
) di project Cloud tempat jaringan VPC berada. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.Untuk menggunakan perintah
gcloud
di halaman ini, instal Google Cloud CLI.
Membuat jaringan VPC
Konsol
Untuk membuat jaringan VPC menggunakan konsol Google Cloud, selesaikan langkah-langkah berikut:
Buka halaman VPC networks di Konsol Google Cloud.
Klik Create VPC network untuk membuat jaringan baru.
Anda akan melihat halaman Create a VPC network.
Masukkan Name untuk jaringan Anda.
Di bagian Subnet creation mode, pilih Automatic.
Jika Anda ingin menyesuaikan kolom lainnya lebih lanjut, lihat Membuat dan mengelola jaringan VPC. Jika tidak, biarkan semua kolom apa adanya.
Klik Create untuk membuat jaringan VPC.
Setelah mengklik Create, Anda akan melihat jaringan VPC baru di halaman VPC networks.
gcloud
Untuk membuat jaringan VPC menggunakan alat command line gcloud
,
masukkan perintah berikut di terminal Anda dengan NETWORK_NAME
adalah nama jaringan VPC Anda:
gcloud compute networks create NETWORK_NAME \
--subnet-mode=auto
Setelah mengklik Create, Anda akan melihat jaringan VPC baru di halaman VPC networks.
Untuk mempelajari lebih lanjut cara membuat dan mengelola jaringan VPC, lihat Membuat dan mengelola jaringan VPC.
Membuat koneksi pribadi
Konsol
Untuk membuat koneksi pribadi antara jaringan VPC Anda dan jaringan produsen layanan, selesaikan langkah-langkah berikut:
Buka halaman VPC networks di Konsol Google Cloud.
Klik nama jaringan Anda.
Anda akan melihat halaman Detail jaringan VPC.
Klik tab Private Service Connection.
Pilih tab Rentang IP yang dialokasikan untuk layanan.
Klik Alokasikan rentang IP.
Anda akan melihat kotak pop-up Alokasikan rentang IP internal.
Masukkan Nama untuk rentang IP Anda.
Di bagian Rentang IP, pilih Otomatis.
Di kolom Prefix length, masukkan panjang awalan untuk jaringan Anda.
Klik Allocate untuk mengalokasikan rentang IP Anda.
Pilih tab Koneksi Pribadi ke Layanan.
Klik Buat Koneksi.
Anda akan melihat pop-up Buat koneksi pribadi.
Di bagian Alokasi yang ditetapkan, pilih rentang IP Anda.
Klik Connect.
Sekarang Anda akan melihat koneksi di tabel pada tab Private Connections to Services.
Klik Aktifkan (Ekspor rute kustom) untuk memastikan bahwa rute untuk VPC diterapkan ke jaringan tempat instance kumpulan pribadi Anda berjalan.
Anda telah selesai mengonfigurasi jaringan.
gcloud
Untuk membuat koneksi pribadi antara jaringan VPC Anda dan jaringan produsen layanan, selesaikan langkah-langkah berikut:
Masukkan perintah berikut di terminal untuk mengalokasikan rentang IP untuk layanan Anda:
gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --prefix-length=PREFIX_LENGTH \ --network=VPC_NETWORK \ --project=PROJECT_ID
Dengan keterangan:
- RESERVED_RANGE_NAME adalah nama rentang yang dialokasikan.
Contoh,
my-allocated-range
. - PREFIX_LENGTH adalah panjang awalan untuk jaringan Anda. Panjang awalan Anda harus
/24
atau lebih rendah, seperti/22
,/21
, dll. - VPC_NETWORK adalah nama jaringan VPC Anda, seperti
my-vpc-network
. - PROJECT_ID adalah ID project yang berisi jaringan VPC Anda.
- RESERVED_RANGE_NAME adalah nama rentang yang dialokasikan.
Contoh,
Masukkan perintah berikut di terminal untuk membuat koneksi pribadi:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Dengan keterangan:
- RESERVED_RANGE_NAME adalah nama rentang yang dialokasikan yang Anda buat di langkah sebelumnya.
- VPC_NETWORK adalah nama jaringan VPC Anda, seperti
my-vpc-network
. - PROJECT_ID adalah ID project yang berisi jaringan VPC Anda.
Masukkan perintah berikut di terminal untuk memastikan bahwa rute untuk VPC diterapkan ke jaringan tempat instance kumpulan pribadi Anda berjalan:
gcloud compute networks peerings update servicenetworking-googleapis-com \ --export-custom-routes \ --network=VPC_NETWORK \ --project=PROJECT_ID
Dengan keterangan:
- VPC_NETWORK adalah nama jaringan VPC Anda, seperti
my-vpc-network
. - PROJECT_ID adalah ID project yang berisi jaringan VPC Anda.
- VPC_NETWORK adalah nama jaringan VPC Anda, seperti
Anda telah selesai mengonfigurasi jaringan.
Untuk mempelajari lebih lanjut cara mengonfigurasi jaringan, lihat Menyiapkan koneksi pribadi antara jaringan VPC dan jaringan produsen layanan.
Membuat kumpulan pribadi
Konsol
Untuk membuat kumpulan pribadi menggunakan konsol Google Cloud, selesaikan langkah-langkah berikut:
Buka halaman Worker Pool di konsol Google Cloud:
Pilih project tempat Anda ingin membuat kumpulan pribadi.
Di halaman Worker pool, klik Create.
Anda akan melihat panel Create private pool.
Di panel samping Create private pool, masukkan informasi berikut:
Masukkan Nama untuk kumpulan pribadi Anda.
Pilih Region dari menu drop-down.
Di bagian Network, masukkan informasi berikut:
- Project: Masukkan ID atau nomor project Anda.
- Network: Masukkan nama jaringan VPC Anda.
- (Opsional) Hapus centang pada kotak Tetapkan IP eksternal untuk konfigurasi jaringan yang paling dibatasi.
Anda kini telah membuat kumpulan pribadi.
gcloud
Untuk membuat kumpulan pribadi menggunakan alat command line gcloud
, masukkan perintah berikut
di terminal:
gcloud builds worker-pools create PRIVATEPOOL_ID \
--project=PRIVATEPOOL_PROJECT_ID \
--region=REGION \
--peered-network=PEERED_NETWORK \
--no-public-egress
Dengan keterangan:
- PRIVATEPOOL_ID adalah ID unik untuk kumpulan pribadi Anda.
- PRIVATEPOOL_PROJECT_ID adalah ID project Google Cloud tempat Anda ingin membuat kumpulan pribadi.
- REGION adalah salah satu wilayah yang didukung.
- PEERED_NETWORK adalah URL resource jaringan
--no-public-egress
: Jika tanda ini ditetapkan, kumpulan pribadi akan dibuat tanpa alamat IP eksternal.
Anda kini telah membuat kumpulan pribadi.
Untuk mempelajari lebih lanjut cara membuat dan mengelola pool pribadi, lihat Membuat dan mengelola pool pribadi.
Mengakses resource eksternal di jaringan pribadi
Secara default, alamat IP eksternal yang terkait dengan kumpulan pribadi Cloud Build tidak bersifat statis atau dapat dikonfigurasi. IP ini ditetapkan oleh Google Cloud. Jika ingin menyiapkan kumpulan pribadi untuk mengakses resource eksternal dari jaringan pribadi dengan IP eksternal statis, Anda harus menyiapkan virtual machine (VM) di project untuk bertindak sebagai gateway NAT mandiri guna meneruskan permintaan proxy ke internet publik. Setelah itu, Anda harus menyiapkan rute kustom untuk meneruskan permintaan ini ke VM untuk memastikan rute ditukar dengan project jaringan layanan.
Bagian ini menguraikan cara menyiapkan kumpulan pribadi untuk mengakses resource eksternal melalui IP eksternal statis dengan menyelesaikan langkah-langkah berikut:
Buat skrip startup untuk mengonfigurasi VM agar mem-proxy traffic apa pun yang dirutekan ke VM, dan menyamarkan traffic tersebut sebagai berasal dari alamat IP-nya:
#! /bin/bash set -e sysctl -w net.ipv4.ip_forward=1 IFACE=$(ip -brief link | tail -1 | awk {'print $1'}) iptables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE
Siapkan VM di VPC yang sama dengan kumpulan pribadi Anda dengan aturan untuk mengizinkan permintaan di-proxy melalui VPC:
gcloud compute instances create VM_NAME \ --image-project=ubuntu-os-cloud --image-family=ubuntu-2204-lts \ --network=NETWORK_NAME \ --private-network-ip=INTERNAL_IP --can-ip-forward \ --zone=ZONE \ --subnet=SUBNETWORK \ --tags=NAT_TAG \ --metadata-from-file=startup-script=STARTUP_SCRIPT
Dengan keterangan:
- VM_NAME adalah nama yang ingin Anda berikan untuk VM.
- NETWORK_NAME adalah nama jaringan yang Anda buat di bagian sebelumnya.
- INTERNAL_IP adalah alamat IP internal yang valid dalam
rentang subnetwork region VM Anda. Contoh,
10.128.0.2
. - ZONE adalah zona yang terkait dengan jaringan Anda seperti
us-central1-a
. - (Opsional) SUBNETWORK adalah nama subnetwork Anda. Nama
subnetwork Anda dapat ditemukan di REST yang setara untuk subnet Anda dalam format berikut:
projects/project-id/regions/region/subnetworks/subnetwork-name
. Jika Anda memilih Otomatis di bagian Mode koneksi subnet saat membuat jaringan VPC, Anda tidak perlu menentukan kolom ini. - NAT_TAG adalah nama tag gateway NAT yang memungkinkan Anda merutekan permintaan secara kondisional, berdasarkan apakah VM tersebut memiliki tag atau tidak. Anda dapat menentukan nama apa pun untuk tag.
- STARTUP_SCRIPT adalah nama skrip
startup yang Anda buat di langkah sebelumnya. Contoh,
startup-script-example.sh
. Dalam contoh ini, flag--metadata-from-file
digunakan untuk meneruskan konten skrip startup yang Anda tentukan ke kunci yang disebutstartup-script
.
Setelah menjalankan perintah ini, Anda akan melihat output yang berisi nilai IP eksternal. Catat nilai IP eksternal. Semua traffic dari kumpulan pribadi ke resource eksternal Anda berasal dari alamat ini. Anda dapat memilih untuk menggunakan alamat ini untuk konfigurasi lebih lanjut, seperti mengonfigurasi aturan firewall di jaringan eksternal.
Siapkan rute untuk mengarahkan semua permintaan ke resource eksternal agar membuka instance yang dibuat pada langkah sebelumnya, sehingga permintaan Anda dapat diteruskan ke instance kumpulan pribadi:
gcloud compute routes create PRIVATE_POOL_ROUTE_NAME \ --destination-range=DESTINATION_RANGE \ --next-hop-address=INTERNAL_IP \ --network=NETWORK_NAME \ --priority=POOL_ROUTE_PRIORITY
Dengan keterangan:
- PRIVATE_POOL_ROUTE_NAME adalah nama yang ingin Anda berikan ke rute.
- DESTINATION_RANGE adalah rentang alamat CIDR yang valid
yang berisi tujuan yang ingin Anda tuju. Misalnya, instance GitHub Enterprise Edition. Contoh,
8.8.8.0/24
. - INTERNAL_IP adalah nilai IP internal yang diperoleh dari langkah sebelumnya. Contoh,
10.128.0.2
. - NETWORK_NAME adalah nama jaringan yang Anda buat di bagian sebelumnya.
- POOL_ROUTE_PRIORITY adalah nomor prioritas yang ingin Anda tentukan untuk rute.
Perintah ini memastikan bahwa traffic dari build dalam instance kumpulan pribadi dirutekan ke VM proxy yang Anda buat, bukan dirutekan langsung ke internet publik.
Siapkan rute untuk meneruskan permintaan dari proxy dari instance yang diberi tag ke rentang IP tujuan eksternal. Perintah berikut membuat rute untuk meneruskan permintaan ke internet publik yang terkait dengan instance kumpulan pribadi Anda.
gcloud compute routes create NAT_EGRESS_ROUTE_NAME \ --destination-range=DESTINATION_RANGE \ --next-hop-gateway=default-internet-gateway \ --network=NETWORK_NAME \ --priority=NAT_ROUTE_PRIORITY \ --tags=NAT_TAG
Dengan keterangan:
- NAT_EGRESS_ROUTE_NAME adalah nama yang ingin Anda berikan ke rute gateway NAT.
- DESTINATION_RANGE adalah alamat tujuan yang ingin Anda tuju. Misalnya, instance GitHub Enterprise Edition. Contoh,
8.8.8.0/24
. - NETWORK_NAME adalah nama jaringan yang Anda buat di bagian sebelumnya.
- NAT_TAG adalah nama tag gateway NAT yang memungkinkan Anda merutekan permintaan secara kondisional, berdasarkan apakah VM tersebut memiliki tag atau tidak. Anda dapat menentukan nama apa pun untuk tag.
NAT_ROUTE_PRIORITY adalah nomor prioritas yang ingin Anda tentukan untuk rute.
Perintah ini memastikan bahwa traffic apa pun dari VM proxy dapat diarahkan ke internet publik.
Tambahkan aturan firewall untuk mengizinkan traffic dari kumpulan pribadi ke VM gateway NAT:
gcloud compute firewall-rules create RULE_NAME \ --direction=INGRESS --priority=FIREWALL_PRIORITY --action=ALLOW --rules=all \ --network=NETWORK_NAME \ --source-ranges=RESERVED_RANGE \ --target-tags=NAT_TAG
Dengan keterangan:
- RULE_NAME adalah nama yang ingin Anda berikan ke aturan firewall.
- FIREWALL_PRIORITY adalah nomor prioritas yang ingin Anda tentukan untuk aturan firewall.
- NETWORK_NAME adalah nama jaringan yang Anda buat di bagian sebelumnya.
- RESERVED_RANGE adalah rentang CIDR yang Anda alokasikan saat mengonfigurasi jaringan VPC.
- NAT_TAG adalah nama tag gateway NAT yang memungkinkan Anda merutekan permintaan secara kondisional, berdasarkan apakah VM tersebut memiliki tag atau tidak. Anda dapat menentukan nama apa pun untuk tag.
Sekarang Anda dapat mengakses resource eksternal dari alamat IP statis gateway NAT mandiri di VPC.
Langkah selanjutnya
- Pelajari kumpulan pribadi lebih lanjut.
- Pelajari cara menyiapkan lingkungan untuk membuat kumpulan pribadi.
- Pelajari cara mengakses resource di JFrog Artifactory pribadi dengan kumpulan pribadi.