1. Pengantar
Proxy Web Aman untuk Cloud
Cloud SWP adalah layanan cloud-first yang menyediakan proxy web aman untuk membantu Anda mengamankan traffic web keluar (HTTP/S). Anda mengonfigurasi klien untuk menggunakan Cloud SWP secara eksplisit sebagai proxy. Permintaan web dapat berasal dari sumber berikut:
- Instance virtual machine (VM)
- Container
- Lingkungan serverless yang menggunakan konektor serverless
- Workload di seluruh Peering VPC
- Workload di luar Google Cloud yang terhubung melalui Cloud VPN atau Cloud Interconnect
Cloud SWP memungkinkan kebijakan yang fleksibel dan terperinci berdasarkan identitas cloud-first dan aplikasi web.
Manfaat
Berikut beberapa contoh manfaat yang dapat diberikan Cloud SWP kepada organisasi:
Migrasi ke Google Cloud
SWP Cloud membantu Anda bermigrasi ke Google Cloud sambil mempertahankan kebijakan dan persyaratan keamanan yang ada untuk traffic web keluar. Anda dapat menghindari penggunaan solusi pihak ketiga yang memerlukan konsol pengelolaan lain atau mengedit file konfigurasi secara manual.
Akses ke layanan web eksternal tepercaya
Cloud SWP memungkinkan Anda menerapkan kebijakan akses terperinci ke traffic web keluar sehingga Anda dapat mengamankan jaringan. Anda membuat dan mengidentifikasi identitas beban kerja atau aplikasi, lalu menerapkan kebijakan.
Akses yang dipantau ke layanan web yang tidak tepercaya
Anda dapat menggunakan Cloud SWP untuk memberikan akses yang dipantau ke layanan web yang tidak tepercaya. Cloud SWP mengidentifikasi traffic yang tidak sesuai dengan kebijakan dan mencatatnya ke Cloud Logging (Logging). Kemudian, Anda dapat memantau penggunaan internet, menemukan ancaman terhadap jaringan, dan merespons ancaman.
Kontrol kebijakan terperinci untuk Google API
Anda dapat menggunakan Cloud SWP untuk menyediakan kebijakan terperinci untuk Google API. Misalnya, Anda dapat menetapkan kebijakan tingkat bucket/objek menggunakan Common Expression Language (CEL).
Fitur yang Didukung
Cloud SWP mendukung fitur berikut:
Layanan proxy eksplisit
Klien harus dikonfigurasi secara eksplisit untuk menggunakan server proxy. Proxy Cloud SWP mengisolasi klien dari internet dengan membuat koneksi TCP baru atas nama klien.
Penskalaan otomatis proxy Envoy Cloud SWP
Mendukung penyesuaian ukuran pool proxy Envoy dan kapasitas pool secara otomatis di suatu region, yang memungkinkan performa yang konsisten selama periode permintaan tinggi dengan biaya terendah.
Kebijakan akses keluar modular
Cloud SWP secara khusus mendukung kebijakan keluar berikut:
- Identitas sumber berdasarkan tag aman, akun layanan, atau alamat IP.
- Tujuan berdasarkan URL, nama host.
- Permintaan berdasarkan metode, header, atau URL. URL dapat ditentukan menggunakan daftar, karakter pengganti, atau pola.
- Enkripsi end-to-end: Tunnel client-proxy dapat ditransmisikan melalui TLS. Cloud SWP juga mendukung HTTP/S CONNECT untuk koneksi TLS end-to-end yang dimulai klien ke server tujuan.
Integrasi Cloud NAT yang Disederhanakan
Cloud NAT otomatis menyediakan alamat IP publik tambahan saat setelan proxy yang melayani traffic Cloud SWP meningkat.
Alamat IP publik statis manual juga merupakan opsi bagi mereka yang ingin memiliki IP keluar yang diketahui.
Integrasi Cloud Audit Logs dan Google Cloud Operations Suite
Cloud Audit Logs dan Google Cloud Operations Suite mencatat aktivitas administratif dan permintaan akses untuk resource terkait Cloud SWP. Mereka juga mencatat metrik dan log transaksi untuk permintaan yang ditangani oleh proxy.
Pemeriksaan TLS
Secure Web Proxy menawarkan layanan pemeriksaan TLS yang memungkinkan Anda mencegat traffic TLS, memeriksa permintaan terenkripsi, dan menerapkan kebijakan keamanan.
- Integrasi yang erat dengan Certificate Authority Service (CAS), yang merupakan repositori yang sangat tersedia dan skalabel untuk CA pribadi.
- Kemampuan untuk menggunakan root of trust Anda sendiri jika diperlukan. Anda juga dapat menggunakan CA root yang ada untuk menandatangani CA subordinat yang dipegang oleh CAS. Jika ingin, Anda dapat membuat sertifikat root baru dalam CAS.
- Kriteria dekripsi terperinci menggunakan SessionMatcher dan ApplicationMatcher dalam aturan kebijakan Secure Web Proxy. Kriteria ini mencakup host yang cocok yang ada dalam daftar URL, ekspresi reguler, rentang alamat IP, dan ekspresi serupa. Jika diperlukan, kriteria dapat digabungkan dengan ekspresi boolean.
- Setiap kebijakan Secure Web Proxy dapat dikonfigurasi dengan kebijakan pemeriksaan TLS dan kumpulan CA-nya sendiri. Atau, beberapa kebijakan Secure Web Proxy dapat berbagi satu kebijakan pemeriksaan TLS.
Yang akan Anda pelajari
- Cara men-deploy dan mengelola Cloud SWP.
Yang Anda butuhkan
- Pengetahuan tentang men-deploy instance dan mengonfigurasi komponen jaringan
- Pengetahuan Konfigurasi Firewall VPC
2. Lingkungan Pengujian
Codelab ini akan memanfaatkan satu VPC. Resource komputasi di lingkungan ini akan keluar menggunakan Cloud SWP seperti yang terlihat pada diagram di bawah.

