Dokumen ini memberikan arsitektur referensi untuk aplikasi web yang dihosting di Google Cloud. Arsitektur ini menggunakan front end global yang menggabungkan praktik terbaik Google Cloud untuk membantu menskalakan, mengamankan, dan mempercepat pengiriman aplikasi Anda yang terhubung ke internet. Arsitekturnya mencakup dukungan untuk Cloud Build, serta alat continuous integration (CI) dan continuous delivery (CD) pihak ketiga seperti Jenkins dan GitLab. Arsitektur ini ditujukan bagi developer dan pemilik aplikasi yang ingin menskalakan aplikasi mereka dengan load balancer, serta melindungi aplikasi mereka dari serangan distributed denial of service (DDoS) maupun serangan berbasis web menggunakan firewall aplikasi web (WAF).
Arsitektur
Diagram berikut menunjukkan arsitektur yang dijelaskan dalam dokumen ini.
Dalam arsitektur ini, aplikasi di-load balanced dengan Load Balancer Aplikasi eksternal global, yang mendistribusikan traffic HTTP dan HTTPS di beberapa backend instance, di beberapa region. Cloud CDN mempercepat aplikasi yang terhubung ke internet menggunakan titik kehadiran (PoP) Google dan bekerja sama dengan Load Balancer Aplikasi eksternal global untuk mengirimkan konten kepada pengguna. Backend dilindungi oleh kebijakan keamanan Google Cloud Armor yang menyediakan pemfilteran Lapisan 7 dengan menghapus permintaan masuk untuk serangan web umum atau atribut Lapisan 7 lainnya, sehingga membantu memblokir traffic sebelum mencapai layanan backend dengan load balancing. Perlindungan terhadap serangan DDoS volumetrik diaktifkan secara default.
Saat pengguna meminta konten dari layanan Anda, permintaan tersebut dikirim ke front end global untuk aplikasi yang terhubung ke internet, yang disediakan oleh Jaringan Lintas Cloud. Permintaan ini dievaluasi oleh kebijakan keamanan Google Cloud Armor, dimulai dengan kebijakan keamanan edge Google Cloud Armor. Jika permintaan diizinkan dan dapat dipenuhi oleh Cloud CDN, konten akan diambil dari cache Google Cloud Armor dan dikirim kembali ke pengguna. Jika permintaan menyebabkan cache tidak ditemukan, permintaan akan dievaluasi oleh kebijakan backend, lalu, menurut aturan kebijakan, ditolak atau dipenuhi oleh server backend.
Komponen arsitektur
Diagram sebelumnya mencakup komponen berikut:
Load Balancer Aplikasi eksternal global: Load Balancer Aplikasi ini adalah load balancer Lapisan 7 berbasis proxy yang memungkinkan Anda menjalankan dan menskalakan layanan. Load Balancer Aplikasi mendistribusikan traffic HTTP dan HTTPS ke backend yang dihosting di berbagai platform Google Cloud. Load Balancer Aplikasi memiliki fitur berikut:
- Backend yang dapat dikonfigurasi: Arsitektur ini menggunakan dua Grup Instance Terkelola (MIG) di region yang berbeda, tetapi Anda dapat mengonfigurasi backend apa pun yang didukung Load Balancer Aplikasi eksternal global. Anda dapat menggunakan load balancer yang sama untuk aplikasi GKE, Cloud Run, Cloud Functions, dan App Engine, serta yang dihosting di infrastruktur lokal dan cloud lain menggunakan konfigurasi backend yang berbeda. Untuk mempelajari lebih lanjut, baca bagian Ringkasan Load Balancer Aplikasi.
- Pembagian traffic: Anda dapat menggunakan Load Balancer Aplikasi untuk pengelolaan traffic, termasuk pengelolaan versi software dengan mengirim pengguna yang berbeda ke server backend yang berbeda. Dalam arsitektur yang dijelaskan dalam dokumen ini, ada pemisahan traffic sederhana 60/40. Namun, Anda dapat mengubah pemisahan ini untuk membuat skema pengelolaan traffic yang lebih kompleks. Untuk mempelajari opsi konfigurasi tambahan, lihat waktu tunggu dan percobaan ulang yang dapat dikonfigurasi dan tentukan mode keseimbangan pilihan Anda.
Cloud CDN: Platform Cloud CDN bertindak sebagai cache. Layanan ini di-deploy dengan server origin untuk menyediakan rangkaian lengkap fitur Cloud CDN, termasuk QUIC dan HTTP/2, serta kontrol perutean dan cache. Pendekatan ini memungkinkan aplikasi Anda melakukan penskalaan secara global tanpa mengorbankan performa, dan juga mengurangi biaya bandwidth dan komputasi front-end. Konfigurasi default yang digunakan front end global didasarkan pada praktik terbaik penayangan konten Cloud CDN dan praktik terbaik keamanan web.
Google Cloud Armor: Komponen ini mencakup aturan Perlindungan DDoS dan WAF. Arsitektur ini memiliki konfigurasi Google Cloud Armor dasar berikut, yang membantu memitigasi vektor ancaman umum:
Perlindungan default terhadap serangan DDoS volumetrik (Lapisan 3 dan Lapisan 4).
Aturan WAF yang telah dikonfigurasi sebelumnya berdasarkan CRS 3.3 Aturan Inti ModSecurity. Dengan aturan ini, Google Cloud Armor dapat mengevaluasi puluhan tanda tangan traffic yang berbeda dengan mengacu pada aturan yang telah diberi nama, alih-alih mengharuskan Anda menentukan setiap tanda tangan secara manual.
Konfigurasi dasar kebijakan keamanan edge Google Cloud Armor untuk memfilter permintaan masuk dan mengontrol akses ke layanan backend yang dilindungi serta bucket Cloud Storage.
Produk yang digunakan
Arsitektur referensi ini menggunakan produk Google Cloud berikut:
Pertimbangan desain
Bagian ini berisi panduan untuk membantu Anda menggunakan dokumen ini sebagai titik awal untuk mengembangkan arsitektur yang memenuhi persyaratan spesifik Anda terkait keamanan, keandalan, efisiensi operasional, biaya, dan performa.
Keamanan, privasi, dan kepatuhan:
Bagian ini menjelaskan faktor-faktor tambahan yang harus Anda pertimbangkan saat menggunakan arsitektur referensi ini untuk men-deploy aplikasi web.
Menetapkan dasar pengukuran keamanan
Untuk membantu meningkatkan keamanan Anda lebih lanjut, arsitektur yang dijelaskan dalam dokumen ini juga kompatibel dengan blueprint Enterprise Foundation. Blueprint membantu organisasi yang menggunakan Google Cloud menetapkan dasar pengukuran yang aman untuk semua workload mendatang, termasuk penyiapan Identity and Access Management (IAM), Cloud Key Management Service, dan Security Command Center.
Melindungi data pengguna dengan Cloud CDN
Dalam arsitektur ini, kami menyarankan Anda untuk tidak meng-cache konten khusus pengguna.
Untuk menyimpan jenis konten HTML (text/html
) dan JSON (application/json
) dalam cache, tetapkan header kontrol cache eksplisit dalam respons Cloud CDN. Pastikan Anda tidak meng-cache satu data pengguna dan menayangkannya kepada semua pengguna.
Mengontrol akses ke aplikasi dengan IAP
Arsitektur ini juga kompatibel dengan Identity-Aware Proxy (IAP). IAP memverifikasi identitas pengguna, lalu menentukan apakah pengguna harus diizinkan untuk mengakses aplikasi. Jika ingin mengaktifkan IAP untuk Load Balancer Aplikasi untuk mode eksternal global atau mode klasik, Anda dapat mengaktifkannya di layanan backend load balancer. Permintaan HTTP/HTTPS masuk dievaluasi oleh Google Cloud Armor sebelum dikirim untuk load balancing oleh Load Balancer Aplikasi. Jika Google Cloud Armor memblokir permintaan, IAP tidak akan mengevaluasi permintaan tersebut. Jika Google Cloud Armor mengizinkan permintaan, IAP akan mengevaluasi permintaan tersebut. Permintaan akan diblokir jika IAP tidak mengautentikasi permintaan. Untuk mempelajari lebih lanjut, lihat Mengintegrasikan Google Cloud Armor dengan produk Google lainnya.
Pengoptimalan biaya
Sebagai panduan umum, penggunaan Cloud CDN bersama dengan Google Cloud Armor dapat membantu meminimalkan efek biaya transfer data.
Cloud CDN
Objek statis yang disalurkan ke klien dari cache tidak akan transit melalui load balancer. Strategi caching yang efektif dapat mengurangi jumlah data keluar yang diproses oleh load balancer dan menurunkan biaya Anda.
Google Cloud Armor
Google Cloud Armor membantu Anda menurunkan biaya dengan mencegah akun Anda ditagih untuk traffic yang tidak diinginkan. Permintaan yang diblokir oleh Google Cloud Armor tidak menghasilkan respons dari aplikasi Anda, sehingga secara efektif mengurangi jumlah data keluar yang diproses oleh load balancer. Efek pada biaya Anda bergantung pada persentase traffic tidak diinginkan yang diblokir oleh kebijakan keamanan Google Cloud Armor yang Anda terapkan.
Biaya akhir juga dapat bervariasi, bergantung pada jumlah layanan atau aplikasi yang ingin Anda lindungi, jumlah kebijakan dan aturan Google Cloud Armor yang Anda miliki, pengisian cache dan traffic keluar, serta volume data. Untuk mempelajari lebih lanjut, lihat referensi berikut:
- Harga Google Cloud Armor
- Harga Cloud Load Balancing
- Harga Cloud CDN
- Untuk menemukan harga skenario deployment tertentu, lihat kalkulator harga Google Cloud
Deployment
Untuk men-deploy arsitektur referensi ini, gunakan contoh Terraform.
Untuk mempelajari lebih lanjut, lihat file README
.
Folder web_app_protection_example
berisi
file
(main.tf
). Kode dalam file ini membuat arsitektur yang dijelaskan dalam dokumen ini,
dan memberikan dukungan tambahan untuk deployment otomatis.
Struktur folder dalam folder Terraform adalah sebagai berikut:
- Repositori kode sumber: Contoh Perlindungan Aplikasi Web adalah bagian dari repositori Perlindungan Aplikasi Web dan API (WAAP).
- CD dan CI: Folder build
berisi file deskriptif berikut untuk Jenkins, GitLab, dan Cloud Build:
- Jenkins: Repositori ini mencakup file Jenkins yang berisi aturan yang dijalankan oleh pipeline.
- GitLab: Repositori ini mencakup file YAML.gitlab-ci yang berisi aturan yang dijalankan oleh pipeline GitLab.
- Cloud Build: Repositori ini mencakup file Cloud Build yang berisi aturan berdasarkan nama cabang.
- Repositori menyertakan opsi untuk deployment multi-lingkungan (produksi dan pengembangan). Untuk mengetahui informasi selengkapnya, lihat
file
README
.
Jika Anda melakukan perubahan pada cabang mana pun yang menjadi dasar pipeline Anda, perubahan tersebut memicu proses pipeline dijalankan dan perubahan akan diintegrasikan ke dalam rilis baru setelah selesai. Saat Anda menarik toolkit untuk pertama kalinya, solusi akan dimuat ke project Google Cloud yang Anda pilih.
Langkah selanjutnya
Pelajari lebih lanjut praktik terbaik untuk produk Google Cloud yang digunakan dalam arsitektur referensi ini:
- Praktik terbaik keamanan web
- Praktik terbaik performa Load Balancer Aplikasi Eksternal
- Praktik terbaik pengiriman konten
- Praktik terbaik untuk menyesuaikan aturan WAF Google Cloud Armor
Cloud Armor Enterprise: Kemampuan Google Cloud Armor dalam arsitektur ini tersedia di tingkat Google Cloud Armor Standard. Dengan mendaftarkan project ke Cloud Armor Enterprise, Anda dapat menggunakan fitur tambahan seperti berikut:
- Threat Intelligence, yang memungkinkan Anda mengizinkan atau memblokir traffic ke Load Balancer Aplikasi eksternal berdasarkan beberapa kategori data kecerdasan ancaman.
- Adaptive Protection, yang membantu melindungi aplikasi, situs, dan layanan Google Cloud Anda dari serangan DDoS Lapisan 7 seperti HTTP flood, serta aktivitas berbahaya Lapisan 7 (level aplikasi) frekuensi tinggi lainnya. Perlindungan Adaptif membangun model machine learning yang mendeteksi dan memperingatkan aktivitas anomali, membuat tanda tangan yang menjelaskan potensi serangan, dan membuat aturan WAF Google Cloud Armor kustom untuk memblokir tanda tangan.
- Visibilitas serangan DDoS, yang memberikan visibilitas melalui metrik, serta logging peristiwa seperti upaya serangan volumetrik Lapisan 3 Lapisan 4.
- Layanan tambahan seperti dukungan respons DDoS dan perlindungan tagihan DDoS. Untuk mempelajari lebih lanjut, lihat Ringkasan Cloud Armor Enterprise
Untuk mengetahui lebih banyak tentang arsitektur referensi, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.
Kontributor
Penulis:
- Lihi Shadmi | Product Manager
- David Tu | Customer Engineer
Kontributor lainnya:
- Alex Maclinovsky | Arsitek Perusahaan
- Anderson Duboc | Customer Engineer
- Grant Sorbo | Arsitek Solusi
- Michele Chubirka | Advokat Keamanan Cloud
- Rob Harman | Manajer Engineer Solusi Teknis
- Susan Wu | Outbound Product Manager