Atribut yang didukung

Saat mengonfigurasi ekstensi menggunakan plugin atau info, Anda dapat menentukan atribut permintaan dan koneksi yang akan diteruskan ke layanan ekstensi. Halaman ini menjelaskan atribut yang didukung dan mengidentifikasi atribut yang tersedia untuk setiap jenis ekstensi.

Dengan mengonfigurasi ekstensi untuk meneruskan atribut tertentu, Anda dapat mencapai hal berikut:

  • Membuat keputusan pemilihan rute dinamis.
  • Memperkaya header permintaan dengan informasi klien.
  • Menerapkan kebijakan keamanan kustom berdasarkan lokasi klien atau parameter TLS.
  • Membuat log kustom yang mendetail.

Anda dapat menentukan atribut dengan kolom forwardAttributes dalam konfigurasi YAML untuk ekstensi plugin dan info. Misalnya, untuk ekstensi traffic, lihat Mengonfigurasi ekstensi traffic.

Tentukan atribut dengan forwardAttributes untuk jenis ekstensi berikut:

  • Ekstensi edge Cloud Load Balancing (LbEdgeExtension) di Load Balancer Aplikasi eksternal global
  • Ekstensi rute dan traffic Cloud Load Balancing (LbRouteExtension, LbTrafficExtension) di Load Balancer Aplikasi
  • Ekstensi otorisasi (AuthzExtension) menggunakan ext_proc di Load Balancer Aplikasi
  • Ekstensi edge Media CDN (CdnEdgeExtension) di layanan Media CDN Edge Cache

Atribut permintaan

Anda dapat mengekstrak dan meneruskan atribut berikut dari permintaan:

Atribut Jenis LbEdge LbRoute LbTraffic Authz CdnEdge Deskripsi dan perbedaan perilaku
request.method string ✓ ✓ ✓ ✓ ✓ Metode permintaan HTTP, seperti GET atau POST.
request.host string ✓ ✓ ✓ ✓ ✓ Kemudahan yang setara dengan request.headers['host'].
request.path string ✓ ✓ ✓ ✓ ✓ Jalur URL HTTP yang diminta.
request.query string ✓ ✓ ✓ ✓ ✓ Kueri URL HTTP dalam format name1=value&name2=value2.
request.scheme string ✓ ✓ ✓ ✓ ✓ Skema URL HTTP (http atau https). Nilai dalam huruf kecil.
request.origin string — — ✓ ✓ — Nilai header permintaan Origin untuk kasus penggunaan Cross-Origin Resource Sharing (CORS).
request.user_agent_family string ✓ — ✓ — — String kelompok agen pengguna yang diuraikan. Hanya didukung di Load Balancer Aplikasi eksternal global.
request.device_request_type string ✓ — ✓ — — Kategori klasifikasi perangkat. Hanya didukung di Load Balancer Aplikasi eksternal global.
request.backend_service_name string — — ✓ ✓ — Layanan backend target. Tidak berlaku untuk ekstensi edge (LbEdgeExtension atau CdnEdgeExtension).
request.backend_service_project_number int — — ✓ ✓ — Nomor project layanan backend di VPC Bersama. Tidak berlaku untuk ekstensi edge.
request.mcp_method string — — — ✓ — Nama metode Model Context Protocol (MCP).

Atribut koneksi

Anda dapat mengekstrak dan meneruskan atribut berikut dari koneksi:

