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 secara eksplisit menggunakan Cloud SWP 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
- Beban kerja 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
Cloud SWP membantu Anda bermigrasi ke Google Cloud dengan tetap mempertahankan kebijakan keamanan dan persyaratan 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
Dengan Cloud SWP, Anda dapat menerapkan kebijakan akses terperinci ke traffic web keluar sehingga Anda dapat mengamankan jaringan. Anda membuat dan mengidentifikasi workload atau identitas aplikasi, lalu menerapkan kebijakan.
Akses terpantau 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 bagi Google API. Misalnya, Anda dapat menetapkan kebijakan tingkat bucket/objek dengan memanfaatkan 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.
Proxy Cloud SWP Envoy Penskalaan Otomatis
Mendukung penyesuaian otomatis ukuran kumpulan proxy Envoy dan kapasitas kumpulan di suatu wilayah, sehingga memungkinkan performa yang konsisten selama periode permintaan tinggi dengan biaya terendah.
Kebijakan akses keluar modular
Cloud SWP secara khusus mendukung kebijakan traffic 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 proxy klien mungkin transit melalui TLS. Cloud SWP juga mendukung HTTP/S CONNECT untuk koneksi TLS end-to-end yang dimulai oleh klien ke server tujuan.
Integrasi Cloud NAT yang Disederhanakan
Cloud NAT secara otomatis menyediakan alamat IP publik tambahan saat kumpulan proxy yang melayani traffic Cloud SWP meningkat.
Alamat IP publik statis manual juga merupakan opsi bagi pengguna yang ingin memiliki IP keluar yang diketahui.
Cloud Audit Logs dan integrasi Google Cloud Operations Suite
Cloud Audit Logs dan Google Cloud Operations Suite mencatat aktivitas administratif dan permintaan akses untuk resource terkait Cloud SWP. Proxy juga mencatat metrik dan log transaksi untuk permintaan yang ditangani oleh proxy.
Inspeksi TLS
Proxy Web Aman menawarkan layanan pemeriksaan TLS yang memungkinkan Anda mencegat traffic TLS, memeriksa permintaan yang dienkripsi, dan menerapkan kebijakan keamanan.
- Integrasi erat dengan Certificate Authority Service (CAS), yang merupakan repositori dengan ketersediaan tinggi dan skalabel untuk CA pribadi.
- Kemampuan untuk menggunakan root kepercayaan Anda sendiri jika diperlukan. Anda juga dapat menggunakan root CA yang ada untuk menandatangani CA subordinat yang dimiliki oleh CA. Jika ingin, Anda dapat membuat root certificate baru dalam CAS.
- Kriteria dekripsi terperinci menggunakan SessionMatcher dan ApplicationMatcher dalam aturan kebijakan Proxy Web Aman. Kriteria ini mencakup host yang cocok yang ada di daftar URL, ekspresi reguler, rentang alamat IP, dan ekspresi serupa. Jika diperlukan, kriteria dapat dikombinasikan dengan ekspresi boolean.
- Setiap kebijakan Proxy Web Aman dapat dikonfigurasi dengan kebijakan pemeriksaan TLS dan kumpulan CA-nya sendiri. Atau, beberapa kebijakan Proxy Web Aman dapat berbagi satu kebijakan pemeriksaan TLS.
Yang akan Anda pelajari
- Cara men-deploy dan mengelola Cloud SWP.
Yang Anda butuhkan
- Pengetahuan dalam men-deploy instance dan mengonfigurasi komponen jaringan
- Pengetahuan Konfigurasi Firewall VPC
2. Lingkungan Pengujian
Codelab ini akan memanfaatkan VPC tunggal. Resource komputasi di lingkungan ini akan keluar menggunakan Cloud SWP seperti yang terlihat pada diagram di bawah.
Di lab ini, kita akan memiliki 2 VM workload.
Klien A akan dikonfigurasi untuk mengirim semua permintaan HTTP/HTTPS ke Cloud SWP.
Klien B TIDAK akan dikonfigurasi untuk mengirim permintaan HTTP/HTTPS secara eksplisit ke Cloud SWP, tetapi memanfaatkan Cloud NAT untuk traffic yang terikat 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. Membuat 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 yang sesuai 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. Buat Aturan Firewall
Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan 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 cloudshell:
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
Membuat 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
Membuat file yaml yang berisi aturan. Aturan ini diwakili dalam Common Expression Language (CEL). Lab ini akan menggunakan aturan sederhana yang akan mengizinkan traffic ke domain .com dan memblokir semua yang 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 mengupload ke Cloud Certificate Manager
Buat sertifikat untuk menghentikan traffic workload:
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 Cloud Certificate Manager agar 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. Membuat Gateway SWP
Buat file yaml untuk Gateway SWP guna merujuk 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. KlienA instance Compute akan memiliki kumpulan variabel lingkungan. ClientB tidak akan demikian.
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
Jalankan SSH ke "clienta" Compute Engine yang baru saja dibuat. VM ini memiliki variabel lingkungan yang ditetapkan untuk menggunakan Cloud SWP.
Dari cloudshell:
gcloud compute ssh clienta --zone=$zone --tunnel-through-iap
Jalankan beberapa kueri web untuk memvalidasi fungsi. Kami memerlukan –proxy-insecure karena kami 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 Anda lihat, permintaannya "berhasil". Diperkirakan kami melihat pengalihan 301 karena situs melakukan pengalihan ke https://www.google.com.
Menjalankan perintah berikut akan memberikan log panjang yang berisi detail koneksi:
curl https://google.com --proxy-insecure -v
Menyoroti 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 fungsinya.
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 panjang dan pastikan 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 pengguna.
Tutup sesi SSH ke "clienta" dan memulai koneksi SSH baru ke "{i>clientb.<i}"
gcloud compute ssh clientb --zone=$zone --tunnel-through-iap
Jalankan beberapa perintah curl untuk memeriksa perilaku:
curl https://google.com
Ini akan bekerja seperti VM clientb yang diharapkan:
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>
Pengujian 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>
Menguji pengiriman traffic secara eksplisit melalui Cloud SWP:
curl -x https://10.10.10.50:443/ https://wikipedia.org --proxy-insecure
Kita melihat bahwa traffic ini ditolak melalui kebijakan Cloud SWP:
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 ditegakkan terhadap kebijakan keamanan yang dikonfigurasi. Traffic yang ditujukan untuk .com diizinkan dan semua tujuan lainnya akan ditolak.
Keluar dari klienb.
14. Memperbarui Aturan Kebijakan Keamanan Gateway untuk ApplicationMatching
Mari kita 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 diupdate 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 memiliki variabel lingkungan yang ditetapkan untuk menggunakan Cloud SWP.
Dari cloudshell:
gcloud compute ssh clienta --zone=$zone --tunnel-through-iap
Jalankan beberapa kueri web untuk memvalidasi fungsi. Kami memerlukan –proxy-insecure karena kami membuat sertifikat yang ditandatangani sendiri untuk lab ini:
curl http://google.com --proxy-insecure
Perhatikan bahwa kueri ini akan gagal jika sebelumnya diteruskan.
Access denied
Jalur permintaan apa pun selain "index.html" akan diblokir dengan 403. Jangan ragu untuk menguji hal ini 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>
Diperkirakan melihat pengalihan 301 karena situs mengalihkan ke http://www.google.com/index.html
Perhatikan bahwa ini adalah permintaan HTTP. Selanjutnya, Anda harus mengaktifkan SWP agar memiliki kemampuan inspeksi 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 seharusnya gagal karena SWP tidak dikonfigurasi untuk memeriksa TLS dan tidak dapat mengevaluasi jalur berdasarkan aturan applicationMatcher.
Keluar dari clenta.
16. Aktifkan TLS Inspection
Tanpa TLS Inspection, 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
- Minta useragent
Buat Akun Layanan
Akun layanan ini akan memiliki izin untuk membuat sertifikat untuk inspeksi SWP TLS.
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
Membuat Root CA
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"
Membuat 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 TLS Inspection
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 Inspeksi TLS
gcloud network-security tls-inspection-policies import $prefix-tls-inspection \ --source=/tmp/tls-inspection-policy.yaml \ --location=$region
Memperbarui Kumpulan CA agar dapat menggunakan kebijakan penerbitan sertifikat
gcloud privateca pools update $prefix-ca-pool --issuance-policy=/tmp/tls-issuance-policy.yaml --location=$region
Berikan Izin
Hal ini memungkinkan akun layanan Anda menggunakan kumpulan CA untuk membuat sertifikat.
gcloud privateca pools add-iam-policy-binding $prefix-ca-pool \ --member=$member \ --role='roles/privateca.certificateManager' \ --location=$region
Mengupdate Policy yaml untuk menyertakan inspeksi 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, terapkan kebijakan yang diupdate
gcloud network-security gateway-security-policies import ${prefix}-policy --source=/tmp/policy.yaml --location=${region}
Memperbarui aturan untuk menyertakan pemeriksaan TLS
Selanjutnya, tentukan aturan apa yang harus membuat pemeriksaan TLS "enabtlsInspectionEnabled: true" penanda.
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 diperbarui
gcloud network-security gateway-security-policies rules import rule-com --source=/tmp/rule-com.yaml --location=${region} --gateway-security-policy=${prefix}-policy
17. Menguji Inspeksi TLS
SSH ke VM komputasi clienta. VM ini memiliki variabel lingkungan yang ditetapkan untuk menggunakan Cloud SWP.
Dari cloudshell:
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, pengujiannya 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>
Kami 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
- Cloud SWP dan manfaatnya!