Halaman ini menjelaskan contoh konfigurasi kebijakan keamanan untuk berbagai jenis load balancer dan kebijakan keamanan.
Mengonfigurasi kebijakan keamanan untuk Load Balancer Aplikasi eksternal
Berikut adalah langkah-langkah tingkat tinggi untuk mengonfigurasi kebijakan keamanan Google Cloud Armor guna mengaktifkan aturan yang mengizinkan atau menolak traffic ke Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik:
- Membuat kebijakan keamanan Google Cloud Armor.
- Tambahkan aturan ke kebijakan keamanan berdasarkan daftar alamat IP, ekspresi kustom, atau kumpulan ekspresi yang telah dikonfigurasi sebelumnya.
- Pasang kebijakan keamanan ke layanan backend Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik yang aksesnya ingin Anda kontrol.
- Perbarui kebijakan keamanan sesuai kebutuhan.
Pada contoh berikut, Anda membuat dua kebijakan keamanan Google Cloud Armor dan menerapkannya ke layanan backend yang berbeda.
Berikut adalah kebijakan keamanan Google Cloud Armor dalam contoh berikut:
mobile-clients-policy
berlaku untuk pengguna eksternal layanangames
Anda.internal-users-policy
berlaku untuk timtest-network
organisasi Anda.
Anda menerapkan mobile-clients-policy
ke layanan games
, yang layanan backend-nya
disebut games
, dan menerapkan internal-users-policy
ke layanan test
internal
untuk tim pengujian, yang layanan backend terkaitnya disebut
test-network
.
Jika backend instance untuk layanan backend berada di beberapa region, kebijakan keamanan Google Cloud Armor yang terkait dengan layanan tersebut akan berlaku untuk instance di semua region. Pada contoh sebelumnya, kebijakan keamanan mobile-clients-policy
berlaku untuk instance 1, 2, 3, dan 4 di us-central
serta untuk instance 5 dan 6 di us-east
.
Membuat contoh
Gunakan petunjuk ini untuk membuat contoh konfigurasi yang dibahas di bagian sebelumnya.
Konsol
Konfigurasi kebijakan keamanan untuk pengguna eksternal:
Di konsol Google Cloud, buka halaman kebijakan Google Cloud Armor.
Klik Buat kebijakan.
Di kolom Name, masukkan
mobile-clients-policy
.Di kolom Description, masukkan
Policy for external users
.Untuk Default rule action, pilih Deny.
Untuk Status penolakan, pilih 404 (Not Found).
Klik Langkah berikutnya.
Tambahkan aturan lainnya:
- Klik Tambahkan Aturan.
- Di kolom Description, masukkan
allow traffic from 192.0.2.0/24
. - Untuk Mode, pilih Mode dasar (khusus alamat/rentang IP).
- Di kolom Pencocokan, masukkan
192.0.2.0/24
. - Untuk Action, pilih Allow.
- Di kolom Priority, masukkan
1000
. - Klik Done.
- Klik Langkah berikutnya.
Terapkan kebijakan ke target:
- Klik Add Target.
- Dalam daftar Target, pilih target.
- Klik Done.
- Klik Create policy.
Secara opsional, aktifkan Perlindungan Adaptif Google Cloud Armor:
- Untuk mengaktifkan Perlindungan Adaptif, centang kotak Aktifkan.
Konfigurasi kebijakan keamanan untuk pengguna internal:
- Klik Buat kebijakan.
- Di kolom Name, masukkan
internal-users-policy
. - Di kolom Description, masukkan
Policy for internal test users
. - Untuk Default rule action, pilih Deny.
- Untuk Deny status, pilih 502 (Bad Gateway).
- Klik Langkah berikutnya.
Tambahkan aturan lainnya:
- Klik Tambahkan Aturan.
- Di kolom Description, masukkan
allow traffic from 198.51.100.0/24
. - Untuk Mode, pilih Mode dasar (khusus alamat/rentang IP).
- Di kolom Pencocokan, masukkan
198.51.100.0/24
. - Untuk Action, pilih Allow.
- Untuk Hanya pratinjau, centang kotak Aktifkan.
- Di kolom Priority, masukkan
1000
. - Klik Done.
- Klik Langkah berikutnya.
Terapkan kebijakan ke target:
- Klik Add Target.
- Dalam daftar Target, pilih target.
- Klik Done.
- Klik Create policy.
gcloud
Buat kebijakan keamanan Google Cloud Armor:
gcloud compute security-policies create mobile-clients-policy \ --description "policy for external users"
gcloud compute security-policies create internal-users-policy \ --description "policy for internal test users"
Perbarui aturan default pada kebijakan keamanan untuk menolak traffic:
gcloud compute security-policies rules update 2147483647 \ --security-policy mobile-clients-policy \ --action "deny-404"
gcloud compute security-policies rules update 2147483647 \ --security-policy internal-users-policy \ --action "deny-502"
Tambahkan aturan ke kebijakan keamanan:
gcloud compute security-policies rules create 1000 \ --security-policy mobile-clients-policy \ --description "allow traffic from 192.0.2.0/24" \ --src-ip-ranges "192.0.2.0/24" \ --action "allow"
gcloud compute security-policies rules create 1000 \ --security-policy internal-users-policy \ --description "allow traffic from 198.51.100.0/24" \ --src-ip-ranges "198.51.100.0/24" \ --action "allow"
Lampirkan kebijakan keamanan ke layanan backend:
gcloud compute backend-services update games \ --security-policy mobile-clients-policy
gcloud compute backend-services update test-network \ --security-policy internal-users-policy
Secara opsional, aktifkan Perlindungan Adaptif:
gcloud compute security-policies update mobile-clients-policy \ --enable-layer7-ddos-defense
gcloud compute security-policies update internal-users-policy \ --enable-layer7-ddos-defense
Membuat kebijakan keamanan
Anda dapat menggunakan Google Cloud Console atau gcloud CLI untuk membuat kebijakan keamanan. Petunjuk di bagian ini mengasumsikan bahwa Anda mengonfigurasi kebijakan keamanan agar diterapkan ke Load Balancer Aplikasi eksternal global yang ada atau Load Balancer Aplikasi dan layanan backend klasik. Untuk contoh cara mengisi kolom, lihat Membuat contoh.
Konsol
Buat kebijakan dan aturan keamanan Google Cloud Armor, lalu lampirkan kebijakan keamanan ke layanan backend:
Di konsol Google Cloud, buka halaman kebijakan Google Cloud Armor.
Klik Buat kebijakan.
Di kolom Name, masukkan nama kebijakan Anda.
Opsional: Masukkan deskripsi kebijakan.
Untuk Jenis kebijakan, pilih Kebijakan keamanan backend atau Kebijakan keamanan Edge.
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 hanya berlaku jika tidak ada aturan lain yang berlaku.
Jika Anda mengonfigurasi aturan Tolak, pilih pesan Status tolak. Ini adalah pesan error yang ditampilkan Google Cloud Armor jika pengguna yang tidak memiliki akses mencoba mendapatkan akses.
Apa pun jenis aturan yang Anda konfigurasi, klik Langkah berikutnya.
Tambahkan aturan lainnya:
- Klik Tambahkan Aturan.
- Opsional: Masukkan deskripsi untuk aturan.
Pilih mode:
- Mode dasar: mengizinkan atau menolak traffic berdasarkan alamat IP atau rentang IP.
- Mode lanjutan: mengizinkan atau menolak traffic berdasarkan ekspresi aturan.
Di kolom Match, tentukan kondisi tempat aturan diterapkan:
- Mode dasar: masukkan alamat IP atau rentang IP untuk dicocokkan dalam aturan.
- Mode lanjutan: masukkan ekspresi atau subekspresi untuk dievaluasi terhadap permintaan 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 Aktifkan. Dalam mode pratinjau, Anda dapat melihat perilaku aturan, tetapi aturan tersebut tidak diaktifkan.
Masukkan Prioritas aturan. Nilai ini dapat berupa bilangan bulat positif dari 0 hingga 2.147.483.646 inklusif. Untuk mengetahui informasi selengkapnya tentang urutan evaluasi, lihat Urutan evaluasi aturan.
Klik Done.
Untuk menambahkan aturan lainnya, klik Tambahkan aturan dan ulangi langkah sebelumnya. Jika tidak, klik Langkah berikutnya.
Terapkan kebijakan ke target:
- Klik Add Target.
- Dalam daftar Target, pilih target.
- Untuk menambahkan target lainnya, klik Tambahkan Target.
- Klik Done.
- Klik Create policy.
gcloud
Untuk membuat kebijakan keamanan Google Cloud Armor baru, gunakan perintah
gcloud compute security-policies create
.Di kolom
type
, gunakanCLOUD_ARMOR
untuk membuat kebijakan keamanan backend atauCLOUD_ARMOR_EDGE
untuk membuat kebijakan keamanan edge. Tandatype
bersifat 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 memperbarui kebijakan yang Anda buat sebelumnya, mengaktifkan penguraian JSON, dan mengubah level log menjadi
VERBOSE
:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSE
Untuk 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
PRIORITY
dengan 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/24
dan198.51.100.0/24
. Aturan ini memiliki prioritas 1.000, 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 tanda
--preview
, aturan ditambahkan ke kebijakan, tetapi tidak diterapkan, dan traffic apa pun yang memicu aturan hanya dicatat ke dalam log.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" \ --preview
Gunakan tanda
--expression
untuk 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.4
dan berisi stringexample
pada header agen pengguna:gcloud beta 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
AU
yang 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('/bad_path/')" \ --action "deny-403" \ --description "regex block"
Perintah berikut menambahkan aturan untuk memblokir permintaan jika nilai header
user-id
yang didekode oleh Base64 berisi 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 kumpulan ekspresi yang telah dikonfigurasi untuk memitigasi serangan SQLi:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredExpr('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 "evaluatePreconfiguredExpr('sourceiplist-fastly')" \ --action "allow"
Mengonfigurasi kebijakan keamanan untuk Load Balancer Aplikasi eksternal regional
Bagian ini berisi informasi cara mengonfigurasi kebijakan keamanan Google Cloud Armor yang dicakup secara regional untuk Load Balancer Aplikasi eksternal regional.
Melindungi workload yang di-load balanced secara regional
Gunakan langkah-langkah berikut untuk mengonfigurasi kebijakan keamanan guna melindungi layanan backend yang tercakup secara regional:
Buat kebijakan keamanan cakupan regional.
gcloud beta compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
Lampirkan kebijakan keamanan cakupan regional ke layanan backend cakupan regional. Ganti
BACKEND_NAME
dengan nama layanan backend cakupan regional yang ada.gcloud beta compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
Menerapkan kebijakan keamanan Google Cloud Armor yang dicakup secara regional
Pertimbangkan contoh Anda sebagai administrator keamanan yang ingin memenuhi persyaratan residensi bahwa semua beban kerja backend dan aturan WAF di-deploy di region tertentu. Asumsikan bahwa Anda telah melakukan hal berikut sebelumnya:
- Anda telah membuat layanan backend load balancing yang dicakup secara regional di region tersebut.
- Anda menonaktifkan semua kebijakan keamanan yang memiliki cakupan global yang ada dalam deployment Anda.
- Anda telah membuat dan melampirkan kebijakan keamanan yang dicakup secara regional di region yang sama (seperti di bagian sebelumnya).
Anda dapat menambahkan aturan WAF dan aturan lanjutan lainnya ke kebijakan sekaligus memenuhi persyaratan dengan menggunakan contoh perintah berikut:
Tambahkan aturan WAF ke kebijakan:
gcloud beta compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredExpr('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGION
Tambahkan aturan lanjutan ke kebijakan:
gcloud beta compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGION
Tambahkan aturan pembatasan kapasitas ke kebijakan:
gcloud beta 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 selanjutnya
- Mengonfigurasi kebijakan keamanan Google Cloud Armor
- Pelajari pembatasan kapasitas lebih lanjut.