Cuando configuras extensiones con complementos o textos destacados, puedes especificar los atributos de solicitud y conexión que se reenviarán a los servicios de extensión. En esta página, se describen los atributos admitidos y se identifican los que están disponibles para cada tipo de extensión.
Si configuras extensiones para reenviar atributos específicos, puedes lograr lo siguiente:
- Tomar decisiones de enrutamiento dinámico
- Enriquece los encabezados de la solicitud con información del cliente.
- Implementa políticas de seguridad personalizadas basadas en la ubicación del cliente o los parámetros de TLS.
- Generar registros personalizados detallados
Puedes especificar atributos con el campo forwardAttributes en la configuración de YAML
para las extensiones de complemento y de texto destacado. Por ejemplo, para las extensiones de tráfico, consulta Configura una extensión de tráfico.
Especifica los atributos con forwardAttributes para los siguientes tipos de
extensiones:
- Extensiones perimetrales de Cloud Load Balancing (
LbEdgeExtension) en balanceadores de cargas de aplicaciones externos globales - Extensiones de ruta y tráfico de Cloud Load Balancing
(
LbRouteExtension,LbTrafficExtension) en balanceadores de cargas de aplicaciones - Extensiones de autorización (
AuthzExtension) conext_procen balanceadores de cargas de aplicaciones - Extensiones perimetrales de Media CDN (
CdnEdgeExtension) en los servicios de almacenamiento en caché perimetral de Media CDN
Atributos de solicitud
Puedes extraer y reenviar los siguientes atributos de las solicitudes:
| Atributo | Tipo | LbEdge |
LbRoute |
LbTraffic |
Authz |
CdnEdge |
Descripción y diferencias de comportamiento |
|---|---|---|---|---|---|---|---|
request.method |
cadena | ✓ | ✓ | ✓ | ✓ | ✓ | Es el método de solicitud HTTP, como GET o POST. |
request.host |
cadena | ✓ | ✓ | ✓ | ✓ | ✓ | Es una comodidad equivalente a request.headers['host']. |
request.path |
cadena | ✓ | ✓ | ✓ | ✓ | ✓ | La ruta de URL HTTP solicitada. |
request.query |
cadena | ✓ | ✓ | ✓ | ✓ | ✓ | Es la consulta de URL HTTP con el formato name1=value&name2=value2. |
request.scheme |
cadena | ✓ | ✓ | ✓ | ✓ | ✓ | Es el esquema de URL HTTP (http o https). Los valores están en minúsculas. |
request.origin |
cadena | — | — | ✓ | ✓ | — | Es el valor del encabezado de la solicitud Origin para los casos de uso de uso compartido de recursos de origen cruzado (CORS). |
request.user_agent_family |
cadena | ✓ | — | ✓ | — | — | Es la cadena de familia de usuario-agente analizada. Solo se admite en balanceadores de cargas de aplicaciones externos globales. |
request.device_request_type |
cadena | ✓ | — | ✓ | — | — | Es la categoría de clasificación del dispositivo. Solo se admite en balanceadores de cargas de aplicaciones externos globales. |
request.backend_service_name |
cadena | — | — | ✓ | ✓ | — | Es el servicio de backend de destino. No se aplica a las extensiones perimetrales (LbEdgeExtension o CdnEdgeExtension). |
request.backend_service_project_number |
int | — | — | ✓ | ✓ | — | Es el número de proyecto del servicio de backend en la VPC compartida. No se aplica a las extensiones perimetrales. |
request.mcp_method |
cadena | — | — | — | ✓ | — | Es el nombre del método del Protocolo de contexto del modelo (MCP). |
Atributos de conexión
Puedes extraer y reenviar los siguientes atributos de las conexiones:
| Atributo | Tipo | LbEdge |
LbRoute |
LbTraffic |
Authz |
CdnEdge |
Descripción y diferencias de comportamiento |
|---|---|---|---|---|---|---|---|
source.ip |
cadena | ✓ | ✓ | ✓ | ✓ | — | La dirección IP de cliente. |
source.port |
int | ✓ | ✓ | ✓ | ✓ | ✓ | Es el número de puerto de origen del cliente. |
source.client_region |
cadena | ✓ | — | ✓ | — | ✓ | Es el código de región ISO-3166-1 o CLDR de dos letras asociado a la dirección IP del cliente (por ejemplo, US o DE). |
source.client_region_subdivision |
cadena | ✓ | — | ✓ | — | — | Es el código de subdivisión de la región, como el de un estado o una provincia. Solo se admite en balanceadores de cargas de aplicaciones externos globales. |
source.client_city |
cadena | ✓ | — | ✓ | — | — | Es la ciudad asociada a la dirección IP del cliente. Solo se admite en balanceadores de cargas de aplicaciones externos globales. |
source.client_city_lat_long |
cadena | ✓ | — | ✓ | — | — | La latitud y la longitud asociadas con la ciudad del cliente. Solo se admite en balanceadores de cargas de aplicaciones externos globales. |
destination.ip |
cadena | — | — | ✓ | ✓ | — | La dirección IP del balanceador de cargas al que se conecta el cliente. |
destination.port |
int | — | — | ✓ | ✓ | — | El número de puerto de destino al que se conecta el cliente. |
connection.client_encrypted |
booleano | — | — | ✓ | ✓ | — | El valor es true si la conexión entre el cliente y el balanceador de cargas está encriptada (con HTTPS, HTTP/2 o HTTP/3); de lo contrario, es false. |
connection.protocol |
cadena | — | — | ✓ | ✓ | — | Es el protocolo HTTP que se usa para la comunicación (HTTP/1.0, HTTP/1.1, HTTP/2 o HTTP/3). |
connection.sni |
cadena | ✓ | — | ✓ | ✓ | ✓ | La indicación de nombre del servidor (SNI) solicitada de la conexión TLS downstream. |
connection.tls_version |
cadena | ✓ | — | ✓ | ✓ | ✓ | Es la versión de TLS negociada con el cliente (TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 o QUIC). |
connection.tls_cipher_suite |
cadena | — | — | ✓ | ✓ | — | Es el conjunto de algoritmos de cifrado hexadecimal de cuatro dígitos que se negocia durante el protocolo de enlace TLS, por ejemplo, 009C. |
connection.tls_ja3_fingerprint |
cadena | — | — | ✓ | — | — | La huella digital de TLS/SSL de JA3 si el cliente se conecta con HTTPS, HTTP/2 o HTTP/3. |
connection.tls_ja4_fingerprint |
cadena | ✓ | — | ✓ | — | — | La huella digital de TLS/SSL de JA4 si el cliente se conecta con HTTPS, HTTP/2 o HTTP/3. |
connection.client_rtt_msec |
int | — | — | ✓ | ✓ | — | Es el tiempo de ida y vuelta (RTT) del cliente medido en milisegundos. |
connection.sha256_peer_certificate_digest |
cadena | ✓ | — | ✓ | ✓ | — | Es el hash del certificado de par SHA-256 con codificación hexadecimal. |
connection.client_cert_present |
booleano | — | — | ✓ | ✓ | — | El valor es true si el cliente proporcionó un certificado durante el protocolo de enlace TLS; de lo contrario, es false. |
connection.client_cert_chain_verified |
booleano | — | — | ✓ | ✓ | — | El valor es true si la cadena de certificados de cliente se verifica con un TrustStore configurado; de lo contrario, es false. |
connection.client_cert_error |
cadena | — | — | ✓ | ✓ | — | Son cadenas predefinidas que representan las condiciones de error de mTLS. Para obtener más información, consulta los modos de validación del cliente de mTLS. |
connection.client_cert_serial_number |
cadena | — | — | ✓ | ✓ | — | El número de serie del certificado de cliente. |
connection.client_cert_spiffe_id |
cadena | — | — | ✓ | ✓ | — | El ID de SPIFFE del campo Nombre alternativo del sujeto (SAN). |
connection.client_cert_uri_sans |
cadena | — | — | ✓ | ✓ | — | Es una lista separada por comas y codificada en Base64 de extensiones de SAN de URI extraídas del certificado de cliente. |
connection.client_cert_dnsname_sans |
cadena | — | — | ✓ | ✓ | — | Es una lista separada por comas y codificada en Base64 de extensiones de SAN de DNSName extraídas del certificado de cliente. |
connection.client_cert_valid_not_before |
cadena | — | — | ✓ | ✓ | — | La marca de tiempo (formato RFC 3339) antes de la cual el certificado de cliente no es válido. |
connection.client_cert_valid_not_after |
cadena | — | — | ✓ | ✓ | — | La marca de tiempo (formato RFC 3339) después de la cual el certificado de cliente no es válido. |
connection.client_cert_issuer_dn |
cadena | — | — | ✓ | ✓ | — | La codificación DER codificada en Base64 del campo Issuer del certificado. |
connection.client_cert_subject_dn |
cadena | — | — | ✓ | ✓ | — | La codificación DER codificada en Base64 del campo Subject del certificado. |
connection.client_cert_leaf |
cadena | — | — | ✓ | ✓ | — | Es el certificado de hoja del cliente codificado en Base64 para una conexión mTLS establecida y validada (RFC 9440). |
connection.client_cert_chain |
cadena | — | — | ✓ | ✓ | — | La cadena de certificados de cliente codificada en Base64 y delimitada por comas en el orden TLS estándar, sin incluir el certificado de hoja (RFC 9440). |
Limitaciones
Disponibilidad de atributos: No todos los atributos son compatibles con todos los tipos de extensiones. Para obtener más información, consulta la tabla de esta página.
Configuración obligatoria: Para enviar atributos a la extensión, debes enumerar de forma explícita los atributos en el campo
forwardAttributesde la configuración de la extensión. Si no incluyes un atributo en este campo, el balanceador de cargas o Media CDN no reenvía ese atributo específico a tu extensión.Límites de tamaño: Puedes configurar un máximo de 16 atributos para una sola extensión.
Atributos de mTLS: Los atributos del certificado de cliente (
connection.client_cert_*) se propagan en los datos que se pasan a tu extensión solo si habilitaste mTLS y el cliente presenta un certificado.