Menggunakan logging permintaan

Log per permintaan Google Cloud Armor untuk nama kebijakan keamanan, prioritas aturan kecocokan, tindakan terkait, dan informasi terkait dicatat ke dalam log sebagai bagian dari logging untuk Load Balancer Aplikasi eksternal dan Load Balancer Jaringan proxy eksternal. Logging untuk layanan backend baru dinonaktifkan secara default, sehingga Anda harus mengaktifkan logging untuk mencatat informasi logging lengkap untuk Google Cloud Armor.

Log Google Cloud Armor adalah bagian dari log Cloud Load Balancing. Artinya, pembuatan log Google Cloud Armor tunduk pada frekuensi sampling log yang dikonfigurasi untuk load balancer Anda. Jika Anda mengurangi frekuensi pengambilan sampel untuk load balancer, log permintaan Google Cloud Armor akan diambil sampelnya dengan frekuensi yang dikurangi tersebut. Selain itu, jika Anda menggunakan referensi layanan lintas project, log akan dibuat di project host atau layanan yang menyertakan frontend dan peta URL load balancer Anda. Oleh karena itu, sebaiknya administrator di project frontend memberikan izin untuk membaca log dan metrik kepada administrator di project backend.

Dengan menggunakan logging, Anda dapat melihat setiap permintaan yang dievaluasi oleh kebijakan keamanan Google Cloud Armor dan hasil atau tindakan yang diambil berdasarkan aturan pencocokan prioritas tertinggi. Misalnya, untuk melihat permintaan yang ditolak, Anda dapat menggunakan filter seperti jsonPayload.enforcedSecurityPolicy.outcome="DENY" atau jsonPayload.statusDetails="denied_by_security_policy".

Untuk mengaktifkan logging bagi Load Balancer Aplikasi eksternal, lihat Logging dan pemantauan Load Balancer Aplikasi Eksternal. Untuk Load Balancer Jaringan proxy eksternal, Anda dapat menggunakan perintah Google Cloud CLI seperti yang tercantum di halaman Logging dan pemantauan Load Balancer Aplikasi Eksternal sebelumnya. Anda tidak dapat mengaktifkan logging untuk Load Balancer Jaringan proxy eksternal menggunakan konsol Google Cloud.

Selain itu, Anda dapat menetapkan berbagai tingkat logging untuk membantu mengevaluasi apakah kebijakan keamanan dan aturannya berfungsi seperti yang diharapkan. Untuk mengetahui informasi lengkap, lihat Logging panjang.

Entri log kebijakan keamanan

Entri log berikut di Logs Explorer adalah untuk kebijakan keamanan dan logging aturan Google Cloud Armor. Entri tersebut menyertakan struktur berikut di jsonPayload. Detail permintaan HTTP muncul dalam pesan httpRequest.

  • statusDetails (string): deskripsi tekstual kode respons.
    • redirected_by_security_policy: permintaan dialihkan oleh aturan pengalihan, GOOGLE_RECAPTCHA atau EXTERNAL_302.
    • denied_by_security_policy: permintaan ditolak oleh load balancer karena kebijakan keamanan Google Cloud Armor.
    • body_denied_by_security_policy: isi permintaan ditolak oleh load balancer karena kebijakan keamanan Google Cloud Armor.
  • enforcedSecurityPolicy: aturan kebijakan keamanan yang diterapkan.
    • name (string): nama kebijakan keamanan.
    • priority (angka): prioritas aturan yang cocok dalam kebijakan keamanan.
    • adaptiveProtection: informasi tentang aturan Adaptive Protection yang di-deploy secara otomatis, jika berlaku.
      • autoDeployAlertId: ID pemberitahuan peristiwa yang dideteksi Adaptive Protection.
    • configuredAction (string): nama tindakan yang dikonfigurasi dalam aturan pencocokan—misalnya, ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (untuk aturan throttle), RATE_BASED_BAN (untuk aturan larangan berbasis kapasitas).
    • rateLimitAction: informasi tentang tindakan batas kapasitas saat aturan throttle atau aturan larangan berbasis kapasitas cocok.
      • key (string): nilai kunci batas kapasitas (hingga 36 byte). Kolom ini dihilangkan jika jenis kunci adalah ALL, atau jika jenis kunci adalah HTTP-HEADER atau HTTP-COOKIE dan header atau cookie yang ditentukan tidak ada dalam permintaan.
      • outcome (string): kemungkinan nilainya adalah sebagai berikut:
        • "RATE_LIMIT_THRESHOLD_CONFORM" jika berada di bawah nilai minimum pembatasan kapasitas yang dikonfigurasi.
        • "RATE_LIMIT_THRESHOLD_EXCEED" jika di atas nilai minimum pembatasan kapasitas yang dikonfigurasi.
        • "BAN_THRESHOLD_EXCEED" jika di atas batas larangan yang dikonfigurasi.
    • outcome (string): hasil dari eksekusi tindakan yang dikonfigurasi—misalnya, ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds (string): ID semua ekspresi aturan WAF yang telah dikonfigurasi sebelumnya yang memicu aturan.
    • threatIntelligence: informasi tentang daftar alamat IP yang cocok dari Threat Intelligence, jika berlaku.
      • categories: (string) nama daftar alamat IP yang cocok.
  • previewSecurityPolicy: diisi jika permintaan cocok dengan aturan yang dikonfigurasi untuk pratinjau (hanya ada jika aturan pratinjau akan lebih diprioritaskan daripada aturan yang diterapkan).
    • name (string): nama kebijakan keamanan
    • priority (angka): prioritas aturan yang cocok dalam kebijakan keamanan.
    • configuredAction (string): nama tindakan yang dikonfigurasi dalam aturan pencocokan—misalnya, ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (untuk aturan throttle), RATE_BASED_BAN (untuk aturan larangan berbasis kapasitas).
    • rateLimitAction: informasi tentang tindakan batas kapasitas saat aturan throttle atau aturan larangan berbasis kapasitas cocok.
      • key (string): nilai kunci batas kapasitas (hingga 36 byte). Kolom ini dihilangkan jika jenis kunci adalah ALL, atau jika jenis kunci adalah HTTP-HEADER atau HTTP-COOKIE dan header atau cookie yang ditentukan tidak ada dalam permintaan.
      • outcome (string): kemungkinan nilainya adalah sebagai berikut:
        • "RATE_LIMIT_THRESHOLD_CONFORM" jika berada di bawah nilai minimum pembatasan kapasitas yang dikonfigurasi.
        • "RATE_LIMIT_THRESHOLD_EXCEED" jika di atas nilai minimum pembatasan kapasitas yang dikonfigurasi.
        • "BAN_THRESHOLD_EXCEED" jika di atas batas larangan yang dikonfigurasi.
    • outcome (string): hasil dari eksekusi yang dikonfigurasi.
    • outcome (string): hasil dari eksekusi tindakan yang dikonfigurasi—misalnya, ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds (string): ID semua ekspresi aturan WAF yang telah dikonfigurasi sebelumnya yang memicu aturan.
    • threatIntelligence: informasi tentang daftar alamat IP yang cocok dari Threat Intelligence, jika berlaku.
      • categories: (string) nama daftar alamat IP yang cocok.
  • enforcedEdgeSecurityPolicy (Pratinjau): aturan kebijakan keamanan Edge yang diterapkan.
    • name (string): nama kebijakan keamanan.
    • priority (angka): prioritas aturan yang cocok dalam kebijakan keamanan.
    • configuredAction (string): nama tindakan yang dikonfigurasi dalam aturan pencocokan—misalnya, ALLOW, DENY.
    • outcome (string): hasil dari eksekusi tindakan yang dikonfigurasi—misalnya, ACCEPT, DENY.
  • previewEdgeSecurityPolicy (Pratinjau): diisi jika permintaan cocok dengan aturan kebijakan keamanan edge yang dikonfigurasi untuk pratinjau (hanya ada jika aturan pratinjau akan lebih diprioritaskan daripada aturan yang diterapkan).
    • name (string): nama kebijakan keamanan.
    • priority (angka): prioritas aturan yang cocok dalam kebijakan keamanan.
    • configuredAction (string): nama tindakan yang dikonfigurasi dalam aturan pencocokan—misalnya, ALLOW, DENY.
    • outcome (string): hasil dari eksekusi tindakan yang dikonfigurasi—misalnya, ACCEPT, DENY.

