Mengurai konten isi POST

Halaman ini berisi informasi tentang cara mengonfigurasi parsing konten isi POST, fitur opsional yang dapat Anda gunakan dengan kebijakan keamanan Google Cloud Armor.

Secara default, Google Cloud Armor mengevaluasi seluruh konten isi POST sebagai string seragam (tunduk pada batasan ukuran isi) terhadap tanda tangan dalam aturan WAF yang telah dikonfigurasi sebelumnya. Untuk permintaan yang berisi encoding alternatif seperti JSON, komponen struktural pesan (tidak ditentukan pengguna) dapat memicu kecocokan dengan tanda tangan WAF yang telah dikonfigurasi sebelumnya. Untuk menghindari derau dan mengurangi risiko positif palsu, sebaiknya konfigurasi Google Cloud Armor untuk mengaktifkan penguraian alternatif untuk jenis konten yang didukung jika workload yang dilindungi Anda melakukan hal berikut:

  • Menayangkan REST API
  • Menggunakan GraphQL
  • Menerima permintaan apa pun dengan konten berenkode JSON.

Anda dapat mengaktifkan atau menonaktifkan parsing konten isi JSON permintaan POST untuk setiap kebijakan keamanan. Jika header Content-Type disetel ke application/json, gunakan flag --json-parsing di Google Cloud CLI.

Secara default, opsi ini dinonaktifkan. Sintaksis untuk tanda tersebut adalah sebagai berikut:

--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]

Flag hanya tersedia dengan gcloud compute security-policies update. Anda tidak dapat membuat kebijakan keamanan baru dengan opsi ini kecuali jika Anda membuat kebijakan keamanan dalam file, lalu mengimpor file tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengimpor kebijakan keamanan.

Menggunakan penguraian JSON

Dalam contoh berikut, Anda mengonfigurasi daftar nilai header Content-Type kustom yang akan diterapkan penguraian alternatifnya. Contoh ini memperbarui kebijakan keamanan POLICY_NAME untuk mengaktifkan penguraian JSON, dan menentukan jenis konten application/json, application/vnd.api+json, application/vnd.collection+json, dan application/vnd.hyper+json:

gcloud compute security-policies update POLICY_NAME \
    --json-parsing STANDARD \
    --json-custom-content-types "application/json,application/vnd.api+json,application/vnd.collection+json,application/vnd.hyper+json"

Menggunakan penguraian GraphQL

Untuk mengonfigurasi parsing GraphQL, perbarui kebijakan keamanan Anda untuk menyetel flag --json-parsing ke STANDARD_WITH_GRAPHQL:

gcloud compute security-policies update POLICY_NAME \
    --json-parsing STANDARD_WITH_GRAPHQL

Logging

Setiap permintaan HTTP(S) yang dievaluasi berdasarkan kebijakan keamanan Google Cloud Armor dicatat melalui Cloud Logging. Log memberikan detail, seperti nama kebijakan keamanan yang diterapkan, aturan yang cocok, dan apakah aturan tersebut diterapkan. Logging permintaan untuk resource layanan backend baru dinonaktifkan secara default. Untuk mencatat permintaan Google Cloud Armor, Anda harus mengaktifkan setelan logging HTTP(S) untuk setiap layanan backend yang dilindungi oleh kebijakan keamanan. Untuk mengetahui informasi selengkapnya, lihat Logging dan pemantauan Load Balancer Aplikasi eksternal global.

Batasan

Pertimbangkan batasan berikut saat mengonfigurasi parsing JSON:

  • Google Cloud Armor memeriksa isi HTTP POST hingga 8 kB pertama secara default. Anda dapat mengonfigurasi batas ini menjadi 8 kB, 16 kB, 32 kB, 48 kB, atau 64 kB. Jika konten JSON lebih besar daripada batas pemeriksaan yang dikonfigurasi, Google Cloud Armor akan menerapkan penguraian JSON hingga batas ini, yang kemudian diperiksa oleh salah satu aturan WAF yang telah dikonfigurasi sebelumnya.

    Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi batas pemeriksaan untuk isi permintaan saat menggunakan aturan WAF yang telah dikonfigurasi sebelumnya, lihat Batasan pemeriksaan isi POST dan PATCH.

  • Jika parser JSON tidak menampilkan hasil, penguraian URI mungkin akan dicoba. Jika parser URI tidak menampilkan parameter nama-nilai atau hanya parameter nama-nilai parsial, seluruh atau sebagian string dapat diperlakukan sebagai nama parameter untuk pemeriksaan.

Langkah berikutnya