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, untuk rate_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 laju ALL.
  • Saat Anda men-deploy kebijakan keamanan dengan tindakan fairshare, Cloud Armor mengabaikan kolom preview 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.