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) menggunakanext_procdi 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
forwardAttributespada 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.