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 |