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 yang diberi nama dalam kebijakan keamanan. Anda tidak perlu menentukan secara manual setiap alamat IP atau rentang IP satu per satu.
Yang akan Anda pelajari
- Manfaat daftar alamat IP bernama Cloud Armor
- Membuat kebijakan keamanan Cloud Armor
- Men-deploy daftar alamat IP bernama Cloud Armor
- Membuat Load balancer Global
- Membuat grup Instance Terkelola dengan contoh aplikasi pengujian
Yang Anda butuhkan
- Pengalaman dengan Kebijakan Keamanan dan Load Balancer
2. Mengizinkan traffic hanya dari penyedia pihak ketiga yang diizinkan
Kasus penggunaan yang 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 harus mengambil konten dari server asal secara berkala untuk mendistribusikannya ke cache mereka sendiri. Kemitraan dengan Google akan menghubungkan langsung penyedia CDN dan edge jaringan Google. Pengguna CDN di Google Cloud dapat menggunakan koneksi langsung ini selama pull origin. Dalam hal ini, pengguna CDN mungkin ingin membuat kebijakan keamanan yang hanya mengizinkan traffic yang berasal dari penyedia CDN tertentu.
Dalam contoh ini, penyedia CDN menerbitkan daftar alamat IP-nya 23.235.32.0/20, 43.249.72.0/22, ⋯,. Seorang 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 mereka diizinkan. Lalu lintas dari titik akses 198.51.100.1 yang tidak sah 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 terkenal dan perlu digunakan oleh banyak pengguna CDN. Daftar ini berubah dari waktu ke waktu, saat penyedia menambahkan, menghapus, dan memperbarui alamat IP.
Menggunakan daftar alamat IP bernama dalam aturan kebijakan keamanan menyederhanakan proses konfigurasi dan pengelolaan alamat IP karena Google Cloud Armor otomatis menyinkronkan informasi dari penyedia CDN setiap hari. Hal ini menghilangkan proses yang memakan waktu dan rawan kesalahan dalam mengelola daftar alamat IP yang 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-nya dipublikasikan melalui URL publik individual.
Partner ini memberikan daftar alamat IPv4 dan alamat IPv6 yang terpisah. Google Cloud Armor menggunakan URL yang disediakan untuk mengambil daftar, lalu mengonversi daftar tersebut menjadi daftar alamat IP yang diberi nama. Anda merujuk ke daftar berdasarkan nama-nama dalam tabel.
Atau, gunakan Cloud Shell untuk mendapatkan daftar 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"
Ini akan menampilkan:
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 GCP Console, 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
Membuat 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
Membuat 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
Pastikan instance VM dibuat di kedua region dan akses situs HTTP-nya.
- Masih di Compute Engine, klik instance VM di menu kiri
- Perhatikan instance yang dimulai dengan us-east1-mig. Instance ini adalah bagian dari grup instance terkelola.
- Klik IP Eksternal instance us-east1-mig. Anda akan melihat IP Klien (alamat IP Anda), Nama Host (dimulai dengan us-east1-mig)
Mengonfigurasi Load Balancer HTTP
- Di Konsol Cloud, klik Navigation menu ( ) > klik Layanan Jaringan > Load balancing, lalu klik Create load balancer.
- Di bagian Load Balancing HTTP(S), klik Start configuration.
- Pilih From Internet to my VMs, lalu klik Continue.
- Tetapkan Name 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 pada Backend configuration.
- Untuk layanan Backend & bucket backend, klik Buat atau pilih layanan backend & bucket backend, lalu klik Backend services, lalu klik Create a backend service.
- Jenis backend adalah Grup Instance
- Tetapkan nilai berikut dan biarkan semua nilai lainnya dalam setelan default:
- Klik Selesai.
- Untuk Health Check, pilih Buat health check.
- Tetapkan nilai berikut dan biarkan semua nilai lainnya dalam setelan default:
- Klik Simpan dan Lanjutkan.
- Klik Create 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 melakukan backend lain. Namun, Anda tidak mengonfigurasi aturan Host dan jalur di lab ini.
- Klik pada Frontend configuration.
- http-front-end
- Tentukan nilai berikut, biarkan semua nilai lainnya menggunakan default-nya
- Klik Selesai.
8. Meninjau dan membuat Load Balancer HTTP
- Klik Tinjau dan selesaikan.
- Meninjau layanan Backend dan Frontend.
- Klik Create.
- Tunggu beberapa menit sampai load balancer dibuat
- Klik nama load balancer (http-lb).
- Perhatikan alamat IPv4 load balancer untuk tugas berikutnya, yang disebut http-lb.
9. Memvalidasi keberhasilan akses tidak sah
Sebelum menerapkan kebijakan Alamat IP Bernama, validasi akses tidak sah yang berhasil ke load balancer lab dan aplikasi web berikutnya. Catatan, setelah kebijakan alamat IP bernama diterapkan, akses ke aplikasi web dibatasi pada kumpulan ekspresi yang disediakan.
- Identifikasi alamat IP load balancer yang dibuat pada langkah sebelumnya (http-lb) dan tempelkan ke browser web Anda. Output-nya akan serupa dengan screenshot di bawah ini.
CATATAN: Langkah ini memerlukan waktu beberapa menit. Setelah halaman web dibuat, IP klien berasal dari Google Front End, bukan dari IP workstation Anda.
Dari workstation Anda, lakukan validasi serupa seperti yang ditunjukkan di bawah ini
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
Buat Kebijakan Cloud Amour 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=\*
Mengidentifikasi alamat Daftar IP Bernama CDN yang tersedia.
Dari Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets \ --filter="id:sourceiplist"
Ini akan menampilkan:
EXPRESSION_SET sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva
Dari Cloud Shell, konfigurasi daftar alamat IP bernama berdasarkan kumpulan ekspresi CDN yang tersedia
gcloud beta compute security-policies rules create 600 \ --security-policy ca-policy \ --expression "evaluatePreconfiguredExpr('expression_set')" \ --action "allow"
Contoh penggunaan 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 penerapan kebijakan global
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 '403' Error terlarang karena workstation Anda sekarang 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
- Membuat Load balancer Global
- Membuat grup Instance Terkelola dengan contoh aplikasi pengujian
- Membuat kebijakan keamanan Cloud Armor
- Men-deploy daftar alamat IP bernama Cloud Armor
- Validasi Kebijakan Cloud Armor IP Bernama