Unterstützte Attribute

Wenn Sie Erweiterungen mit Plug-ins oder Callouts konfigurieren, können Sie die Anfrage- und Verbindungsattribute angeben, die an Erweiterungsdienste weitergeleitet werden sollen. Auf dieser Seite werden die unterstützten Attribute beschrieben und die Attribute angegeben, die für jeden Erweiterungstyp verfügbar sind.

Wenn Sie Erweiterungen so konfigurieren, dass bestimmte Attribute weitergeleitet werden, können Sie Folgendes erreichen:

  • Dynamische Routingentscheidungen treffen
  • Anfrageheader mit Clientinformationen anreichern.
  • Benutzerdefinierte Sicherheitsrichtlinien basierend auf dem Clientstandort oder TLS-Parametern implementieren
  • Detaillierte benutzerdefinierte Logs generieren

Sie können Attribute mit dem Feld forwardAttributes in der YAML-Konfiguration für Plug-in- und Callout-Erweiterungen angeben. Informationen zu Traffic-Erweiterungen finden Sie beispielsweise unter Traffic-Erweiterung konfigurieren.

Geben Sie Attribute mit forwardAttributes für die folgenden Arten von Erweiterungen an:

  • Cloud Load Balancing-Edge-Erweiterungen (LbEdgeExtension) für globale externe Application Load Balancer
  • Cloud Load Balancing-Routen- und Traffic-Erweiterungen (LbRouteExtension, LbTrafficExtension) für Application Load Balancer
  • Autorisierungserweiterungen (AuthzExtension) mit ext_proc auf Application Load Balancern
  • Media CDN-Edge-Erweiterungen (CdnEdgeExtension) für Media CDN Edge Cache-Dienste

Anfrageattribute

Sie können die folgenden Attribute aus Anfragen extrahieren und weiterleiten:

Attribut Typ LbEdge LbRoute LbTraffic Authz CdnEdge Beschreibung und Verhaltensunterschiede
request.method String ✓ ✓ ✓ ✓ ✓ Die HTTP-Anfragemethode, z. B. GET oder POST.
request.host String ✓ ✓ ✓ ✓ ✓ Eine Convenience-Entsprechung zu request.headers['host'].
request.path String ✓ ✓ ✓ ✓ ✓ Der angeforderte HTTP-URL-Pfad.
request.query String ✓ ✓ ✓ ✓ ✓ Die HTTP-URL-Abfrage im Format name1=value&name2=value2.
request.scheme String ✓ ✓ ✓ ✓ ✓ Das HTTP-URL-Schema (http oder https). Die Werte sind in Kleinbuchstaben angegeben.
request.origin String – – ✓ ✓ – Der Wert des Anfrageheaders Origin für Anwendungsfälle mit CORS (Cross-Origin Resource Sharing).
request.user_agent_family String ✓ – ✓ – – Der geparste User-Agent-Familienstring. Wird nur auf globalen externen Application Load Balancern unterstützt.
request.device_request_type String ✓ – ✓ – – Die Geräteklassifizierungskategorie. Wird nur auf globalen externen Application Load Balancern unterstützt.
request.backend_service_name String – – ✓ ✓ – Der Ziel-Backend-Dienst. Gilt nicht für Edge-Erweiterungen (LbEdgeExtension oder CdnEdgeExtension).
request.backend_service_project_number int – – ✓ ✓ – Die Projektnummer des Backend-Dienstes in der freigegebene VPC. Gilt nicht für Edge-Erweiterungen.
request.mcp_method String – – – ✓ – Der Name der MCP-Methode (Model Context Protocol).

Verbindungsattribute

Sie können die folgenden Attribute aus Verbindungen extrahieren und weiterleiten:

