1. Pengantar
Daftar alamat IP bernama Google Cloud Armor memungkinkan Anda mereferensikan daftar alamat IP dan rentang IP yang dikelola oleh penyedia pihak ketiga. Anda dapat mengonfigurasi daftar alamat IP bernama dalam kebijakan keamanan. Anda tidak perlu menentukan setiap alamat IP atau rentang IP secara manual satu per satu.
Yang akan Anda pelajari
- Manfaat daftar alamat IP bernama Cloud Armor
- Buat kebijakan keamanan Cloud Armor
- Men-deploy daftar alamat IP bernama Cloud Armor
- Buat Load Balancer Global
- Buat grup Instance Terkelola dengan aplikasi pengujian contoh
Yang Anda butuhkan
- Pengalaman dengan Kebijakan Keamanan dan Load Balancer
2. Mengizinkan traffic hanya dari penyedia pihak ketiga yang diizinkan
Kasus penggunaan umum adalah membuat daftar yang diizinkan yang berisi alamat IP partner pihak ketiga yang diizinkan untuk memastikan bahwa hanya traffic yang berasal dari partner ini yang dapat mengakses load balancer dan backend.
Misalnya, penyedia CDN perlu menarik konten dari server asal secara berkala untuk mendistribusikannya ke cache mereka sendiri. Kemitraan dengan Google memberikan koneksi langsung antara penyedia CDN dan edge jaringan Google. Pengguna CDN di Google Cloud dapat menggunakan koneksi langsung ini selama penarikan origin. Dalam hal ini, pengguna CDN mungkin ingin membuat kebijakan keamanan yang hanya mengizinkan traffic yang berasal dari penyedia CDN tertentu tersebut.
Dalam contoh ini, penyedia CDN memublikasikan daftar alamat IP-nya 23.235.32.0/20, 43.249.72.0/22, ⋯,. Pengguna CDN mengonfigurasi aturan keamanan yang hanya mengizinkan traffic yang berasal dari alamat IP ini. Akibatnya, dua titik akses penyedia CDN diizinkan (23.235.32.10 dan 43.249.72.10) dan traffic-nya diizinkan. Traffic dari titik akses yang tidak sah 198.51.100.1 diblokir.

Alamat IP bernama Google Cloud Armor
3. Menyederhanakan konfigurasi dan pengelolaan dengan menggunakan aturan yang telah dikonfigurasi sebelumnya
Penyedia CDN sering menggunakan alamat IP yang sudah dikenal dan perlu digunakan oleh banyak pengguna CDN. Daftar ini berubah seiring waktu, karena penyedia menambahkan, menghapus, dan memperbarui alamat IP.
Penggunaan daftar alamat IP bernama dalam aturan kebijakan keamanan menyederhanakan proses konfigurasi dan pengelolaan alamat IP karena Google Cloud Armor secara otomatis menyinkronkan informasi dari penyedia CDN setiap hari. Hal ini menghilangkan proses yang memakan waktu dan rawan kesalahan dalam mengelola daftar alamat IP besar secara manual.
Penyedia daftar alamat IP
Penyedia daftar alamat IP dalam tabel berikut didukung untuk Google Cloud Armor. Berikut adalah penyedia CDN yang telah berpartner dengan Google. Daftar alamat IP mereka dipublikasikan melalui URL publik masing-masing.
Partner ini menyediakan daftar alamat IPv4 dan alamat IPv6 yang terpisah. Google Cloud Armor menggunakan URL yang diberikan untuk mengambil daftar, lalu mengonversi daftar tersebut menjadi daftar alamat IP bernama. Anda merujuk ke daftar berdasarkan nama dalam tabel.

Atau, gunakan Cloud Shell untuk mendapatkan daftar alamat IP bernama yang telah dikonfigurasi sebelumnya
Login ke cloudshell dan tetapkan projectid Anda
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
Dari Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
Perintah ini menunjukkan:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
4. Topologi codelab

5. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Cloud Console lalu buat project baru atau gunakan kembali project yang sudah ada. (Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.)



