Atribut yang didukung

Saat mengonfigurasi ekstensi menggunakan plugin atau callout untuk layanan backend berbasis ext-proc, Anda dapat menentukan atribut permintaan dan koneksi yang akan diteruskan ke layanan tersebut. Halaman ini menjelaskan atribut yang didukung dan menentukan atribut mana 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 mendetail.

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

Menentukan atribut dengan forwardAttributes didukung untuk ekstensi otorisasi, rute, dan traffic yang diterapkan menggunakan ext_proc protokol di Load Balancer Aplikasi regional.

Tabel berikut mencantumkan atribut dan ekstensi yang mendukungnya:

Atribut Deskripsi Ekstensi
request.origin Nilai header asal dalam permintaan untuk kasus penggunaan Cross-Origin Resource Sharing (CORS). traffic
request.method Metode permintaan HTTP, seperti GET atau POST. authorization, route, traffic
request.mcp_method Metode permintaan HTTP, seperti GET atau POST. authorization
request.host Setara dengan request.headers['host']. authorization, route, traffic
request.path Jalur URL HTTP yang diminta. authorization, route, traffic
request.query Kueri URL HTTP, dalam format name1=value&name2=value2, seperti yang muncul di baris pertama permintaan HTTP. Tidak ada decoding yang dijalankan. authorization, route, traffic
request.scheme Skema URL HTTP, seperti HTTP atau HTTPS. Nilai untuk atribut ini dalam huruf kecil. authorization, route, traffic
request.backend_service_name Layanan backend yang menjadi tujuan penerusan permintaan. authorization, traffic
request.backend_service_project_number Saat menggunakan VPC Bersama, nomor project layanan backend yang menjadi tujuan penerusan permintaan. authorization, traffic
request.mcp_param Parameter MCP. authorization
source.ip Alamat IP klien. route, traffic
source.port Port sumber klien. route, traffic
source.client_region Negara atau wilayah yang terkait dengan alamat IP klien. Nilainya adalah kode wilayah CLDR Unicode, seperti US atau FR. Untuk sebagian besar negara, kode ini langsung sesuai dengan kode ISO-3166-2. traffic
connection.client_encrypted Nilainya adalah true jika koneksi antara klien dan load balancer dienkripsi (menggunakan HTTPS, HTTP/2, atau HTTP/3); jika tidak, nilainya adalah false. traffic
connection.protocol Protokol HTTP yang digunakan untuk komunikasi antara klien dan load balancer. Ini bisa menjadi salah satu dari HTTP/1.0, HTTP/1.1, HTTP/2, atau HTTP/3. traffic
destination.ip Alamat IP load balancer yang terhubung dengan klien. Nilai ini dapat berguna saat beberapa load balancer berbagi backend yang sama. Nilai ini sama dengan alamat IP terakhir di X-Forwarded-For header. traffic
destination.port Nomor port tujuan yang terhubung dengan klien. traffic
connection.sni Indikasi Nama Server (seperti yang ditentukan dalam RFC 6066), jika diberikan oleh klien selama handshake TLS atau QUIC. Nama host dikonversi menjadi huruf kecil dan titik di akhir akan dihapus. authorization, traffic
connection.tls_version Versi TLS yang dinegosiasikan antara klien dan load balancer selama handshake SSL. Nilai yang mungkin mencakup: TLSv1, TLSv1.1, TLSv1.2, dan TLSv1.3. Jika klien terhubung menggunakan QUIC bukan TLS, nilainya adalah QUIC. traffic
connection.sha256_peer_certificate_digest Hash SHA256 berenkode heksadesimal dari sertifikat peer di koneksi TLS hilir, jika ada. authorization, traffic
connection.tls_cipher_suite Cipher suite yang dinegosiasikan selama handshake TLS. Nilainya adalah empat digit heksadesimal yang ditentukan oleh IANA TLS Cipher Suite Registry—misalnya, 009C untuk TLS_RSA_WITH_AES_128_GCM_SHA256. Nilai ini kosong untuk koneksi klien QUIC dan tidak terenkripsi. traffic
connection.tls_ja3_fingerprint Sidik jari TLS/SSL JA3 jika klien terhubung menggunakan HTTPS, HTTP/2, atau HTTP/3. traffic
connection.tls_ja4_fingerprint Sidik jari TLS/SSL JA4 jika klien terhubung menggunakan HTTPS, HTTP/2, atau HTTP/3. traffic
connection.client_cert_present Nilainya adalah true jika klien memberikan sertifikat selama handshake TLS; jika tidak, nilainya adalah false. authorization, traffic
connection.client_cert_chain_verified Nilainya adalah true jika rantai sertifikat klien diverifikasi terhadap TrustStore yang dikonfigurasi; jika tidak, nilainya adalah false. authorization, traffic
connection.client_cert_error String yang telah ditentukan yang mewakili kondisi error. Untuk mengetahui informasi selengkapnya tentang string error, lihat Mode validasi klien mTLS. authorization, traffic
connection.client_cert_serial_number Nomor seri sertifikat klien. Jika nomor seri lebih panjang dari 50 byte, client_cert_error ditetapkan ke client_cert_serial_number_exceeded_size_limit, dan nomor seri ditetapkan ke string kosong. authorization, traffic
connection.client_cert_spiffe_id ID SPIFFE dari kolom Nama Alternatif Subjek (SAN). Jika nilainya tidak valid atau melebihi 2.048 byte, ID SPIFFE akan ditetapkan ke string kosong. Jika ID SPIFFE lebih panjang dari 2.048 byte, client_cert_error akan ditetapkan ke client_cert_spiffe_id_exceeded_size_limit. authorization, traffic
connection.client_cert_uri_sans Daftar ekstensi SAN berenkode Base64 yang dipisahkan koma dengan jenis URI. Ekstensi SAN diekstrak dari klien sertifikat. ID SPIFFE tidak disertakan dalam kolom client_cert_uri_sans. Jika client_cert_uri_sans lebih panjang dari 512 byte, client_cert_error akan ditetapkan ke client_cert_uri_sans_exceeded_size_limit, dan daftar yang dipisahkan koma akan ditetapkan ke string kosong. authorization, traffic
connection.client_cert_dnsname_sans Daftar ekstensi SAN berenkode Base64 yang dipisahkan koma dengan jenis DNSName. Ekstensi SAN diekstrak dari the sertifikat klien. Jika client_cert_dnsname_sans lebih panjang dari 512 byte, client_cert_error ditetapkan ke client_cert_dnsname_sans_exceeded_size_limit, dan daftar yang dipisahkan koma ditetapkan ke string kosong. authorization, traffic
connection.client_cert_valid_not_before Stempel waktu (format string tanggal RFC 3339) sebelum sertifikat klien tidak valid—misalnya, 2022-07-01T18:05:09+00:00. authorization, traffic
connection.client_cert_valid_not_after Stempel waktu (dalam format string tanggal RFC 3339) setelah sertifikat klien tidak valid—misalnya, 2022-07-01T18:05:09+00:00. authorization, traffic
connection.client_cert_issuer_dn Enkode DER berenkode Base64 dari kolom Issuer dari sertifikat. Jika client_cert_issuer_dn lebih panjang dari 512 byte, string client_cert_issuer_dn_exceeded_size_limit akan ditambahkan ke client_cert_error, dan client_cert_issuer_dn akan ditetapkan ke string kosong. authorization, traffic
connection.client_cert_subject_dn Enkode DER berenkode Base64 dari kolom Subject lengkap dari sertifikat. Jika client_cert_subject_dn lebih panjang dari 512 byte, string client_cert_subject_dn_exceeded_size_limit akan ditambahkan ke client_cert_error, dan client_cert_subject_dn akan ditetapkan ke string kosong. authorization, traffic
connection.client_cert_leaf Sertifikat leaf klien untuk koneksi mTLS yang dibuat saat sertifikat lulus validasi. Enkode sertifikat sesuai dengan RFC 9440. Artinya, sertifikat DER biner dienkode Base64 dan dibatasi dengan titik dua di kedua sisi. Jika client_cert_leaf melebihi 16 KB tanpa enkode, string client_cert_validated_leaf_exceeded_size_limit akan ditambahkan ke client_cert_error, dan client_cert_leaf akan ditetapkan ke string kosong. authorization, traffic
connection.client_cert_chain Daftar sertifikat yang dibatasi koma, dalam urutan TLS standar, dari rantai sertifikat klien untuk koneksi mTLS yang dibuat saat sertifikat klien lulus validasi, tidak termasuk sertifikat leaf. Enkode sertifikat sesuai dengan RFC 9440. Jika ukuran gabungan client_cert_leaf dan client_cert_chain sebelum enkode Base64 melebihi 16 KB, string client_cert_validated_chain_exceeded_size_limit akan ditambahkan ke client_cert_error, dan client_cert_chain akan ditetapkan ke string kosong. authorization, traffic