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) mitext_procauf 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
forwardAttributesIhrer 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.