Ingat project ID, nama unik di semua project Google Cloud (maaf, nama di atas telah digunakan dan tidak akan berfungsi untuk Anda!) Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan resource Google Cloud.
Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Pastikan untuk mengikuti petunjuk yang ada di bagian "Membersihkan" yang memberi tahu Anda cara menonaktifkan resource sehingga tidak menimbulkan penagihan di luar tutorial ini. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai$300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari Konsol GCP, klik ikon Cloud Shell di toolbar kanan atas:

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda di lab ini dapat dilakukan hanya dengan browser.
6. Buat jaringan VPC
Jaringan VPC
Dari Cloud Shell
gcloud compute networks create
named-list-vpc
--subnet-mode custom
Buat Subnet
Dari Cloud Shell
gcloud compute networks subnets create named-ip-subnet \
--network
named-list-vpc
--range 10.0.0.0/24 --region us-east1
Buat Aturan Firewall
Dari Cloud Shell
gcloud compute --project=$projectid firewall-rules create default-allow-http --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0
gcloud compute --project=$projectid firewall-rules create default-allow-health-check --direction=INGRESS --priority=1000 --network=named-list-vpc --action=ALLOW --rules=tcp --source-ranges=130.211.0.0/22,35.191.0.0/16
Membuat load balancer
Buat template instance
Dari Cloud Shell
gcloud beta compute --project=$projectid instance-templates create us-east1-template --machine-type=e2-medium --subnet=projects/$projectid/regions/us-east1/subnetworks/named-ip-subnet --network-tier=PREMIUM --metadata=startup-script-url=gs://cloud-training/gcpnet/httplb/startup.sh --maintenance-policy=MIGRATE --image=debian-10-buster-v20210217 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=us-east1-template --no-shielded-secure-boot --no-shielded-vtpm --no-shielded-integrity-monitoring --reservation-affinity=any
Buat Grup Instance Terkelola
Dari Cloud Shell
gcloud compute --project=$projectid instance-groups managed create us-east1-mig --base-instance-name=us-east1-mig --template=us-east1-template --size=1 --zone=us-east1-b
7. Memverifikasi backend
Verifikasi bahwa instance VM sedang dibuat di kedua region, lalu akses situs HTTP keduanya.
- Masih di Compute Engine, klik VM instances di menu kiri
- Perhatikan instance yang diawali dengan us-east1-mig. Instance ini adalah bagian dari grup instance terkelola.
- Klik IP Eksternal instance us-east1-mig. Anda akan melihat Client IP (alamat IP Anda), Hostname (diawali dengan us-east1-mig)
Mengonfigurasi Load Balancer HTTP
- Di Konsol Cloud, klik Navigation menu (
) > klik Network Services > Load balancing, lalu klik Create load balancer. - Di bagian HTTP(S) Load Balancing, klik Start configuration.

- Pilih From Internet to my VMs, lalu klik Continue.
- Tetapkan Nama ke http-lb.
Mengonfigurasi backend
Layanan backend mengarahkan traffic masuk ke satu atau beberapa backend yang terpasang. Setiap backend terdiri dari grup instance dan metadata kapasitas penyaluran tambahan.
- Klik Konfigurasi backend.
- Untuk Backend services & backend buckets, klik Create or select backend services & backend buckets, lalu klik Backend services, dan klik Create a backend service.
- Jenis backend adalah Grup Instance
- Tetapkan nilai berikut dan biarkan nilai default untuk properti yang lain:

- Klik Selesai.
- Untuk Health Check, pilih Buat health check.

- Tetapkan nilai berikut dan biarkan nilai default untuk properti yang lain:

- Tetapkan nilai berikut dan biarkan nilai default untuk properti yang lain:
- Klik Simpan dan Lanjutkan.
- Klik Buat untuk membuat layanan backend.

Mengonfigurasi frontend
Aturan host dan jalur menentukan bagaimana traffic akan diarahkan. Misalnya, Anda dapat mengarahkan traffic video ke satu backend dan traffic statis ke backend lain. Namun, Anda tidak mengonfigurasi aturan Host dan jalur di lab ini.
- Klik Konfigurasi frontend.
- http-front-end
- Tentukan nilai berikut dan biarkan nilai default untuk properti yang lain:

- Klik Selesai.
8. Meninjau dan membuat Load Balancer HTTP
- Klik Tinjau dan selesaikan.

- Tinjau Backend services dan Frontend.

