Ringkasan pembatasan kapasitas layanan

Kebijakan pembatasan kapasitas layanan memungkinkan Anda mempertahankan ketersediaan layanan di antara klien tepercaya yang mungkin menggunakan sumber daya dalam jumlah yang tidak wajar. Kebijakan ini mencapai hal tersebut dengan memprioritaskan traffic klien penting selama kelebihan beban layanan, dan membatasi klien yang melebihi nilai minimum yang telah ditentukan.

Anda dapat menggabungkan kebijakan pembatasan kapasitas layanan dengan jenis pembatasan kapasitas lainnya, seperti kebijakan keamanan Cloud Armor yang secara eksplisit melarang klien yang tidak tepercaya untuk mencegah penyalahgunaan. Untuk mengetahui informasi selengkapnya tentang kebijakan keamanan, lihat Ringkasan kebijakan keamanan dan Ringkasan pembatasan kapasitas Cloud Armor.

Anda melampirkan kebijakan pembatasan kapasitas layanan ke aturan penerusan load balancer yang didukung atau ke resource gateway Secure Web Proxy. Untuk mengetahui informasi selengkapnya tentang penggunaan kebijakan pembatasan kapasitas layanan dengan instance Secure Web Proxy, lihat Mengonfigurasi kebijakan pembatasan kapasitas layanan.

Target yang didukung

Kebijakan pembatasan kapasitas layanan tersedia untuk target berikut:

  • Load Balancer Aplikasi internal regional
  • Secure Web Proxy

Urutan pemfilteran permintaan

Kebijakan pembatasan kapasitas layanan hanyalah salah satu jenis filter yang diterapkan pada permintaan. Diagram berikut menunjukkan urutan penerapan filter:

Urutan evaluasi untuk pemfilteran permintaan.
Urutan evaluasi untuk pemfilteran permintaan (klik untuk memperbesar).

Aturan

Setiap kebijakan pembatasan kapasitas layanan berisi daftar aturan HTTP. Setiap aturan menentukan kondisi kecocokan dan serangkaian tindakan pembatasan kapasitas. Saat permintaan memenuhi kondisi kecocokan aturan, permintaan tersebut akan dievaluasi terhadap satu atau beberapa bucket pembatasan kapasitas yang telah Anda konfigurasi.

Kondisi kecocokan

Kondisi kecocokan dan propertinya adalah sebagai berikut. Setiap properti dapat cocok dengan string yang sama persis, awalan, akhiran, atau substring:

  • Source: sumber permintaan.
    • principal: daftar identitas yang berasal dari sertifikat klien. Kecocokan terjadi saat ada akun utama yang cocok dengan aturan. Untuk mengetahui informasi selengkapnya tentang penggunaan akun utama untuk pembatasan kapasitas layanan, lihat Menggunakan akun utama untuk pembatasan kapasitas layanan.
  • Destination: tujuan permintaan. Jika Anda menentukan beberapa properti, properti tersebut akan digabungkan dengan operator AND logis.
    • header_set: daftar header HTTP. Kecocokan terjadi saat semua header di header_set cocok dengan aturan.
    • hosts: daftar host HTTP. Kecocokan terjadi saat permintaan ditujukan ke salah satu host yang ditentukan dalam daftar.
    • paths: daftar jalur URL. Kecocokan terjadi saat permintaan menggunakan salah satu jalur yang ditentukan dalam daftar.
    • methods: daftar metode HTTP yang valid (seperti GET atau POST). Kecocokan terjadi saat permintaan menggunakan salah satu metode yang ditentukan dalam daftar.

Perhatikan bahwa properti sumber dan tujuan digabungkan dengan operator AND logis untuk menentukan apakah aturan cocok dengan permintaan. Artinya, jika Anda menentukan sumber dan tujuan, permintaan harus cocok dengan keduanya untuk memenuhi kondisi kecocokan. Selain itu, aturan kosong cocok dengan semua permintaan.

Urutan evaluasi aturan

Aturan dievaluasi secara berurutan dari aturan pertama yang ditentukan dalam kebijakan hingga aturan terakhir yang ditentukan dalam kebijakan. Aturan pertama yang cocok dengan permintaan akan menerapkan tindakan pembatasan kapasitasnya ke permintaan, dan tidak ada aturan lebih lanjut yang dievaluasi. Jika aturan memiliki beberapa tindakan pembatasan kapasitas, dan jika salah satunya melebihi nilai minimum yang dikonfigurasi, permintaan akan dibatasi.

Bucket pembatasan kapasitas

Anda mengonfigurasi satu atau beberapa bucket pembatasan kapasitas, yang masing-masing memiliki satu atau beberapa kunci pembatasan kapasitas. Saat permintaan cocok dengan kondisi kecocokan aturan, permintaan tersebut akan dievaluasi terhadap satu atau beberapa bucket pembatasan kapasitas yang telah Anda konfigurasi. Kemudian, bucket akan menerapkan kunci pembatasan kapasitas yang dikonfigurasi untuk mengidentifikasi setiap klien dan menerapkan batas.

