Praktik terbaik Cloud Armor

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