使用外掛程式或呼叫設定擴充功能時,您可以指定要轉送至擴充功能服務的要求和連線屬性。本頁面說明支援的屬性,並指出每種擴充功能類型可用的屬性。
設定擴充功能來轉送特定屬性,即可達成下列目標:
- 動態決定對話流程。
- 在要求標頭中加入用戶端資訊。
- 根據用戶端位置或 TLS 參數,實施自訂安全性政策。
- 產生詳細的自訂記錄。
您可以在外掛程式和呼叫擴充功能的 YAML 設定中,使用 forwardAttributes 欄位指定屬性。舉例來說,如要瞭解流量擴充功能,請參閱「設定流量擴充功能」。
請使用 forwardAttributes 為下列類型的擴充功能指定屬性:
- 全域外部應用程式負載平衡器的 Cloud Load Balancing 邊緣擴充功能 (
LbEdgeExtension) - 應用程式負載平衡器的 Cloud Load Balancing 路由和流量擴充功能 (
LbRouteExtension、LbTrafficExtension) - 在應用程式負載平衡器上使用
ext_proc的授權擴充功能 (AuthzExtension) - Media CDN Edge Cache 服務的 Media CDN 邊緣擴充功能 (
CdnEdgeExtension)
要求屬性
您可以從要求中擷取及轉送下列屬性:
| 屬性 | 類型 | LbEdge |
LbRoute |
LbTraffic |
Authz |
CdnEdge |
說明和行為差異 |
|---|---|---|---|---|---|---|---|
request.method |
字串 | ✓ | ✓ | ✓ | ✓ | ✓ | HTTP 要求方法,例如 GET 或 POST。 |
request.host |
字串 | ✓ | ✓ | ✓ | ✓ | ✓ | 功用相當於 request.headers['host']。 |
request.path |
字串 | ✓ | ✓ | ✓ | ✓ | ✓ | 要求的 HTTP 網址路徑。 |
request.query |
字串 | ✓ | ✓ | ✓ | ✓ | ✓ | HTTP 網址查詢,格式為 name1=value&name2=value2。 |
request.scheme |
字串 | ✓ | ✓ | ✓ | ✓ | ✓ | HTTP 網址配置 (http 或 https)。值須為小寫。 |
request.origin |
字串 | — | — | ✓ | ✓ | — | 跨源資源共享 (CORS) 用途的 Origin 要求標頭值。 |
request.user_agent_family |
字串 | ✓ | — | ✓ | — | — | 剖析後的使用者代理程式系列字串。僅適用於全域外部應用程式負載平衡器。 |
request.device_request_type |
字串 | ✓ | — | ✓ | — | — | 裝置分類類別。僅適用於全域外部應用程式負載平衡器。 |
request.backend_service_name |
字串 | — | — | ✓ | ✓ | — | 目標後端服務。不適用於邊緣擴充功能 (LbEdgeExtension 或 CdnEdgeExtension)。 |
request.backend_service_project_number |
整數 | — | — | ✓ | ✓ | — | Shared VPC 中後端服務的專案編號。不適用於 Edge 擴充功能。 |
request.mcp_method |
字串 | — | — | — | ✓ | — | Model Context Protocol (MCP) 方法名稱。 |
連線屬性
您可以從連線中擷取及轉送下列屬性:
| 屬性 | 類型 | LbEdge |
LbRoute |
LbTraffic |
Authz |
CdnEdge |
說明和行為差異 |
|---|---|---|---|---|---|---|---|
source.ip |
字串 | ✓ | ✓ | ✓ | ✓ | — | 用戶端 IP 位址。 |
source.port |
整數 | ✓ | ✓ | ✓ | ✓ | ✓ | 用戶端來源通訊埠號碼。 |
source.client_region |
字串 | ✓ | — | ✓ | — | ✓ | 與用戶端 IP 位址相關聯的雙字母 ISO-3166-1 或 CLDR 區域代碼 (例如 US 或 DE)。 |
source.client_region_subdivision |
字串 | ✓ | — | ✓ | — | — | 區域細分代碼,例如州或省。 僅適用於全域外部應用程式負載平衡器。 |
source.client_city |
字串 | ✓ | — | ✓ | — | — | 與用戶端 IP 位址相關聯的城市。僅適用於全域外部應用程式負載平衡器。 |
source.client_city_lat_long |
字串 | ✓ | — | ✓ | — | — | 與用戶端城市相關聯的經緯度。 僅適用於全域外部應用程式負載平衡器。 |
destination.ip |
字串 | — | — | ✓ | ✓ | — | 用戶端連線的負載平衡器 IP 位址。 |
destination.port |
整數 | — | — | ✓ | ✓ | — | 用戶端連線的目的地通訊埠編號。 |
connection.client_encrypted |
bool | — | — | ✓ | ✓ | — | 如果用戶端和負載平衡器之間的連線已加密 (使用 HTTPS、HTTP/2 或 HTTP/3),則值為 true,否則為 false。 |
connection.protocol |
字串 | — | — | ✓ | ✓ | — | 用於通訊的 HTTP 通訊協定 (HTTP/1.0、HTTP/1.1、HTTP/2 或 HTTP/3)。 |
connection.sni |
字串 | ✓ | — | ✓ | ✓ | ✓ | 下游 TLS 連線要求的伺服器名稱指示 (SNI)。 |
connection.tls_version |
字串 | ✓ | — | ✓ | ✓ | ✓ | 與用戶端協商的 TLS 版本 (TLSv1、TLSv1.1、TLSv1.2、TLSv1.3 或 QUIC)。 |
connection.tls_cipher_suite |
字串 | — | — | ✓ | ✓ | — | TLS 握手期間協商的四位數十六進位加密套件,例如 009C。 |
connection.tls_ja3_fingerprint |
字串 | — | — | ✓ | — | — | 如果用戶端使用 HTTPS、HTTP/2 或 HTTP/3 連線,則為 JA3 TLS/SSL 指紋。 |
connection.tls_ja4_fingerprint |
字串 | ✓ | — | ✓ | — | — | 如果用戶端使用 HTTPS、HTTP/2 或 HTTP/3 連線,則會顯示 JA4 TLS/SSL 指紋。 |
connection.client_rtt_msec |
整數 | — | — | ✓ | ✓ | — | 用戶端封包往返時間 (RTT),以毫秒為單位。 |
connection.sha256_peer_certificate_digest |
字串 | ✓ | — | ✓ | ✓ | — | 十六進位編碼的 SHA-256 對等互連憑證雜湊。 |
connection.client_cert_present |
bool | — | — | ✓ | ✓ | — | 如果用戶端在 TLS 握手期間提供憑證,則值為 true,否則為 false。 |
connection.client_cert_chain_verified |
bool | — | — | ✓ | ✓ | — | 如果用戶端憑證鏈結已根據設定的 TrustStore 進行驗證,則值為 true;否則為 false。 |
connection.client_cert_error |
字串 | — | — | ✓ | ✓ | — | 代表 mTLS 錯誤狀況的預先定義字串。詳情請參閱「mTLS 用戶端驗證模式」。 |
connection.client_cert_serial_number |
字串 | — | — | ✓ | ✓ | — | 用戶端憑證的序號。 |
connection.client_cert_spiffe_id |
字串 | — | — | ✓ | ✓ | — | 主體別名 (SAN) 欄位中的 SPIFFE ID。 |
connection.client_cert_uri_sans |
字串 | — | — | ✓ | ✓ | — | 從用戶端憑證擷取的 URI SAN 擴充功能清單,以半形逗號分隔並採用 Base64 編碼。 |
connection.client_cert_dnsname_sans |
字串 | — | — | ✓ | ✓ | — | 從用戶端憑證擷取的 DNSName SAN 擴充功能清單,以半形逗號分隔並採用 Base64 編碼。 |
connection.client_cert_valid_not_before |
字串 | — | — | ✓ | ✓ | — | 用戶端憑證生效前的時間戳記 (RFC 3339 格式)。 |
connection.client_cert_valid_not_after |
字串 | — | — | ✓ | ✓ | — | 用戶端憑證失效的時間戳記 (RFC 3339 格式)。 |
connection.client_cert_issuer_dn |
字串 | — | — | ✓ | ✓ | — | 憑證 Issuer 欄位的 Base64 編碼 DER 編碼。 |
connection.client_cert_subject_dn |
字串 | — | — | ✓ | ✓ | — | 憑證 Subject 欄位的 Base64 編碼 DER 編碼。 |
connection.client_cert_leaf |
字串 | — | — | ✓ | ✓ | — | 已建立並驗證的 mTLS 連線 (RFC 9440) 的 Base64 編碼用戶端分葉憑證。 |
connection.client_cert_chain |
字串 | — | — | ✓ | ✓ | — | 以逗號分隔、採用 Base64 編碼的用戶端憑證鏈結,依標準 TLS 順序排列,不含分葉憑證 (RFC 9440)。 |
限制
屬性可用性:並非所有屬性都支援所有擴充功能類型。詳情請參閱本頁表格。
必要設定:如要將屬性傳送至擴充功能,您必須在擴充功能設定的
forwardAttributes欄位中明確列出屬性。如果未在這個欄位列出屬性,負載平衡器或 Media CDN 就不會將該屬性轉送至擴充功能。大小限制:單一擴充功能最多可設定 16 個屬性。
mTLS 屬性:只有在啟用 mTLS 且用戶端提供憑證時,系統才會在傳遞至擴充功能的資料中填入用戶端憑證屬性 (
connection.client_cert_*)。