Selain jenis kunci, Anda dapat mengonfigurasi properti bucket berikut:

  • Uji coba: dalam mode uji coba, aturan akan dievaluasi, dan kecocokan akan dilacak, tetapi tindakan aturan tidak akan diterapkan. Hal ini memungkinkan Anda menguji aturan pembatasan kapasitas tanpa membatasi klien atau memengaruhi traffic produksi.
  • Penggantian pengguna: Anda dapat mengganti batas permintaan default untuk nilai kunci tertentu. Misalnya, jika Anda memiliki bucket dengan batas default 100 permintaan per menit per klien, dan bucket tersebut menggunakan jenis kunci SOURCE_IP, Anda dapat mengganti batas untuk alamat IP tertentu dan menerapkan batas 200 permintaan per menit.

Jenis kunci

Anda dapat mengidentifikasi setiap klien untuk pembatasan kapasitas dengan menggunakan jenis kunci berikut guna menggabungkan permintaan dan menerapkan pembatasan kapasitas:

  • ALL: satu kunci untuk semua permintaan yang memenuhi kondisi kecocokan aturan.
  • SOURCE_IP: kunci unik untuk setiap alamat IP klien yang permintaannya memenuhi kondisi kecocokan aturan.
  • HTTP_HEADER: kunci unik untuk setiap nilai header HTTP unik yang namanya dikonfigurasi. Nilai kunci dipangkas menjadi 128 byte pertama dari nilai header. Jenis kunci defaultnya adalah ALL jika tidak ada header tersebut.
  • HTTP_PATH: jalur URL permintaan HTTP. Nilai kunci dipangkas menjadi 128 byte pertama.
  • PRINCIPAL: string yang mewakili identitas, yang berasal dari sertifikat klien. Satu-satunya jenis akun utama yang didukung adalah CLIENT_CERT_COMMON_NAME.

Anda dapat menentukan satu atau beberapa jenis kunci di setiap aturan. Jika Anda menentukan beberapa jenis kunci, kombinasi total kunci untuk setiap klien akan digunakan sebagai kunci unik. Misalnya, Anda dapat menggunakan kombinasi SOURCE_IP dan HTTP_PATH untuk menerapkan pembatasan kapasitas pada frekuensi alamat IP tertentu dapat mengakses endpoint tertentu.

Menggunakan akun utama untuk pembatasan kapasitas layanan

Untuk mengidentifikasi sumber traffic dengan granularitas tinggi, Anda dapat mengonfigurasi kebijakan pembatasan kapasitas layanan berdasarkan identitas yang berasal dari sertifikat klien. Metode ini mengharuskan mTLS frontend diaktifkan di load balancer dan menggunakan atribut Nama Umum sertifikat klien (CLIENT_CERT_COMMON_NAME) sebagai pemilih akun utama untuk identifikasi.

Jika tidak ada pemilih akun utama yang ditentukan untuk identifikasi, CLIENT_CERT_URI_SAN akan digunakan sebagai pemilih akun utama default. Artinya, URI SAN sertifikat klien akan dievaluasi saat membuat keputusan pembatasan kapasitas.

Agar pembatasan kapasitas berbasis akun utama berfungsi, kondisi berikut harus berlaku:

  • mTLS frontend harus diaktifkan. Jika mTLS frontend tidak diaktifkan, klien tidak akan menampilkan sertifikat. Akibatnya, aturan berbasis akun utama dalam kebijakan pembatasan kapasitas layanan tidak akan menemukan informasi sertifikat untuk dievaluasi. Misalnya, aturan yang memeriksa CLIENT_CERT_URI_SAN akan melihat nilai kosong.

  • Harus ada sertifikat klien yang valid. Meskipun mTLS diaktifkan, sertifikat klien tidak akan digunakan untuk pembatasan kapasitas jika koneksi dibuat dengan sertifikat yang tidak ada atau tidak valid. Skenario ini terjadi saat mode validasi klien mTLS ditetapkan ke mode permisif ALLOW_INVALID_OR_MISSING_CLIENT_CERT. Dalam hal ini juga, aturan berbasis akun utama dalam kebijakan pembatasan kapasitas layanan tidak akan menemukan informasi sertifikat untuk dievaluasi. Misalnya, aturan yang memeriksa CLIENT_CERT_URI_SAN akan melihat nilai kosong.

Dampak batas ukuran atribut

Keputusan pembatasan kapasitas sensitif terhadap ukuran atribut sertifikat klien. Permintaan akan ditolak jika atribut melebihi batas ukurannya dan kebijakan dikonfigurasi untuk memvalidasi atribut tertentu tersebut.

Penolakan dapat terjadi saat kebijakan memvalidasi CLIENT_CERT_COMMON_NAME dan Subjek sertifikat (yang berisi Nama Umum) melebihi batas ukuran.

Langkah berikutnya