- Klik Buat.
- Tunggu beberapa menit hingga load balancer dibuat
- Klik nama load balancer (http-lb).
- Catat alamat IPv4 load balancer untuk tugas berikutnya, yang disebut sebagai http-lb.
9. Memvalidasi keberhasilan akses tidak sah
Sebelum menerapkan kebijakan Alamat IP Bernama, validasi keberhasilan akses tidak sah ke load balancer lab dan aplikasi web berikutnya. Perhatikan bahwa setelah kebijakan alamat IP bernama diterapkan, akses ke aplikasi web dibatasi untuk set ekspresi yang disediakan.
- Identifikasi alamat IP load balancer yang dibuat di langkah sebelumnya (http-lb) dan tempelkan ke browser web Anda. Output akan serupa dengan screenshot di bawah.
CATATAN: Langkah ini akan memerlukan waktu beberapa menit. Setelah halaman web dibuat, IP klien berasal dari Google Front End, bukan IP workstation Anda.

Dari workstation Anda, lakukan validasi serupa seperti yang ditunjukkan di bawah
bash-3.2$ curl <load-balancer-IP>
10. Contoh output
bash-3.2$ curl <load-balancer-ip> <h1>HTTP Load Balancing Lab</h1><h2>Client IP</h2>Your IP address : 35.191.0.151<h2>Hostname</h2>Server Hostname: us-east1-mig-8nqq<h2>Server Location</h2>Region and Zone: us-east1-b
11. Mengonfigurasi Daftar IP Bernama
Membuat Kebijakan Cloud Armor baru untuk Daftar IP Bernama
Dari Cloud Shell
gcloud compute --project=$projectid security-policies create ca-policy
Dari Cloud Shell
gcloud compute --project=$projectid security-policies rules update 2147483647 --action=deny-403 --security-policy=ca-policy --description="Default rule, higher priority overrides it" --src-ip-ranges=\*
Identifikasi alamat Daftar IP Bernama CDN yang tersedia.
Dari Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets \
--filter="id:sourceiplist"
Perintah ini menunjukkan:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
Dari Cloud Shell, konfigurasi daftar alamat IP bernama berdasarkan set ekspresi yang tersedia di CDN Anda
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('expression_set')" \
--action "allow"
Contoh menggunakan cloudflare
gcloud beta compute security-policies rules create 600 \
--security-policy ca-policy \
--expression "evaluatePreconfiguredExpr('sourceiplist-cloudflare')" \
--action "allow"
12. Menerapkan kebijakan keamanan CA
Terapkan kebijakan keamanan CA dan tunggu beberapa menit hingga kebijakan global diterapkan
gcloud compute backend-services update http-backend --security-policy ca-policy --global
13. Validasi Alamat IP Bernama
- Karena kebijakan keamanan diterapkan, akses ke load balancer dari workstation Anda tidak sah.
- Untuk memvalidasi, buka jendela terminal dari workstation Anda dan lakukan curl ke alamat IP load balancer. Output dari curl akan menghasilkan error '403' Forbidden karena workstation Anda kini tidak sah.
Dari workstation Anda
bash-3.2$ curl <load-balancer-IP> <!doctype html><meta charset="utf-8"><meta name=viewport content="width=device-width, initial-scale=1"><title>403</title>403 Forbidden
Langkah-Langkah Pembersihan
gcloud -q compute backend-services update http-backend --security-policy "" --global gcloud -q compute --project=$projectid security-policies delete ca-policy gcloud -q compute forwarding-rules delete http-front-end --global gcloud -q compute target-http-proxies delete http-lb-target-proxy gcloud -q compute url-maps delete http-lb gcloud -q compute backend-services delete http-backend --global gcloud -q compute health-checks delete http-health-check gcloud -q compute --project=$projectid instance-groups managed delete us-east1-mig --zone=us-east1-b gcloud -q beta compute --project=$projectid instance-templates delete us-east1-template gcloud -q compute --project=$projectid firewall-rules delete default-allow-http gcloud -q compute --project=$projectid firewall-rules delete default-allow-health-check gcloud -q compute networks subnets delete named-ip-subnet --region us-east1 gcloud -q compute networks delete named-list-vpc
14. Selamat!
Selamat, Anda telah menyelesaikan codelab.
Yang telah kita bahas
- Manfaat daftar alamat IP bernama Cloud Armor
- Buat Load Balancer Global
- Buat grup Instance Terkelola dengan aplikasi pengujian contoh
- Buat kebijakan keamanan Cloud Armor
- Men-deploy daftar alamat IP bernama Cloud Armor
- Memvalidasi Kebijakan Cloud Armor IP Bernama