Melihat log

Anda dapat melihat log untuk kebijakan keamanan Google Cloud Armor hanya di konsol Google Cloud.

Konsol

  1. Di konsol Google Cloud, buka Kebijakan Google Cloud Armor.

    Buka kebijakan Google Cloud Armor

  2. Klik Tindakan.

  3. Pilih Lihat log.

Meminta logging data

Saat digunakan dengan Google Cloud Armor, jsonPayload memiliki kolom tambahan berikut:

  • securityPolicyRequestData: data yang berkaitan dengan permintaan saat diproses oleh kebijakan keamanan, terlepas dari aturan mana yang akhirnya cocok.
    • recaptchaActionToken: data yang terkait dengan token tindakan reCAPTCHA.
      • score (float): skor legitimasi pengguna yang disematkan dalam token tindakan reCAPTCHA. Hanya ada jika token tindakan reCAPTCHA disertakan dengan permintaan dan berhasil didekode berdasarkan aturan kebijakan keamanan. Untuk mengetahui informasi selengkapnya, lihat Menerapkan penilaian reCAPTCHA.
    • recaptchaSessionToken: data yang terkait dengan token sesi reCAPTCHA.
      • score (float): skor legitimasi pengguna yang disematkan dalam token sesi reCAPTCHA. Hanya ada jika token sesi reCAPTCHA disertakan dengan permintaan dan berhasil didekode berdasarkan aturan kebijakan keamanan.
    • tlsJa3Fingerprint: sidik jari TTL/SSL JA3 jika klien terhubung menggunakan HTTPS, HTTP/2, atau HTTP/3. Hanya ada jika sidik jari tersedia dan ada kebijakan keamanan yang mengevaluasi permintaan (terlepas dari apakah ekspresi dalam kebijakan cocok dengan permintaan).

Contoh log

Berikut adalah contoh detail log untuk aturan throttle yang memblokir permintaan:

jsonPayload: {
 enforcedSecurityPolicy: {
  priority: 100
  name: "sample-prod-policy"
  configuredAction: "THROTTLE"
  outcome: "DENY"
  rateLimitAction: {
    key:"sample-key"
    outcome:"RATE_LIMIT_THRESHOLD_EXCEED"
  }
 }
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:16:48.185763Z"

Berikut adalah contoh detail log untuk aturan larangan berbasis kapasitas yang memblokir permintaan:

jsonPayload: {
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 enforcedSecurityPolicy: {
  priority: 150
  name: "sample-prod-policy"
  outcome: "DENY"
  configuredAction: "RATE_BASED_BAN"
  rateLimitAction: {
    key:"sample-key"
    outcome:"BAN_THRESHOLD_EXCEED"
  }
 }
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:27:17.393244Z"

Langkah selanjutnya

Pelajari cara Memecahkan masalah Google Cloud Armor.