Dalam lab ini, kita akan memiliki 2 VM workload.
Klien A akan dikonfigurasi untuk mengirim semua permintaan HTTP/HTTPS ke Cloud SWP.
Client B TIDAK akan dikonfigurasi untuk mengirim permintaan HTTP/HTTPS secara eksplisit ke Cloud SWP, tetapi akan memanfaatkan Cloud NAT untuk traffic yang terikat ke internet.
3. Sebelum memulai
Codelab memerlukan satu project.
Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan
export project_id=`gcloud config list --format="value(core.project)"` export project_number=`gcloud projects describe $project_id --format="value(projectNumber)"` export region=us-west1 export zone=us-west1-a export prefix=codelab-swp export member="serviceAccount:service-$project_number@gcp-sa-networksecurity.iam.gserviceaccount.com"
4. Mengaktifkan API
Mengaktifkan API untuk menggunakan produk
gcloud services enable networksecurity.googleapis.com gcloud services enable certificatemanager.googleapis.com gcloud services enable networkservices.googleapis.com
5. Buat jaringan VPC, subnet, dan subnet khusus proxy
Jaringan VPC
Buat VPC codelab-swp-vpc:
gcloud compute networks create $prefix-vpc --subnet-mode=custom
Subnet
Buat subnet masing-masing di region yang dipilih:
gcloud compute networks subnets create $prefix-vpc-subnet \ --range=10.10.10.0/24 --network=$prefix-vpc --region=$region
Subnet khusus proxy
Buat subnet khusus proxy di region yang dipilih:
gcloud compute networks subnets create $prefix-proxy-only-subnet --purpose=REGIONAL_MANAGED_PROXY --role=ACTIVE --region=$region --network=$prefix-vpc --range=172.16.0.0/23
6. Membuat Aturan Firewall
Untuk mengizinkan IAP terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang ingin Anda akses menggunakan IAP.
- Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.
Dari Cloud Shell:
gcloud compute firewall-rules create $prefix-allow-iap-proxy \ --direction=INGRESS \ --priority=1000 \ --network=$prefix-vpc \ --action=ALLOW \ --rules=tcp:22 \ --source-ranges=35.235.240.0/20
7. Membuat Cloud Router & Cloud NAT
Buat Cloud Router untuk Cloud NAT.
gcloud compute routers create ${prefix}-cr \
--region=$region \
--network=${prefix}-vpc
Buat Gateway Cloud NAT untuk Klien B.
gcloud compute routers nats create $prefix-nat-gw-$region \ --router=$prefix-cr \ --router-region=$region \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
8. Membuat Kebijakan Keamanan Gateway
Buat file yaml yang berisi informasi yang relevan untuk kebijakan:
cat > /tmp/policy.yaml << EOF
description: Policy to allow .com traffic, then (/index.html), and finally TLS.
name: projects/${project_id}/locations/${region}/gatewaySecurityPolicies/${prefix}-policy
EOF
Jalankan perintah gcloud untuk membuat kebijakan dari file YAML:
gcloud network-security gateway-security-policies import ${prefix}-policy --source=/tmp/policy.yaml --location=${region}
9. Membuat Aturan Kebijakan Keamanan Gateway
Buat file yaml yang berisi aturan. Aturan ini ditampilkan dalam Common Expression Language (CEL). Lab ini akan menggunakan aturan sederhana yang akan mengizinkan traffic ke domain .com dan memblokir semua domain lainnya:
cat > /tmp/rule-com.yaml << EOF
name: projects/${project_id}/locations/${region}/gatewaySecurityPolicies/${prefix}-policy/rules/rule-com
enabled: true
priority: 1
description: Allow .com traffic
basicProfile: ALLOW
sessionMatcher: host().endsWith('com')
EOF
Sekarang kita dapat mengikat aturan ke kebijakan keamanan gateway:
gcloud network-security gateway-security-policies rules import rule-com --source=/tmp/rule-com.yaml --location=${region} --gateway-security-policy=${prefix}-policy
10. Membuat sertifikat dan menguploadnya ke Cloud Certificate Manager
Buat sertifikat untuk menghentikan traffic beban kerja:
openssl req -x509 -newkey rsa:2048 -keyout /tmp/key.pem -out /tmp/cert.pem -days 365 -subj '/CN=www.codelab-swp.com' -nodes -addext \ "subjectAltName = DNS:www.codelab-swp.com"
Upload sertifikat ke Pengelola Sertifikat Cloud sehingga SWP dapat mereferensikannya dalam kebijakan gateway keamanan.
gcloud certificate-manager certificates create ${prefix}-cert --location=${region} --private-key-file=/tmp/key.pem --certificate-file=/tmp/cert.pem
11. Buat Gateway SWP
Buat file yaml untuk SWP Gateway guna mereferensikan informasi sebelumnya seperti sertifikat, kebijakan keamanan gateway, jaringan, dan subnet.
cat > /tmp/gateway.yaml << EOF
name: projects/${project_id}/locations/${region}/gateways/${prefix}-gateway
type: SECURE_WEB_GATEWAY
addresses: [10.10.10.50]
ports: [443]
certificateUrls: [projects/${project_id}/locations/${region}/certificates/${prefix}-cert]
gatewaySecurityPolicy: projects/${project_id}/locations/${region}/gatewaySecurityPolicies/${prefix}-policy
network: projects/${project_id}/global/networks/${prefix}-vpc
subnetwork: projects/${project_id}/regions/${region}/subnetworks/${prefix}-vpc-subnet
EOF
Buat gateway:
gcloud network-services gateways import ${prefix}-swp --source=/tmp/gateway.yaml --location=${region}
Pastikan gateway telah dibuat:
gcloud network-services gateways describe ${prefix}-swp --location ${region}
12. Membuat Instance Compute
Karena Cloud SWP adalah proxy eksplisit, kita perlu menentukan IP proxy secara eksplisit untuk traffic workload. Klien instance komputasi A akan memiliki variabel lingkungan yang ditetapkan. ClientB tidak akan.
Buat instance komputasi ClientA dan ClientB:
gcloud compute instances create clienta \ --subnet=$prefix-vpc-subnet \ --no-address \ --private-network-ip=10.10.10.10 \ --zone $zone \ --metadata startup-script='#! /bin/bash apt-get update sudo echo http_proxy=https://10.10.10.50:443/ >> /etc/environment sudo echo https_proxy=https://10.10.10.50:443/ >> /etc/environment '
gcloud compute instances create clientb \ --subnet=$prefix-vpc-subnet \ --no-address \ --private-network-ip=10.10.10.200 \ --zone $zone \ --metadata startup-script='#! /bin/bash apt-get update '
13. Menguji Pencocokan Sesi
Lakukan SSH ke VM komputasi "clienta" yang baru saja dibuat. VM ini telah menetapkan variabel lingkungan untuk menggunakan Cloud SWP.
Dari Cloud Shell:
gcloud compute ssh clienta --zone=$zone --tunnel-through-iap
Jalankan beberapa kueri web untuk memvalidasi fungsi. Kita memerlukan –proxy-insecure karena kita membuat sertifikat yang ditandatangani sendiri untuk lab ini:
curl https://google.com --proxy-insecure
Output yang diharapkan:
davidtu@clienta:~$ curl https://google.com --proxy-insecure <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/">here</A>. </BODY></HTML>
Seperti yang dapat Anda lihat, permintaan tersebut "berhasil". Kita akan melihat pengalihan 301 karena situs mengalihkan ke https://www.google.com.
Menjalankan perintah berikut akan memberikan log panjang dengan detail tentang koneksi:
curl https://google.com --proxy-insecure -v
Menandai beberapa output untuk menampilkan detail koneksi proxy, sertifikat, dan tujuan.
davidtu@clienta:~$ curl https://google.com --proxy-insecure -v * Uses proxy env variable https_proxy == 'https://10.10.10.50:443/' * Trying 10.10.10.50:443... * Connected to 10.10.10.50 (10.10.10.50) port 443 (#0) * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt * CApath: /etc/ssl/certs * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 * ALPN, server accepted to use http/1.1 * Proxy certificate: * subject: CN=www.codelab-swp.com * start date: Dec 12 17:16:35 2022 GMT * expire date: Dec 12 17:16:35 2023 GMT * issuer: CN=www.codelab-swp.com * SSL certificate verify result: self signed certificate (18), continuing anyway. * allocate connect buffer! * Establish HTTP proxy tunnel to google.com:443 > CONNECT google.com:443 HTTP/1.1 > Host: google.com:443 > User-Agent: curl/7.74.0 > Proxy-Connection: Keep-Alive > * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): < HTTP/1.1 200 OK < date: Mon, 12 Dec 2022 19:22:04 GMT < * Proxy replied 200 to CONNECT request * CONNECT phase completed! ...
Jangan ragu untuk mencoba domain .com lainnya untuk memverifikasi fungsi.
Sekarang, mari kita coba beberapa domain non-.com lainnya untuk memverifikasi perilaku pemblokiran default:
curl https://wikipedia.org --proxy-insecure
Output yang diharapkan:
curl: (56) Received HTTP code 403 from proxy after CONNECT
Demikian pula, lihat logging output verbose dan konfirmasi bahwa Cloud SWP memblokir traffic ini:
curl https://wikipedia.org --proxy-insecure -v
davidtu@clienta:~$ curl https://wikipedia.org --proxy-insecure -v * Uses proxy env variable https_proxy == 'https://10.10.10.50:443/' * Trying 10.10.10.50:443... * Connected to 10.10.10.50 (10.10.10.50) port 443 (#0) * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/certs/ca-certificates.crt * CApath: /etc/ssl/certs * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): * TLSv1.3 (IN), TLS handshake, Certificate (11): * TLSv1.3 (IN), TLS handshake, CERT verify (15): * TLSv1.3 (IN), TLS handshake, Finished (20): * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.3 (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 * ALPN, server accepted to use http/1.1 * Proxy certificate: * subject: CN=www.codelab-swp.com * start date: Dec 12 17:16:35 2022 GMT * expire date: Dec 12 17:16:35 2023 GMT * issuer: CN=www.codelab-swp.com * SSL certificate verify result: self signed certificate (18), continuing anyway. * allocate connect buffer! * Establish HTTP proxy tunnel to wikipedia.org:443 > CONNECT wikipedia.org:443 HTTP/1.1 > Host: wikipedia.org:443 > User-Agent: curl/7.74.0 > Proxy-Connection: Keep-Alive > * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): < HTTP/1.1 403 Forbidden < content-length: 13 < content-type: text/plain < date: Mon, 12 Dec 2022 19:35:09 GMT < connection: close < * Received HTTP code 403 from proxy after CONNECT * CONNECT phase completed! * Closing connection 0 curl: (56) Received HTTP code 403 from proxy after CONNECT
Jangan ragu untuk mencoba domain lain juga untuk memverifikasi perilaku.
Keluar dari sesi SSH ke "clienta" dan mulai koneksi SSH baru ke "clientb".
gcloud compute ssh clientb --zone=$zone --tunnel-through-iap
Jalankan beberapa perintah curl untuk memeriksa perilaku:
curl https://google.com
Ini akan berfungsi seperti yang diharapkan clientb VM:
davidtu@clientb:~$ curl https://google.com <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/">here</A>. </BODY></HTML>
Menguji terhadap domain org:
curl https://wikipedia.org
Hal ini berfungsi seperti yang diharapkan karena clientb tidak memanfaatkan Cloud SWP:
davidtu@clientb:~$ curl https://wikipedia.org <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://www.wikipedia.org/">here</a>.</p> </body></html>
Uji pengiriman traffic secara eksplisit melalui Cloud SWP:
curl -x https://10.10.10.50:443/ https://wikipedia.org --proxy-insecure
Kami melihat bahwa traffic ini ditolak melalui kebijakan SWP Cloud:
davidtu@clientb:~$ curl -x https://10.10.10.50:443/ https://wikipedia.org --proxy-insecure curl: (56) Received HTTP code 403 from proxy after CONNECT
Seperti yang telah Anda verifikasi, traffic yang memanfaatkan Cloud SWP diterapkan terhadap kebijakan keamanan yang dikonfigurasi. Traffic yang ditujukan untuk .com diizinkan dan semua tujuan lainnya ditolak.
Keluar dari clientb.
14. Memperbarui Aturan Kebijakan Keamanan Gateway untuk ApplicationMatching
Mari perbarui aturan agar cocok dengan detail tingkat aplikasi. Kita akan membuat aturan untuk melihat jalur permintaan dan hanya mengizinkannya jika cocok dengan index.html.
cat > /tmp/rule-com.yaml << EOF
name: projects/${project_id}/locations/${region}/gatewaySecurityPolicies/${prefix}-policy/rules/rule-com
enabled: true
priority: 1
description: Allow .com traffic with path index.html
basicProfile: ALLOW
sessionMatcher: host().endsWith('com')
applicationMatcher: request.path.matches('index.html')
EOF
Sekarang kita dapat mengikat aturan yang diperbarui ke kebijakan keamanan gateway:
gcloud network-security gateway-security-policies rules import rule-com --source=/tmp/rule-com.yaml --location=${region} --gateway-security-policy=${prefix}-policy
15. Menguji Aturan ApplicationMatcher
SSH ke VM komputasi clienta. VM ini telah menetapkan variabel lingkungan untuk menggunakan Cloud SWP.
Dari Cloud Shell:
gcloud compute ssh clienta --zone=$zone --tunnel-through-iap
Jalankan beberapa kueri web untuk memvalidasi fungsi. Kita memerlukan –proxy-insecure karena kita membuat sertifikat yang ditandatangani sendiri untuk lab ini:
curl http://google.com --proxy-insecure
Perhatikan bahwa kueri ini akan gagal jika sebelumnya berhasil.
Access denied
Setiap jalur permintaan selain "index.html" akan diblokir dengan error 403. Anda dapat mengujinya lebih lanjut.
Ubah kueri untuk menyertakan jalur /index.html
curl http://google.com/index.html --proxy-insecure
Permintaan ini akan berhasil:
davidtu@clienta:~$ curl http://google.com/index.html --proxy-insecure <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/index.html">here</A>. </BODY></HTML>
Kita akan melihat pengalihan 301 karena situs dialihkan ke http://www.google.com/index.html
Perhatikan bahwa ini adalah permintaan HTTP. Selanjutnya, Anda harus mengaktifkan SWP agar memiliki kemampuan pemeriksaan TLS.
Selanjutnya, jalankan kueri yang sama, tetapi melalui TLS:
curl -k https://google.com/index.html --proxy-insecure
Output yang diharapkan:
curl: (56) Received HTTP code 403 from proxy after CONNECT
Permintaan ini akan gagal karena SWP tidak dikonfigurasi untuk memeriksa TLS dan tidak dapat mengevaluasi jalur berdasarkan aturan applicationMatcher.
Keluar dari clenta.
16. Mengaktifkan Pemeriksaan TLS
Tanpa Pemeriksaan TLS, applicationMatcher tidak akan cocok dengan traffic HTTPS.
"applicationMatcher" memungkinkan pemfilteran pada hal berikut:
- Peta header permintaan
- Metode permintaan
- Minta host
- Request path
- Kueri permintaan
- Skema permintaan
- URL permintaan lengkap
- Meminta useragent
Buat Akun Layanan
Akun layanan ini akan memiliki izin untuk membuat sertifikat bagi pemeriksaan TLS SWP.
gcloud beta services identity create \
--service=networksecurity.googleapis.com \
--project=$project_id
Pastikan CAS diaktifkan
gcloud services enable privateca.googleapis.com
Membuat kumpulan CA
gcloud privateca pools create $prefix-ca-pool \
--tier=devops \
--project=$project_id \
--location=$region
Buat CA Root
CA yang digunakan untuk penandatanganan sertifikat.
gcloud privateca roots create $prefix-root-ca --pool=$prefix-ca-pool \ --location=$region \ --auto-enable \ --subject="CN=my-swp-ca, O=SWP LLC"
Buat file kebijakan penerbitan sertifikat
cat > /tmp/tls-issuance-policy.yaml << EOF
maximumLifetime: 1209600s
baselineValues:
caOptions:
isCa: false
keyUsage:
extendedKeyUsage:
serverAuth: true
EOF
Membuat file yaml Pemeriksaan TLS
cat > /tmp/tls-inspection-policy.yaml << EOF caPool: projects/$project_id/locations/$region/caPools/$prefix-ca-pool name: projects/$project_id/locations/$region/tlsInspectionPolicies/$prefix-tls-inspection EOF
Membuat Kebijakan Pemeriksaan TLS
gcloud network-security tls-inspection-policies import $prefix-tls-inspection \
--source=/tmp/tls-inspection-policy.yaml \
--location=$region
Perbarui Kumpulan CA untuk menggunakan kebijakan penerbitan sertifikat
gcloud privateca pools update $prefix-ca-pool --issuance-policy=/tmp/tls-issuance-policy.yaml --location=$region
Berikan Izin
Dengan demikian, akun layanan Anda dapat menggunakan kumpulan CA untuk membuat sertifikat.
gcloud privateca pools add-iam-policy-binding $prefix-ca-pool \
--member=$member \
--role='roles/privateca.certificateManager' \
--location=$region
Memperbarui Policy yaml untuk menyertakan pemeriksaan TLS
cat > /tmp/policy.yaml << EOF
description: some policy description
name: projects/${project_id}/locations/${region}/gatewaySecurityPolicies/${prefix}-policy
tlsInspectionPolicy: projects/${project_id}/locations/${region}/tlsInspectionPolicies/${prefix}-tls-inspection
EOF
Jalankan perintah untuk menerapkan kebijakan yang telah diperbarui
gcloud network-security gateway-security-policies import ${prefix}-policy --source=/tmp/policy.yaml --location=${region}
Memperbarui aturan untuk menyertakan pemeriksaan TLS
Selanjutnya, tentukan aturan mana yang harus memiliki flag pemeriksaan TLS "enabtlsInspectionEnabled: true".
cat > /tmp/rule-com.yaml << EOF
name: projects/${project_id}/locations/${region}/gatewaySecurityPolicies/${prefix}-policy/rules/rule-com
enabled: true
priority: 1
description: Allow .com traffic with path index.html
basicProfile: ALLOW
sessionMatcher: host().endsWith('com')
applicationMatcher: request.path.matches('index.html')
tlsInspectionEnabled: true
EOF
Jalankan perintah untuk menerapkan aturan yang telah diupdate
gcloud network-security gateway-security-policies rules import rule-com --source=/tmp/rule-com.yaml --location=${region} --gateway-security-policy=${prefix}-policy
17. Menguji Pemeriksaan TLS
SSH ke VM komputasi clienta. VM ini telah menetapkan variabel lingkungan untuk menggunakan Cloud SWP.
Dari Cloud Shell:
gcloud compute ssh clienta --zone=$zone --tunnel-through-iap
Jalankan kueri web sebelumnya untuk memverifikasi apakah SWP melakukan pemeriksaan TLS untuk mengambil jalur
curl -k https://google.com/index.html --proxy-insecure
Kali ini, proses akan berhasil karena SWP dapat mengevaluasi ApplicationMatcher.
Output yang diharapkan:
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/index.html">here</A>. </BODY></HTML>
Kita telah berhasil menyiapkan Cloud SWP untuk memeriksa TLS dan mengevaluasi logika applicationMatcher.
Keluar dari clienta.
18. Langkah-langkah pembersihan
Dari Cloud Shell, hapus gateway SWP, kebijakan keamanan, sertifikat, instance, Cloud NAT, dan Cloud Router:
gcloud -q network-services gateways delete ${prefix}-swp --location=${region}
gcloud -q network-security gateway-security-policies rules delete rule-com --location=${region} --gateway-security-policy=${prefix}-policy
gcloud -q network-security gateway-security-policies delete ${prefix}-policy --location=${region}
gcloud -q certificate-manager certificates delete ${prefix}-cert --location=${region}
gcloud -q network-security tls-inspection-policies delete $prefix-tls-inspection --location=$region
gcloud -q privateca roots disable $prefix-root-ca --pool=$prefix-ca-pool --location=$region
gcloud -q privateca roots delete $prefix-root-ca --pool=$prefix-ca-pool --location=$region --ignore-active-certificates --skip-grace-period
gcloud -q privateca pools delete $prefix-ca-pool --location=$region
gcloud -q compute instances delete clienta --zone=$zone
gcloud -q compute instances delete clientb --zone=$zone
gcloud -q compute routers nats delete ${prefix}-nat-gw-${region} \
--router=$prefix-cr --router-region=$region
gcloud -q compute routers delete `gcloud compute routers list --regions=$region --format="value(NAME)" | grep -e swg-autogen -e codelab-swp` --region=$region
Hapus subnet, aturan FW, dan VPC:
gcloud -q compute networks subnets delete $prefix-vpc-subnet \
--region $region
gcloud -q compute networks subnets delete $prefix-proxy-only-subnet \
--region=$region
gcloud -q compute firewall-rules delete $prefix-allow-iap-proxy
gcloud -q compute networks delete $prefix-vpc
19. Selamat!
Selamat, Anda telah menyelesaikan codelab. Anda telah berhasil mengonfigurasi dan men-deploy Cloud Secure Web Proxy di Google Cloud.
Yang telah kita bahas
- SWP Cloud dan manfaatnya