Attribut Typ LbEdge LbRoute LbTraffic Authz CdnEdge Beschreibung und Verhaltensunterschiede
source.ip String ✓ ✓ ✓ ✓ – Die Client-IP-Adresse.
source.port int ✓ ✓ ✓ ✓ ✓ Die Quellportnummer des Clients.
source.client_region String ✓ – ✓ – ✓ Der zweistellige ISO-3166-1- oder CLDR-Regionscode, der der Client-IP-Adresse zugeordnet ist (z. B. US oder DE).
source.client_region_subdivision String ✓ – ✓ – – Der Code für die Unterregion, z. B. für ein Bundesland oder eine Provinz. Wird nur auf globalen externen Application Load Balancern unterstützt.
source.client_city String ✓ – ✓ – – Die Stadt, die mit der Client-IP-Adresse verknüpft ist. Wird nur auf globalen externen Application Load Balancern unterstützt.
source.client_city_lat_long String ✓ – ✓ – – Der Breiten- und Längengrad der Stadt des Clients. Wird nur auf globalen externen Application Load Balancern unterstützt.
destination.ip String – – ✓ ✓ – Die IP-Adresse des Load-Balancers, zu dem der Client eine Verbindung herstellt
destination.port int – – ✓ ✓ – Die Zielportnummer, zu der der Client eine Verbindung herstellt.
connection.client_encrypted bool – – ✓ ✓ – Der Wert ist true, wenn die Verbindung zwischen dem Client und dem Load Balancer verschlüsselt ist (mit HTTPS, HTTP/2 oder HTTP/3). Andernfalls ist der Wert false.
connection.protocol String – – ✓ ✓ – Das für die Kommunikation verwendete HTTP-Protokoll (HTTP/1.0, HTTP/1.1, HTTP/2 oder HTTP/3).
connection.sni String ✓ – ✓ ✓ ✓ Die angeforderte Server Name Indication (SNI) der Downstream-TLS-Verbindung.
connection.tls_version String ✓ – ✓ ✓ ✓ Die mit dem Client ausgehandelte TLS-Version (TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 oder QUIC).
connection.tls_cipher_suite String – – ✓ ✓ – Die vierstellige hexadezimale Cipher Suite, die während des TLS-Handshakes ausgehandelt wird, z. B. 009C.
connection.tls_ja3_fingerprint String – – ✓ – – Der JA3-TLS/SSL-Fingerabdruck, wenn der Client eine Verbindung über HTTPS, HTTP/2 oder HTTP/3 herstellt.
connection.tls_ja4_fingerprint String ✓ – ✓ – – Der JA4-TLS/SSL-Fingerabdruck, wenn der Client eine Verbindung über HTTPS, HTTP/2 oder HTTP/3 herstellt.
connection.client_rtt_msec int – – ✓ ✓ – Die Umlaufzeit (Round Trip Time, RTT) des Clients in Millisekunden.
connection.sha256_peer_certificate_digest String ✓ – ✓ ✓ – Der hexadezimalcodierte SHA-256-Peer-Zertifikat-Hash.
connection.client_cert_present bool – – ✓ ✓ – Der Wert ist true, wenn der Client während des TLS-Handshakes ein Zertifikat bereitgestellt hat; andernfalls false.
connection.client_cert_chain_verified bool – – ✓ ✓ – Der Wert ist true, wenn die Clientzertifikatskette mit einem konfigurierten TrustStore verglichen wird. Andernfalls false.
connection.client_cert_error String – – ✓ ✓ – Vordefinierte Strings, die mTLS-Fehlerbedingungen darstellen. Weitere Informationen finden Sie unter mTLS-Clientvalidierungsmodi.
connection.client_cert_serial_number String – – ✓ ✓ – Die Seriennummer des Clientzertifikats.
connection.client_cert_spiffe_id String – – ✓ ✓ – Die SPIFFE-ID aus dem Feld „Alternativer Antragstellername“ (SAN)
connection.client_cert_uri_sans String – – ✓ ✓ – Eine kommagetrennte, Base64-codierte Liste von URI-SAN-Erweiterungen, die aus dem Clientzertifikat extrahiert wurden.
connection.client_cert_dnsname_sans String – – ✓ ✓ – Eine kommagetrennte, Base64-codierte Liste von DNSName-SAN-Erweiterungen, die aus dem Clientzertifikat extrahiert wurden.
connection.client_cert_valid_not_before String – – ✓ ✓ – Der Zeitstempel (RFC 3339-Format), vor dem das Clientzertifikat ungültig ist.
connection.client_cert_valid_not_after String – – ✓ ✓ – Der Zeitstempel (RFC 3339-Format), nach dem das Clientzertifikat ungültig ist.
connection.client_cert_issuer_dn String – – ✓ ✓ – Die Base64-codierte DER-Codierung des Zertifikatsfelds Issuer.
connection.client_cert_subject_dn String – – ✓ ✓ – Die Base64-codierte DER-Codierung des Zertifikatsfelds Subject.
connection.client_cert_leaf String – – ✓ ✓ – Das Base64-codierte untergeordnete Clientzertifikat für eine hergestellte, validierte mTLS-Verbindung (RFC 9440).
connection.client_cert_chain String – – ✓ ✓ – Die durch Kommas getrennte, Base64-codierte Clientzertifikatskette in Standard-TLS-Reihenfolge, ohne das untergeordnete Zertifikat (RFC 9440).

Beschränkungen

  • Verfügbarkeit von Attributen: Nicht alle Attribute werden für alle Erweiterungstypen unterstützt. Weitere Informationen finden Sie in der Tabelle auf dieser Seite.

  • Erforderliche Konfiguration: Wenn Sie Attribute an die Erweiterung senden möchten, müssen Sie die Attribute explizit im Feld forwardAttributes Ihrer Erweiterungskonfiguration auflisten. Wenn Sie ein Attribut nicht in diesem Feld auflisten, leitet der Load Balancer oder Media CDN dieses Attribut nicht an Ihre Erweiterung weiter.

  • Größenbeschränkungen: Sie können maximal 16 Attribute für eine einzelne Erweiterung konfigurieren.

  • mTLS-Attribute: Clientzertifikatsattribute (connection.client_cert_*) werden nur dann in die an Ihre Erweiterung übergebenen Daten eingefügt, wenn Sie mTLS aktiviert haben und der Client ein Zertifikat vorlegt.