Halaman ini menjelaskan contoh konfigurasi kebijakan keamanan untuk berbagai jenis load balancer dan kebijakan keamanan.
Contoh kebijakan keamanan
Membuat kebijakan keamanan
Anda dapat menggunakan konsol Cloud de Confiance atau gcloud CLI untuk membuat kebijakan keamanan. Petunjuk di bagian ini mengasumsikan bahwa Anda sedang mengonfigurasi kebijakan keamanan untuk diterapkan ke Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik dan layanan backend yang sudah ada. Untuk contoh cara mengisi kolom, lihat Membuat contoh.
Konsol
Buat kebijakan dan aturan keamanan Cloud Armor, lalu lampirkan kebijakan keamanan ke layanan backend:
Di konsol Cloud de Confiance , buka halaman Google Cloud Armor policies.
Klik Create policies.
Di kolom Name, masukkan nama kebijakan Anda.
Opsional: Masukkan deskripsi kebijakan.
Untuk Policy type, pilih Backend security policy atau Edge security policy.
Untuk Default rule action, pilih Allow untuk aturan default yang mengizinkan akses, atau pilih Deny untuk aturan default yang melarang akses ke alamat IP atau rentang alamat IP.
Aturan default adalah aturan prioritas terendah yang berlaku hanya jika tidak ada aturan lain yang berlaku.
Jika Anda mengonfigurasi aturan Deny, pilih pesan Deny status. Ini adalah pesan error yang ditampilkan Cloud Armor jika pengguna tanpa akses mencoba mendapatkan akses.
Apa pun jenis aturan yang Anda konfigurasi, klik Next step.
Tambahkan lebih banyak aturan:
- Klik Add rule.
- Opsional: Masukkan deskripsi untuk aturan.
Pilih mode:
- Basic mode: mengizinkan atau menolak traffic berdasarkan alamat IP atau rentang IP.
- Advanced mode: mengizinkan atau menolak traffic berdasarkan ekspresi aturan.
Di kolom Match, tentukan kondisi saat aturan berlaku:
- Basic mode: masukkan alamat IP atau rentang IP yang akan dicocokkan dalam aturan.
- Advanced mode: masukkan ekspresi atau subekspresi untuk dievaluasi terhadap permintaan yang masuk. Untuk mengetahui informasi tentang cara menulis ekspresi, lihat Mengonfigurasi atribut bahasa aturan kustom.
Untuk Action, pilih Allow atau Deny untuk mengizinkan atau menolak traffic jika aturan cocok.
Untuk mengaktifkan mode pratinjau, centang kotak Enable. Dalam mode pratinjau, Anda dapat melihat perilaku aturan, tetapi aturan tidak diaktifkan.
Masukkan Priority aturan. Nilai ini dapat berupa bilangan bulat positif apa pun dari 0 hingga 2.147.483.646 inklusif. Untuk mengetahui informasi selengkapnya tentang urutan evaluasi, lihat Urutan evaluasi aturan.
Klik Done.
Untuk menambahkan lebih banyak aturan, klik Add rule dan ulangi langkah-langkah sebelumnya. Jika tidak, klik Next step.
Terapkan kebijakan ke target:
- Klik Add Target.
- Dalam daftar Target, pilih target.
- Untuk menambahkan lebih banyak target, klik Add Target.
- Klik Done.
- Klik Create policy.
gcloud
Untuk membuat kebijakan keamanan Cloud Armor baru, gunakan perintah
gcloud compute security-policies create.Di kolom
type, gunakanCLOUD_ARMORuntuk membuat kebijakan keamanan backend atauCLOUD_ARMOR_EDGEuntuk membuat kebijakan keamanan edge. Flagtypebersifat opsional; jika tidak ada jenis yang ditentukan, kebijakan keamanan backend akan dibuat secara default:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]
Ganti kode berikut:
NAME: nama kebijakan keamananDESCRIPTION: deskripsi kebijakan keamanan
Perintah berikut mengupdate kebijakan yang sebelumnya Anda buat, mengaktifkan penguraian JSON, dan mengubah tingkat log menjadi
VERBOSE:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSEUntuk menambahkan aturan ke kebijakan keamanan, gunakan perintah
gcloud compute security-policies rules create PRIORITY.gcloud compute security-policies rules create PRIORITY \ [--security-policy POLICY_NAME] \ [--description DESCRIPTION] \ --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ [--preview]Ganti
PRIORITYdengan prioritas yang ditetapkan ke aturan dalam kebijakan. Untuk mengetahui informasi tentang cara kerja prioritas aturan, lihat Urutan evaluasi aturan.Misalnya, perintah berikut menambahkan aturan untuk memblokir traffic dari rentang alamat IP
192.0.2.0/24dan198.51.100.0/24. Aturan tersebut memiliki prioritas 1000, dan merupakan aturan dalam kebijakan yang disebutmy-policy.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403"Dengan menambahkan flag
--preview, aturan ditambahkan ke kebijakan, tetapi tidak diterapkan, dan traffic apa pun yang memicu aturan hanya dicatat.gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \ --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \ --action "deny-403" \ --previewGunakan flag
--expressionuntuk menentukan kondisi kustom. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi atribut bahasa aturan kustom. Perintah berikut menambahkan aturan untuk mengizinkan traffic dari alamat IP1.2.3.4dan berisi stringexampledi header agen pengguna:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \ --action allow \ --description "Block User-Agent 'example'"Perintah berikut menambahkan aturan untuk memblokir permintaan jika cookie permintaan berisi nilai tertentu:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')" \ --action "deny-403" \ --description "Cookie Block"Perintah berikut menambahkan aturan untuk memblokir permintaan dari region
AU:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU'" \ --action "deny-403" \ --description "AU block"Perintah berikut menambahkan aturan untuk memblokir permintaan dari region
AUyang tidak berada dalam rentang IP yang ditentukan:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "origin.region_code == 'AU' && !inIpRange(origin.ip, '1.2.3.0/24')" \ --action "deny-403" \ --description "country and IP block"Perintah berikut menambahkan aturan untuk memblokir permintaan dengan URI yang cocok dengan ekspresi reguler:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "request.path.matches('/example_path/')" \ --action "deny-403" \ --description "regex block"Perintah berikut menambahkan aturan untuk memblokir permintaan jika nilai yang didekode Base64 dari header
user-idberisi nilai tertentu:gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \ --action "deny-403" \ --description "country and IP block"Perintah berikut menambahkan aturan yang menggunakan set ekspresi yang telah dikonfigurasi sebelumnya untuk memitigasi serangan SQLi:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredWaf('sqli-stable')" \ --action "deny-403"Perintah berikut menambahkan aturan yang menggunakan ekspresi yang telah dikonfigurasi sebelumnya untuk mengizinkan akses dari semua alamat IP dalam daftar alamat IP bernama:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredWaf('sourceiplist-fastly')" \ --action "allow"
Mengonfigurasi kebijakan keamanan untuk Load Balancer Aplikasi eksternal regional
Bagian ini berisi informasi tentang cara mengonfigurasi kebijakan keamanan Cloud Armor dengan cakupan regional untuk Load Balancer Aplikasi eksternal regional.
Melindungi workload yang di-load balance secara regional
Gunakan langkah-langkah berikut untuk mengonfigurasi kebijakan keamanan guna melindungi layanan backend yang tercakup secara regional:
Buat kebijakan keamanan dengan cakupan regional.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Lampirkan kebijakan keamanan dengan cakupan regional ke layanan backend dengan cakupan regional. Ganti
BACKEND_NAMEdengan nama layanan backend yang ada dan memiliki cakupan regional.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Menerapkan kebijakan keamanan Cloud Armor dengan cakupan regional
Pertimbangkan contoh saat Anda adalah administrator keamanan yang ingin memenuhi persyaratan residensi bahwa semua workload backend dan aturan WAF Anda di-deploy di region tertentu. Asumsikan bahwa Anda telah melakukan tindakan berikut sebelumnya:
- Anda telah membuat layanan backend yang di-load balance dan memiliki cakupan regional di region tersebut.
- Anda menonaktifkan kebijakan keamanan dengan cakupan global yang ada di deployment Anda.
- Anda membuat dan melampirkan kebijakan keamanan dengan cakupan regional di region yang sama (seperti di bagian sebelumnya).
Anda dapat menambahkan aturan WAF dan aturan lanjutan lainnya ke kebijakan sambil memenuhi persyaratan dengan menggunakan contoh perintah berikut:
Tambahkan aturan WAF ke kebijakan:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredWaf('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGIONTambahkan aturan lanjutan ke kebijakan:
gcloud compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGIONTambahkan aturan pembatasan kapasitas ke kebijakan:
gcloud compute security-policies rules create 1000 --action=throttle \ --src-ip-ranges="1.1.1.1/32" \ --rate-limit-threshold-count=1000 \ --rate-limit-threshold-interval-sec=120 \ --conform-action="allow" \ --exceed-action="deny-429" \ --enforce-on-key=IP \ --ban-duration-sec=999 \ --ban-threshold-count=5000 \ --ban-threshold-interval-sec=60 \ --security-policy=POLICY_NAME \ --region=REGION
Langkah berikutnya
- Mengonfigurasi kebijakan keamanan Cloud Armor
- Pelajari lebih lanjut pembatasan kapasitas.