Halaman ini memberikan praktik terbaik untuk mengoptimalkan dan menyesuaikan deployment Google Cloud Armor.
Cloud Armor di-deploy dengan Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi klasik, atau Load Balancer Jaringan proxy eksternal. Saat men-deploy Cloud Armor, Anda melampirkan kebijakan keamanan ke layanan backend load balancer yang ingin Anda lindungi. Kebijakan keamanan terdiri dari kumpulan aturan khusus dan yang telah dikonfigurasi sebelumnya yang Anda tentukan.
Untuk menyiapkan kebijakan Cloud Armor yang diterapkan secara otomatis ke semua project dalam organisasi Anda, dan memungkinkan setiap project menambahkan aturan spesifiknya sendiri, lihat panduan tentang mengelola Cloud Armor menggunakan batasan kustom. Pendekatan ini memberikan cara terpusat untuk menerapkan kebijakan keamanan di seluruh organisasi Anda sekaligus mempertahankan fleksibilitas untuk kebutuhan setiap project.
Pembuatan kebijakan dan aturan keamanan
Bagian berikut berisi praktik terbaik dan rekomendasi untuk kebijakan dan aturan keamanan baru.
Memberikan deskripsi aturan
Gunakan deskripsi aturan untuk memberikan konteks tambahan tentang alasan setiap aturan dibuat dan fungsi aturan yang dimaksud. Kolom deskripsi dibatasi hingga 64 karakter, sehingga referensi ke database pengelolaan konfigurasi atau repositori lain adalah cara paling efisien untuk mendapatkan konteks.
Mempertimbangkan interval prioritas
Saat pertama kali mengonfigurasi aturan, sisakan interval minimal 10 di antara setiap nilai prioritas aturan. Misalnya, dua aturan pertama dalam kebijakan keamanan dapat memiliki prioritas 20 dan 30. Hal ini memungkinkan Anda menyisipkan lebih banyak aturan saat Anda membutuhkannya. Selain itu, sebaiknya kelompokkan aturan serupa ke dalam blok, dengan interval yang lebih besar di antara grup.
Menggunakan mode pratinjau
Aturan kebijakan keamanan, termasuk tanda tangan Open Web Application Security Project (OWASP), dapat memberikan efek yang tidak dapat diprediksi pada aplikasi Anda. Gunakan mode pratinjau, untuk mengevaluasi apakah pengenalan aturan akan berdampak negatif pada traffic produksi.
Mengaktifkan Google Cloud Armor Adaptive Protection
Aktifkan Adaptive Protection untuk perlindungan tambahan aplikasi Anda. Adaptive Protection memantau traffic dan (jika perlu) merekomendasikan aturan baru untuk kebijakan keamanan Anda. Selain itu, sebaiknya Anda menerapkan kebijakan pemberitahuan untuk memastikan orang yang tepat diberi tahu tentang potensi serangan. Adaptive Protection paling cocok untuk perlindungan volumetrik. Serangan yang tidak bersifat volumetrik mungkin tidak memicu Adaptive Protection.
Mengaktifkan penguraian JSON
Jika aplikasi Anda mengirimkan konten JSON di isi permintaan, pastikan Anda mengaktifkan penguraian JSON. Jika Anda tidak mengaktifkan penguraian JSON, Cloud Armor tidak mengurai konten JSON isi permintaan untuk aturan WAF yang telah dikonfigurasi sebelumnya, dan hasilnya dapat bervariasi serta menghasilkan positif palsu. Untuk mengetahui informasi tambahan, lihat penguraian JSON.
Menguji logika Anda
Aturan dipicu saat kondisi kecocokannya bernilai benar; misalnya,
kondisi kecocokan origin.region_code == 'AU' bernilai benar jika kode
wilayah permintaan adalah AU. Jika aturan dengan prioritas lebih tinggi dievaluasi sebagai benar, maka
tindakan dalam aturan dengan prioritas lebih rendah akan diabaikan.
Dalam contoh berikut, bayangkan Anda ingin membuat kebijakan keamanan untuk
memblokir pengguna dari region AU, kecuali traffic dalam rentang alamat IP
10.10.10.0/24. Pertimbangkan kebijakan keamanan berikut dengan dua aturan:
Rule1
expr: inIpRange(origin.ip, '10.10.10.0/24')
action: allow
priority: 1
Rule2
expr: origin.region_code == 'AU'
action: deny(403)
priority: 2
Dalam contoh ini, Rule1 mengizinkan traffic yang berasal dari rentang
alamat IP 10.10.10.0/24. Karena Rule1 adalah aturan dengan prioritas lebih tinggi, traffic tersebut
diizinkan sebelum dievaluasi terhadap Rule2, yang berarti bahwa
Cloud Armor tidak mengevaluasinya terhadap Rule2 (atau aturan
lainnya yang tersisa).
Untuk mencapai pengecualian serupa dalam satu aturan, Anda dapat menggabungkan kondisi
pencocokan menggunakan operator logika. Penting untuk diperhatikan bahwa pendekatan ini
berbeda dengan contoh dua aturan dalam cara evaluasi aturan berikutnya. Misalnya,
ekspresi berikut menggunakan satu aturan yang menolak traffic AU kecuali
jika berasal dari rentang IP tertentu 10.10.10.0/24:
expr: origin.region_code == 'AU' && !inIpRange(origin.ip