Atribut Jenis LbEdge LbRoute LbTraffic Authz CdnEdge Deskripsi dan perbedaan perilaku
source.ip string ✓ ✓ ✓ ✓ — Alamat IP klien.
source.port int ✓ ✓ ✓ ✓ ✓ Nomor port sumber klien.
source.client_region string ✓ — ✓ — ✓ Kode wilayah ISO-3166-1 atau CLDR dua huruf yang terkait dengan alamat IP klien (misalnya, US atau DE).
source.client_region_subdivision string ✓ — ✓ — — Kode subdivisi wilayah, seperti untuk negara bagian atau provinsi. Hanya didukung di Load Balancer Aplikasi eksternal global.
source.client_city string ✓ — ✓ — — Kota yang terkait dengan alamat IP klien. Hanya didukung di Load Balancer Aplikasi eksternal global.
source.client_city_lat_long string ✓ — ✓ — — Lintang dan bujur yang terkait dengan kota klien. Hanya didukung di Load Balancer Aplikasi eksternal global.
destination.ip string — — ✓ ✓ — Alamat IP load balancer yang terhubung dengan klien.
destination.port int — — ✓ ✓ — Nomor port tujuan yang dihubungkan oleh klien.
connection.client_encrypted bool — — ✓ ✓ — Nilainya adalah true jika koneksi antara klien dan load balancer dienkripsi (menggunakan HTTPS, HTTP/2, atau HTTP/3); jika tidak, nilainya adalah false.
connection.protocol string — — ✓ ✓ — Protokol HTTP yang digunakan untuk komunikasi (HTTP/1.0, HTTP/1.1, HTTP/2, atau HTTP/3).
connection.sni string ✓ — ✓ ✓ ✓ Server Name Indication (SNI) yang diminta dari koneksi TLS downstream.
connection.tls_version string ✓ — ✓ ✓ ✓ Versi TLS yang dinegosiasikan dengan klien (TLSv1, TLSv1.1, TLSv1.2, TLSv1.3, atau QUIC).
connection.tls_cipher_suite string — — ✓ ✓ — Cipher suite heksadesimal empat digit yang dinegosiasikan selama TLS handshake—misalnya, 009C.
connection.tls_ja3_fingerprint string — — ✓ — — Sidik jari TLS/SSL JA3 jika klien terhubung menggunakan HTTPS, HTTP/2, atau HTTP/3.
connection.tls_ja4_fingerprint string ✓ — ✓ — — Sidik jari TLS/SSL JA4 jika klien terhubung menggunakan HTTPS, HTTP/2, atau HTTP/3.
connection.client_rtt_msec int — — ✓ ✓ — Waktu round-trip (RTT) klien yang diukur dalam milidetik.
connection.sha256_peer_certificate_digest string ✓ — ✓ ✓ — Hash sertifikat peer SHA-256 berenkode hex.
connection.client_cert_present bool — — ✓ ✓ — Nilainya adalah true jika klien memberikan sertifikat selama TLS handshake; jika tidak, false.
connection.client_cert_chain_verified bool — — ✓ ✓ — Nilainya adalah true jika rantai sertifikat klien diverifikasi terhadap TrustStore yang dikonfigurasi; jika tidak, false.
connection.client_cert_error string — — ✓ ✓ — String yang telah ditentukan sebelumnya yang mewakili kondisi error mTLS. Untuk mengetahui informasi selengkapnya, lihat Mode validasi klien mTLS.
connection.client_cert_serial_number string — — ✓ ✓ — Nomor seri sertifikat klien.
connection.client_cert_spiffe_id string — — ✓ ✓ — ID SPIFFE dari kolom Subject Alternative Name (SAN).
connection.client_cert_uri_sans string — — ✓ ✓ — Daftar ekstensi SAN URI berenkode Base64 yang dipisahkan koma, yang diekstrak dari sertifikat klien.
connection.client_cert_dnsname_sans string — — ✓ ✓ — Daftar ekstensi SAN DNSName berenkode Base64 yang dipisahkan koma, yang diekstrak dari sertifikat klien.
connection.client_cert_valid_not_before string — — ✓ ✓ — Stempel waktu (format RFC 3339) sebelum sertifikat klien tidak valid.
connection.client_cert_valid_not_after string — — ✓ ✓ — Stempel waktu (format RFC 3339) yang menunjukkan bahwa sertifikat klien tidak valid setelah waktu tersebut.
connection.client_cert_issuer_dn string — — ✓ ✓ — Encoding DER berenkode Base64 dari kolom Issuer sertifikat.
connection.client_cert_subject_dn string — — ✓ ✓ — Encoding DER berenkode Base64 dari kolom Subject sertifikat.
connection.client_cert_leaf string — — ✓ ✓ — Sertifikat entitas akhir klien berenkode Base64 untuk koneksi mTLS yang dibuat dan divalidasi (RFC 9440).
connection.client_cert_chain string — — ✓ ✓ — Rantai sertifikat klien berenkode Base64 yang dipisahkan koma dalam urutan TLS standar, tidak termasuk sertifikat entitas akhir (RFC 9440).

Batasan

  • Ketersediaan atribut: tidak semua atribut didukung untuk semua jenis ekstensi. Untuk mengetahui informasi selengkapnya, lihat tabel di halaman ini.

  • Konfigurasi yang diperlukan: untuk mengirim atribut ke ekstensi, Anda harus mencantumkan atribut secara eksplisit di kolom forwardAttributes pada konfigurasi ekstensi. Jika Anda tidak mencantumkan atribut di kolom ini, load balancer atau Media CDN tidak akan meneruskan atribut tertentu tersebut ke ekstensi Anda.

  • Batas ukuran: Anda dapat mengonfigurasi maksimum 16 atribut untuk satu ekstensi.

  • Atribut mTLS: atribut sertifikat klien (connection.client_cert_*) diisi dalam data yang diteruskan ke ekstensi Anda hanya jika Anda telah mengaktifkan mTLS dan klien memberikan sertifikat.