Atribut yang didukung

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

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

Menentukan atribut dengan forwardAttributes didukung untuk otorisasi, ekstensi rute, dan traffic yang diterapkan menggunakan protokol ext_proc 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). lalu lintas
request.method Metode permintaan HTTP, seperti GET atau POST. otorisasi, edge, rute, traffic
request.mcp_method Metode permintaan HTTP, seperti GET atau POST. otorisasi
request.host Setara dengan request.headers['host']. otorisasi, edge, rute, traffic
request.path Jalur URL HTTP yang diminta. otorisasi, edge, rute, traffic
request.query Kueri URL HTTP, dalam format name1=value&name2=value2, seperti yang muncul di baris pertama permintaan HTTP. Tidak ada decoding yang dilakukan. otorisasi, edge, rute, traffic
request.scheme Skema URL HTTP, seperti HTTP atau HTTPS. Nilai untuk atribut ini menggunakan huruf kecil. otorisasi, edge, rute, traffic
request.backend_service_name Layanan backend yang menjadi tujuan penerusan permintaan. otorisasi, traffic
request.backend_service_project_number Saat menggunakan VPC Bersama, nomor project layanan backend yang menjadi tujuan penerusan permintaan. otorisasi, traffic
request.mcp_param Parameter MCP. otorisasi
source.ip Alamat IP klien. tepi, rute, lalu lintas
source.port Port sumber klien. tepi, rute, lalu lintas
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 sesuai langsung dengan kode ISO-3166-2. edge, traffic
source.client_region_subdivision Subdivisi (misalnya, provinsi atau negara bagian) negara yang terkait dengan alamat IP klien. Ini adalah ID subbagian Unicode CLDR, seperti USCA atau CAON. Kode Unicode ini berasal dari subdivisi yang ditentukan oleh standar ISO-3166-2. tepi
source.client_city Nama kota tempat permintaan berasal, misalnya, Mountain View untuk Mountain View, California. Tidak ada daftar kanonis nilai valid untuk variabel ini. Nama kota dapat berisi huruf, angka, spasi US-ASCII, dan karakter berikut: !#$%&'*+-.^_`|~. tepi
source.client_city_lat_long Lintang dan bujur kota asal permintaan—misalnya, 37.386051,-122.083851 untuk permintaan dari Mountain View. tepi
connection.client_encrypted Nilainya adalah true jika koneksi antara klien dan load balancer dienkripsi (dengan menggunakan HTTPS, HTTP/2, atau HTTP/3); jika tidak, nilainya adalah false. lalu lintas
connection.protocol Protokol HTTP yang digunakan untuk komunikasi antara klien dan load balancer. Nilainya dapat berupa HTTP/1.0, HTTP/1.1, HTTP/2, atau HTTP/3. lalu lintas
destination.ip Alamat IP load balancer yang terhubung ke klien. Nilai ini dapat berguna saat beberapa load balancer berbagi backend umum. Nilai ini sama dengan alamat IP terakhir di header X-Forwarded-For. lalu lintas
destination.port Nomor port tujuan yang dihubungkan klien. lalu lintas
connection.sni Server Name Indication (seperti yang ditentukan dalam RFC 6066), jika disediakan oleh klien selama TLS atau QUIC handshake. Nama host dikonversi menjadi huruf kecil dan titik di akhir dihapus. otorisasi, tepi, 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. edge, traffic
connection.sha256_peer_certificate_digest Hash SHA256 berenkode heksadesimal dari sertifikat peer dalam koneksi TLS downstream, jika ada. otorisasi, tepi, traffic
connection.tls_cipher_suite Suite cipher yang dinegosiasikan selama TLS handshake. 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 QUIC dan koneksi klien yang tidak dienkripsi. lalu lintas
connection.tls_ja3_fingerprint Sidik jari TLS/SSL JA3 jika klien terhubung menggunakan HTTPS, HTTP/2, atau HTTP/3. lalu lintas
connection.tls_ja4_fingerprint Sidik jari TLS/SSL JA4 jika klien terhubung menggunakan HTTPS, HTTP/2, atau HTTP/3. edge, traffic
connection.client_cert_present Nilainya adalah true jika klien memberikan sertifikat selama handshake TLS; jika tidak, false. otorisasi, traffic
connection.client_cert_chain_verified Nilainya adalah true jika rantai sertifikat klien diverifikasi berdasarkan TrustStore yang dikonfigurasi; jika tidak, nilainya adalah false. otorisasi, traffic
connection.client_cert_error String standar yang mewakili kondisi error. Untuk mengetahui informasi selengkapnya tentang string error, lihat Mode validasi klien mTLS. otorisasi, traffic
connection.client_cert_serial_number Nomor seri sertifikat klien. Jika nomor seri lebih panjang dari 50 byte, client_cert_error akan disetel ke client_cert_serial_number_exceeded_size_limit, dan nomor seri akan disetel ke string kosong. otorisasi, traffic
connection.client_cert_spiffe_id ID SPIFFE dari kolom Nama Alternatif Subjek (SAN). Jika nilai tidak valid atau melebihi 2.048 byte, SPIFFE ID akan ditetapkan ke string kosong. Jika ID SPIFFE lebih panjang dari 2048 byte, client_cert_error akan ditetapkan ke client_cert_spiffe_id_exceeded_size_limit. otorisasi, traffic
connection.client_cert_uri_sans Daftar ekstensi SAN berenkode Base64 yang dipisahkan koma dan berjenis URI. Ekstensi SAN diekstrak dari sertifikat klien. SPIFFE ID tidak disertakan dalam kolom client_cert_uri_sans. Jika client_cert_uri_sans lebih panjang dari 512 byte, maka client_cert_error akan ditetapkan ke client_cert_uri_sans_exceeded_size_limit, dan daftar yang dipisahkan koma akan ditetapkan ke string kosong. otorisasi, traffic
connection.client_cert_dnsname_sans Daftar ekstensi SAN berenkode Base64 yang dipisahkan koma dan berjenis DNSName. Ekstensi SAN diekstrak dari sertifikat klien. Jika client_cert_dnsname_sans lebih panjang dari 512 byte, client_cert_error akan ditetapkan ke client_cert_dnsname_sans_exceeded_size_limit, dan daftar yang dipisahkan koma akan ditetapkan ke string kosong. otorisasi, 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. otorisasi, 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. otorisasi, traffic
connection.client_cert_issuer_dn Encoding DER berenkode Base64 dari kolom Issuer lengkap dari sertifikat. Jika client_cert_issuer_dn lebih panjang dari 512 byte, string client_cert_issuer_dn_exceeded_size_limit ditambahkan ke client_cert_error, dan client_cert_issuer_dn ditetapkan ke string kosong. otorisasi, traffic
connection.client_cert_subject_dn Encoding 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 ditambahkan ke client_cert_error, dan client_cert_subject_dn ditetapkan ke string kosong. otorisasi, traffic
connection.client_cert_leaf Sertifikat leaf klien untuk koneksi mTLS yang sudah dibuat dengan sertifikat yang lulus validasi. Encoding sertifikat sesuai dengan RFC 9440. Artinya, sertifikat DER biner dienkode Base64 dan dibatasi dengan titik dua di kedua sisinya. Jika client_cert_leaf melebihi 16 KB yang tidak dienkode, string client_cert_validated_leaf_exceeded_size_limit ditambahkan ke client_cert_error, dan client_cert_leaf disetel ke string kosong. otorisasi, traffic
connection.client_cert_chain Daftar sertifikat yang dipisahkan koma, dalam urutan TLS standar, dari rantai sertifikat klien untuk koneksi mTLS yang sudah dibuat dengan sertifikat klien yang lulus validasi, tidak termasuk sertifikat leaf. Enkode sertifikat sesuai dengan RFC 9440. Jika ukuran gabungan client_cert_leaf dan client_cert_chain sebelum encoding Base64 melebihi 16 KB, string client_cert_validated_chain_exceeded_size_limit akan ditambahkan ke client_cert_error, dan client_cert_chain akan disetel ke string kosong. otorisasi, traffic