Halaman ini menjelaskan cara mengelola kebijakan keamanan Google Cloud Armor dan memfilter traffic yang masuk ke aplikasi Anda. Kebijakan keamanan Cloud Armor membantu melindungi layanan dan aplikasi web Anda dari serangan distributed denial of service (DDoS) dan ancaman lainnya dari internet. Menerapkan postur keamanan yang kuat memerlukan pengelolaan kebijakan keamanan Anda melalui pembuatan, pengujian, dan konsolidasi. Untuk membuat atau melihat kebijakan keamanan, lihat Membuat dan melihat kebijakan keamanan Cloud Armor.
Mengelola kebijakan keamanan
Bagian berikut menjelaskan cara mencantumkan, memperbarui, menghapus, atau menguji kebijakan keamanan.
Membuat daftar kebijakan keamanan
Ikuti langkah-langkah di bagian ini untuk mencantumkan kebijakan keamanan Cloud Armor di project Anda.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Untuk melihat kebijakan, dalam daftar kebijakan, klik nama kebijakan tertentu tersebut.
gcloud
gcloud compute security-policies list
Contoh:
gcloud compute security-policies list
Output:
NAME: my-policy REGION: us-central1
Untuk informasi selengkapnya, lihat gcloud compute security-policies
list.
Memperbarui kebijakan keamanan
Langkah-langkah di bagian ini menjelaskan cara memperbarui kebijakan keamanan Cloud Armor. Anda dapat mengubah deskripsi kebijakan, mengubah aturan default, mengubah layanan backend target, atau menambahkan aturan.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Temukan nama kebijakan yang ingin Anda perbarui dalam daftar kebijakan, lalu klik Menu untuk kebijakan tersebut.
- Untuk memperbarui deskripsi atau tindakan aturan default, pilih Edit, lakukan perubahan, lalu klik Perbarui.
- Untuk menambahkan aturan, pilih Tambahkan aturan, lalu ikuti langkah-langkah di Menambahkan aturan ke kebijakan keamanan.
- Untuk mengganti layanan backend target, pilih Apply policy to target, klik Add Target, pilih target, lalu klik Add.
gcloud
Untuk memperbarui kebijakan keamanan, gunakan langkah-langkah Google Cloud CLI berikut:
- Untuk memperbarui aturan, lihat Memperbarui satu aturan dalam kebijakan keamanan.
- Untuk menambahkan aturan, lihat Menambahkan aturan ke kebijakan keamanan.
- Untuk menghapus aturan, lihat Menghapus aturan dari kebijakan keamanan.
- Untuk memperbarui beberapa aturan dalam satu update atomik, lihat Memperbarui beberapa aturan secara atomik dalam kebijakan keamanan.
- Untuk memperbarui kolom non-aturan (seperti deskripsi), lihat Mengekspor kebijakan keamanan dan Mengimpor kebijakan keamanan.
Menghapus beberapa kebijakan keamanan
Bagian ini menjelaskan cara menghapus kebijakan keamanan Cloud Armor. Hapus semua layanan backend dari kebijakan sebelum Anda menghapusnya.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Centang kotak di samping kebijakan yang ingin Anda hapus.
Di pojok kanan atas halaman, klik Delete.
gcloud
Gunakan gcloud compute security-policies delete NAME. Ganti
NAME dengan nama kebijakan keamanan:
gcloud compute security-policies delete NAME
Menguji kebijakan keamanan
Sebaiknya deploy semua aturan baru dalam mode pratinjau, lalu periksa log permintaan Anda, untuk memverifikasi bahwa kebijakan dan aturan berfungsi seperti yang diharapkan.
Mengelola aturan kebijakan keamanan
Bagian berikut menjelaskan cara mencantumkan, menambahkan, memperbarui, atau menghapus aturan kebijakan keamanan.
Membuat daftar aturan dalam kebijakan keamanan
Ikuti langkah-langkah di bagian ini untuk membuat daftar aturan dalam kebijakan keamanan Cloud Armor.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Klik nama kebijakan keamanan tertentu. Halaman Policy details menampilkan aturan kebijakan di tab Rules.
gcloud
Gunakan perintah gcloud berikut untuk mencantumkan semua aturan dalam kebijakan keamanan:
gcloud compute security-policies describe NAME \
Gunakan perintah gcloud berikut untuk mencantumkan semua aturan dalam satu kebijakan keamanan di wilayah tertentu beserta deskripsi kebijakan:
gcloud compute security-policies describe NAME \ --region REGION
Gunakan perintah gcloud berikut untuk mendeskripsikan aturan:
gcloud compute security-policies rules describe PRIORITY \
--security-policy POLICY_NAME
Misalnya, perintah berikut menjelaskan aturan dengan prioritas 1000
dalam kebijakan keamanan my-policy:
gcloud compute security-policies rules describe 1000 \
--security-policy my-policy
Output:
action: deny(403) description: block traffic from 192.0.2.0/24 and 198.51.100.0/24 kind: compute#securityPolicyRule match: srcIpRanges: - '192.0.2.0/24' - '198.51.100.0/24' preview: false priority: 1000
Untuk informasi selengkapnya, lihat gcloud compute security-policies
describe.
Menambahkan aturan ke kebijakan keamanan
Ikuti langkah-langkah di bagian ini untuk menambahkan aturan ke kebijakan keamanan Cloud Armor.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Klik nama kebijakan keamanan untuk membuka halaman Policy details.
Di bagian tengah halaman, klik tab Rules.
Klik Add Rule.
Opsional: Masukkan deskripsi aturan.
Pilih mode:
- Basic mode: mengizinkan atau menolak traffic berdasarkan alamat IP atau rentang IP.
- Mode lanjutan: mengizinkan atau menolak traffic berdasarkan ekspresi aturan.
Di kolom Match, tentukan kondisi yang berlaku untuk aturan:
Basic mode: masukkan dari satu (1) hingga 10 rentang alamat IP yang akan dicocokkan dengan aturan. Anda dapat menambahkan maksimal 10 rentang alamat IP. Untuk batas, lihat Kuota dan batas Cloud Armor.
Mode lanjutan:
- Pembuat kondisi kecocokan (Pratinjau): gunakan pembuat visual untuk membuat ekspresi tanpa menulis kode CEL mentah. Gabungkan dan kelompokkan kondisi, lalu terapkan transformasi string. Lihat Menggunakan pembuat kondisi kecocokan.
- Editor kondisi kecocokan: masukkan ekspresi untuk dievaluasi terhadap permintaan yang masuk. Untuk mengetahui informasi selengkapnya, lihat referensi bahasa aturan kustom.
Ekspresi berikut cocok dengan permintaan dari alamat IP
1.2.3.4yang berisi stringexampledi headerUser-Agent:inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')Ekspresi berikut cocok dengan permintaan yang memiliki cookie dengan nilai tertentu:
has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')Ekspresi berikut cocok dengan permintaan dari region
AU:origin.region_code == 'AU'Ekspresi berikut cocok dengan permintaan dari wilayah
AUyang tidak berada dalam rentang IP yang ditentukan:origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')Ekspresi berikut cocok dengan permintaan jika URI cocok dengan ekspresi reguler:
request.path.matches('/example_path/')Ekspresi berikut cocok dengan permintaan jika header
user-idberisi nilai yang dienkode Base64 yang, saat didekode, berisi string tertentu:has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')Ekspresi berikut menggunakan set ekspresi yang telah dikonfigurasi sebelumnya untuk mencocokkan serangan SQLi:
evaluatePreconfiguredWaf('sqli-stable')
Dalam daftar Tindakan, pilih Izinkan atau Tolak.
Jika Anda mengonfigurasi aturan penolakan (Deny), pilih pesan Deny status.
Untuk mengaktifkan mode pratinjau untuk aturan, pilih Aktifkan.
Di kolom Priority, masukkan bilangan bulat positif.
Klik Add.
gcloud
Gunakan perintah gcloud compute security-policies rules create
PRIORITY. Ganti PRIORITY dengan
prioritas aturan dalam kebijakan:
gcloud compute security-policies rules create PRIORITY \
--security-policy POLICY_NAME \
--description DESCRIPTION \
--src-ip-ranges IP_RANGES | --expression EXPRESSION \
--action=[ allow | deny-403 | deny-404 | deny-502 ] \
--preview
Misalnya, perintah berikut menambahkan aturan dengan prioritas 1000 untuk memblokir traffic dari rentang alamat IP 192.0.2.0/24 dan 198.51.100.0/24:
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"
Gunakan flag --expression untuk menentukan kondisi. Perintah
berikut menambahkan aturan untuk mengizinkan traffic dari alamat IP 1.2.3.4 yang
berisi string example di header User-Agent:
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('80=BLAH')" \
--action deny-403 \
--description "Cookie Block"
Perintah berikut menambahkan aturan untuk memblokir permintaan dari wilayah 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('/example_path/')" \
--action deny-502 \
--description "regex block"
Perintah berikut menambahkan aturan untuk memblokir permintaan jika nilai yang didekode Base64
dari header user-id 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 set ekspresi yang telah dikonfigurasi sebelumnya untuk mengatasi serangan SQLi:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "evaluatePreconfiguredWaf('sqli-stable')" \
--action deny-403
Memperbarui satu aturan dalam kebijakan keamanan
Bagian ini menjelaskan cara memperbarui satu aturan dalam kebijakan keamanan Cloud Armor. Untuk memperbarui beberapa aturan secara atomik, lihat Memperbarui beberapa aturan secara atomik dalam kebijakan keamanan.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Klik nama kebijakan keamanan untuk membuka halaman Policy details.
Di bagian tengah halaman, klik tab Rules.
Di samping aturan yang ingin diperbarui, klik Edit. Halaman Edit rule akan ditampilkan.
Lakukan perubahan, lalu klik Update.
gcloud
Gunakan perintah berikut untuk memperbarui aturan. Anda hanya dapat mengupdate satu kebijakan keamanan dalam satu waktu:
gcloud compute security-policies rules update PRIORITY [ \
--security-policy POLICY_NAME \
--description DESCRIPTION \
--src-ip-ranges IP_RANGES | --expression EXPRESSION \
--action=[ allow | deny-403 | deny-404 | deny-502 ] \
--preview
]
Misalnya, perintah berikut mengupdate aturan dengan prioritas 1111 untuk mengizinkan traffic dari rentang alamat IP 192.0.2.0/24:
gcloud compute security-policies rules update 1111 \
--security-policy my-policy \
--description "allow traffic from 192.0.2.0/24" \
--src-ip-ranges "192.0.2.0/24" \
--action "allow"
Untuk mengetahui informasi selengkapnya tentang perintah sebelumnya, lihat gcloud compute
security-policies rules
update.
Untuk memperbarui prioritas aturan, gunakan REST API. Lihat
securityPolicies.patchRule.
Menggunakan pembuat kondisi
Pembuat kondisi kecocokan adalah antarmuka visual di Cloud de Confiance konsol yang membantu Anda membuat ekspresi aturan Cloud Armor yang kompleks tanpa menulis kode Common Expression Language (CEL). Daripada menulis kode, Anda dapat menggunakan UI terstruktur pembangun untuk menggabungkan kondisi dan mengelompokkan logika, yang dapat membantu Anda menghindari error sintaksis dan memvisualisasikan struktur aturan dengan lebih baik. Builder mendukung daftar datar dan logika bertingkat hingga lima tingkat ekspresi. Gunakan alat ini saat Anda mengonfigurasi aturan untuk membantu melindungi backend multi-cloud atau deployment hybrid, yang mungkin mengharuskan Anda memeriksa atribut permintaan tertentu sebelum merutekan traffic.
Fitur pembuat kondisi kecocokan
Pembangun kondisi kecocokan mencakup fitur berikut:
- Logika dan penyusunan bertingkat: gabungkan beberapa kondisi menggunakan operator
ANDdanOR. Penyusun mendukung pengelompokan dan penyusunan hingga lima ekspresi. - Transformasi string: untuk atribut berbasis string (seperti
request.pathataurequest.headers), terapkan transformasi untuk menormalisasi data sebelum evaluasi. Transformasi yang didukung meliputi:- Huruf Kecil dan Huruf Besar
- Decode Base64
- Dekode URL dan Dekode URL (Unicode)
- Konversi UTF-8 ke Unicode
- Penguraian dua arah: beralih antara pembuat kondisi Pencocokan visual dan editor kondisi Pencocokan teks mentah. UI mengurai kode CEL mentah menjadi blok visual secara otomatis.
- Dukungan fungsi: builder menyediakan kontrol UI untuk ekspresi berbasis fungsi, seperti aturan WAF yang telah dikonfigurasi sebelumnya, grup alamat, dan Threat Intelligence.
Batasan
Pembuat kondisi kecocokan adalah antarmuka default untuk pembuatan aturan lanjutan. Jika ekspresi berisi logika yang tidak didukung (seperti makro yang tidak diketahui), pembangun akan dinonaktifkan. Dalam kasus ini, gunakan teks mentah di editor Kondisi pencocokan untuk mengedit aturan.
Selain itu, ketersediaan ekspresi tertentu di builder bergantung pada tingkatan Google Cloud Armor Enterprise project Anda dan jenis kebijakan keamanan.
Memperbarui beberapa aturan secara atomik dalam kebijakan keamanan
Anda dapat menggunakan fitur update atomik untuk menerapkan perubahan pada beberapa aturan dalam satu update. Pembaruan aturan tunggal dapat menyebabkan perilaku yang tidak diinginkan seperti error karena aturan lama dan baru mungkin tumpang-tindih untuk jangka waktu yang singkat.
Untuk memperbarui beberapa aturan secara atomik, ekspor kebijakan keamanan saat ini ke file JSON atau YAML, lalu ubah. Gunakan file yang telah diubah untuk membuat kebijakan keamanan, lalu alihkan kebijakan keamanan untuk layanan backend.
gcloud
Ekspor kebijakan yang akan diupdate, seperti yang ditunjukkan dalam contoh berikut:
gcloud compute security-policies export my-policy \ --file-name my-file \ --file-format yamlKebijakan yang diekspor akan terlihat seperti contoh berikut:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: deny(404) description: my-rule-1 match: expr: expression: evaluatePreconfiguredWaf('xss-stable') versionedExpr: SRC_IPS_V1 preview: false priority: 1 - action: allow description: my-rule-2 match: config: srcIpRanges: - '1.2.3.4' versionedExpr: SRC_IPS_V1 preview: false priority: 2 - action: deny description: default rule kind: compute#securityPolicyRule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policyGunakan editor teks untuk mengubah kebijakan. Misalnya, Anda dapat mengubah prioritas aturan yang ada dan menambahkan aturan:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: deny(404) description: my-rule-1 match: expr: expression: evaluatePreconfiguredWaf('xss-stable') versionedExpr: SRC_IPS_V1 preview: false priority: 1 - action: allow description: my-new-rule match: config: srcIpRanges: - '1.2.3.1' versionedExpr: SRC_IPS_V1 preview: false priority: 10 - action: allow description: my-rule-2 match: config: srcIpRanges: - '1.2.3.4' versionedExpr: SRC_IPS_V1 preview: false priority: 11 - action: deny description: default rule kind: compute#securityPolicyRule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policyBuat kebijakan keamanan Cloud Armor baru dan tentukan nama file dan format yang diubah, seperti yang ditunjukkan dalam contoh berikut:
gcloud compute security-policies create new-policy \ --file-name modified-policy \ --file-format yamlHapus kebijakan keamanan lama dari layanan backend yang relevan, seperti yang ditunjukkan dalam contoh berikut:
gcloud compute backend-services update my-backend \ --security-policy ""Tambahkan kebijakan keamanan baru ke layanan backend, seperti yang ditunjukkan dalam contoh berikut:
gcloud compute backend-services update my-backend \ --security-policy new-policyJika kebijakan lama tidak digunakan, hapus kebijakan tersebut:
gcloud compute security-policies delete my-policy
Menghapus aturan dari kebijakan keamanan
Ikuti langkah-langkah di bagian ini untuk menghapus aturan dari kebijakan keamanan Cloud Armor.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Klik nama kebijakan keamanan untuk membuka halaman Policy details.
Di bagian tengah halaman, pada tab Rules, centang kotak di samping aturan yang ingin Anda hapus.
Klik Delete.
gcloud
Gunakan perintah berikut untuk menghapus aturan. Anda hanya dapat mengubah satu kebijakan keamanan dalam satu waktu, tetapi Anda dapat menghapus beberapa aturan sekaligus:
gcloud compute security-policies rules delete PRIORITY [...] [
--security-policy POLICY_NAME \
]
Contoh:
gcloud compute security-policies rules delete 1000 \
--security-policy my-policy
Melampirkan dan menghapus kebijakan keamanan
Bagian berikut menjelaskan cara melampirkan dan menghapus kebijakan keamanan.
Melampirkan kebijakan keamanan ke layanan backend
Ikuti langkah-langkah di bagian ini untuk melampirkan kebijakan keamanan Cloud Armor ke layanan backend. Anda dapat melampirkan kebijakan keamanan ke beberapa layanan backend, tetapi layanan backend hanya dapat memiliki satu dari setiap jenis kebijakan keamanan yang dilampirkan ke layanan tersebut.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Klik nama kebijakan keamanan untuk membuka halaman Policy details.
Di bagian tengah halaman, klik tab Targets.
Klik Apply policy to new target.
Klik Add Target.
Di daftar Target, pilih target, lalu klik Add.
gcloud
Saat Anda melampirkan kebijakan keamanan backend ke layanan backend, gunakan
perintah gcloud compute backend-services dan flag --security-policy:
gcloud compute backend-services update my-backend \
--security-policy my-policy
Saat Anda melampirkan kebijakan keamanan edge ke layanan backend, gunakan perintah
gcloud compute backend-services dan flag --edge-security-policy:
gcloud compute backend-services update my-backend \
--edge-security-policy my-policy
Menghapus kebijakan keamanan dari layanan backend
Ikuti langkah-langkah di bagian ini untuk menghapus kebijakan keamanan Cloud Armor dari layanan backend.
Konsol
Di konsol Cloud de Confiance , buka halaman Cloud Armor policies.
Klik nama kebijakan keamanan untuk membuka halaman Policy details.
Di bagian tengah halaman, klik tab Targets.
Pilih layanan backend target tempat Anda menghapus kebijakan.
Klik Hapus.
Pada pesan Remove target, klik Remove.
gcloud
Saat Anda menghapus kebijakan keamanan backend, gunakan perintah gcloud compute
backend-services dan flag --security-policy:
gcloud compute backend-services update my-backend \
--security-policy ""
Saat Anda menghapus kebijakan keamanan edge, gunakan perintah gcloud compute
backend-services dan tanda --edge-security-policy:
gcloud compute backend-services update my-backend \
--edge-security-policy ""