Mengonfigurasi pembatasan kapasitas dengan Google Cloud Armor
Dokumen ini menjelaskan cara menerapkan pembatasan frekuensi berbagi yang adil ke klien Cloud Service Mesh Anda, sehingga membantu Anda mengelola konsumsi layanan yang adil dan mencegah klien yang berbahaya atau berperilaku tidak semestinya membebani layanan Anda secara berlebihan.
Proses konfigurasi mengharuskan Anda membuat kebijakan keamanan Cloud Armor dan kebijakan endpoint. Jika Anda belum memahami kebijakan keamanan Cloud Armor, sebaiknya baca Ringkasan kebijakan keamanan.
Cara kerja pembatasan kecepatan
Pembatasan frekuensi membatasi jumlah permintaan yang dapat diterima layanan Anda dari klien dalam interval waktu tertentu untuk meningkatkan ketersediaan layanan Anda dan membagikan kapasitas yang tersedia secara adil di antara klien.
Nilai minimum permintaan, interval, dan tindakan yang diterapkan Cloud Armor ke traffic masuk yang melebihi nilai minimum batas kecepatan dapat dikonfigurasi oleh pengguna. Untuk pembatasan frekuensi Cloud Service Mesh, Cloud Armor menggunakan jenis kebijakan keamanan CLOUD_ARMOR_INTERNAL_SERVICE
dan aturan kebijakan keamanan menggunakan tindakan fairshare
.
Setiap kebijakan keamanan Cloud Armor berisi satu atau beberapa aturan. Setiap aturan
terdiri dari kondisi kecocokan dan tindakan. Jika permintaan memenuhi kondisi kecocokan, Cloud Armor akan menerapkan tindakan yang dikonfigurasi ke permintaan tersebut.
Saat mengonfigurasi pembatasan kecepatan, Anda membuat aturan kebijakan keamanan dengan
salah satu tindakan pembatasan kecepatan yang disebutkan sebelumnya, dan kondisi
kecocokan apa pun yang sesuai dengan kasus penggunaan Anda (termasuk mencocokkan semua permintaan masuk dengan
flag --src-ip-ranges "*"
). Aturan dalam kebijakan dievaluasi berdasarkan urutan
prioritas. Aturan dengan prioritas numerik terendah memiliki prioritas
logis tertinggi dan dievaluasi terlebih dahulu. Cloud Armor melakukan pembatasan frekuensi sisi server, yang berarti bahwa server menerapkan pembatasan frekuensi, bukan perangkat klien.
Tindakan pembatasan kecepatan memiliki kolom tambahan yang Anda gunakan untuk menyesuaikan batas kecepatan. Kolom berikut digunakan bersama di semua aturan pembatasan kecepatan:
rate_limit_threshold_count
: jumlah permintaan per interval waktu yang dikonfigurasi pengguna yang harus diterapkan pembatasan lajunya oleh Cloud Armor.interval_sec
: interval waktu, dalam detik, untukrate_limit_threshold_count
.exceed_action
: tindakan yang akan dilakukan pada permintaan yang melampaui batas laju nilai minimum.conform_action
: tindakan yang akan dilakukan pada permintaan yang tidak melebihi batas frekuensi.
Pembatasan frekuensi dengan Cloud Service Mesh
Bagian ini memberikan deskripsi umum tentang langkah-langkah yang perlu Anda lakukan untuk mengonfigurasi pembatasan kecepatan dengan Cloud Service Mesh.
Pertama, Anda membuat kebijakan endpoint dan memastikan bahwa EndpointMatcher
memilih instance Cloud Service Mesh Anda untuk menerapkan batas
frekuensi pada traffic masuk. EndpointMatcher
menggunakan label endpoint untuk
mengidentifikasi instance yang dilampirkan.
Selanjutnya, Anda membuat kebijakan keamanan Cloud Armor dengan jenis
CLOUD_ARMOR_INTERNAL_SERVICE
. Satu-satunya tindakan yang tersedia untuk jenis kebijakan
keamanan ini adalah fairshare
. Dalam kebijakan ini, Anda membuat aturan default dengan tindakan
fairshare
untuk menerapkan pembatasan frekuensi berbagi yang adil ke semua traffic yang tidak
memenuhi aturan dengan prioritas yang lebih tinggi. Anda dapat menambahkan aturan baru dengan prioritas yang lebih tinggi untuk menerapkan batas frekuensi yang berbeda pada berbagai jenis traffic. Misalnya, Anda dapat memberikan batas frekuensi yang lebih rendah atau lebih tinggi untuk rentang alamat IP tertentu.
Terakhir, setelah selesai membuat kebijakan keamanan dengan satu atau beberapa aturan pembatasan kecepatan, Anda melampirkannya ke kebijakan endpoint. Setelah Anda melampirkan
kebijakan keamanan, Cloud Armor akan menerapkan pembatasan frekuensi sisi server ke semua
traffic masuk yang cocok dengan kondisi kecocokan aturan dan yang terhubung
ke instance mesh layanan yang dipilih EndpointMatcher
.
Cloud Service Mesh mengonfigurasi batas kecepatan global di semua instance. Artinya, total volume traffic di semua instance server digabungkan untuk menentukan kapan batas kecepatan akan diterapkan. Setiap klien yang mengirim permintaan ke layanan tersebut tunduk pada kebijakan dan batas penegakan yang sama. Artinya, jika rasio traffic gabungan melebihi nilai minimum, beberapa permintaan akan dibatalkan.
Untuk mengonfigurasi pembatasan kecepatan dengan Cloud Service Mesh, lihat Mengonfigurasi pembatasan kecepatan Google Cloud Armor dengan Envoy.
Batasan
Saat mengonfigurasi pembatasan kapasitas dengan Cloud Armor, pertimbangkan batasan berikut:
- Kuota Cloud Armor membatasi jumlah aturan kustom yang dapat Anda buat. Sebaiknya periksa kuota Anda sebelum membuat lebih dari 20 aturan kustom.
- Setiap resource kebijakan endpoint harus mereferensikan kebijakan keamanan yang berbeda. Anda tidak dapat melampirkan kebijakan keamanan ke kebijakan endpoint baru jika kebijakan tersebut sudah dirujuk oleh kebijakan endpoint yang ada.
- Kebijakan keamanan dengan tindakan
fairshare
dibatasi untuk kunci pembatasan lajuALL
. - Saat Anda men-deploy kebijakan keamanan dengan tindakan
fairshare
, Cloud Armor mengabaikan kolompreview
selama penegakan aturan. - Anda tidak dapat mengonfigurasi kebijakan keamanan Cloud Armor jika menggunakan perutean traffic TCP.
Selain itu, kebijakan keamanan Cloud Armor dengan jenis
CLOUD_ARMOR_INTERNAL_SERVICE
dibatasi untuk atribut bahasa ekspresi kustom (CEL) berikut:
request.headers
request.method
request.path
request.scheme
request.query
Untuk mengetahui informasi selengkapnya tentang atribut CEL, lihat Mengonfigurasi atribut bahasa aturan kustom.